math_user_proxy_agent
MathUserProxyAgent
class MathUserProxyAgent(UserProxyAgent)
(实验性)一个能够处理数学问题的 MathChat 代理。
MAX_CONSECUTIVE_AUTO_REPLY
连续自动回复的最大次数(可能会有变化)
__init__
def __init__(name: Optional[str] = "MathChatAgent",
is_termination_msg: Optional[Callable[
[Dict], bool]] = _is_termination_msg_mathchat,
human_input_mode: Literal["ALWAYS", "NEVER",
"TERMINATE"] = "NEVER",
default_auto_reply: Optional[Union[str, Dict,
None]] = DEFAULT_REPLY,
max_invalid_q_per_step=3,
**kwargs)
参数:
name
str - 代理的名称is_termination_msg
function - 一个接受以字典形式表示的消息并返回一个布尔值的函数,指示接收到的消息是否为终止消息。 字典可以包含以下键:"content"、"role"、"name"、"function_call"。human_input_mode
str - 是否在每次接收到消息时询问人类输入。 可能的值为 "ALWAYS"、"TERMINATE"、"NEVER"。 (1) 当为 "ALWAYS" 时,代理在每次接收到消息时都会提示人类输入。 在此模式下,当人类输入为 "exit" 或 is_termination_msg 为 True 且没有人类输入时,对话停止。 (2) 当为 "TERMINATE" 时,只有在接收到终止消息或自动回复达到 max_consecutive_auto_reply 时才提示人类输入。 (3) (默认)当为 "NEVER" 时,代理将永远不会提示人类输入。在此模式下,当自动回复达到 max_consecutive_auto_reply 或 is_termination_msg 为 True 时,对话停止。default_auto_reply
str or dict or None - 当没有生成代码执行或基于 llm 的回复时的默认自动回复消息。max_invalid_q_per_step
int - (新增)每步的最大无效查询次数。**kwargs
dict - UserProxyAgent 中的其他 kwargs。
message_generator
@staticmethod
def message_generator(sender, recipient, context)
使用给定的问题和提示为助理代理生成一个提示。
参数:
sender
Agent - 消息的发送者。recipient
Agent - 消息的接收者。context
dict - 一个包含以下字段的字典:problem
str - 要解决的问题。prompt_type
str, Optional - 提示的类型。可能的值为 "default"、"python"、"wolfram"。 (1) "default":允许代理在三种解决问题的方式之间进行选择的提示:- 编写一个 Python 程序直接解决问题。
- 直接解决问题,不使用 Python。
- 使用Python逐步解决问题。 (2)"python": 这是“default”提示的第三种方式的简化版本,要求助手使用Python逐步解决问题。 (3)"two_tools": 这是类似于"python"提示的简化版本,但允许模型选择使用Python或Wolfram Alpha来解决问题。
customized_prompt
str, 可选 - 自定义的提示语。如果不为None,则忽略prompt_type。
返回值:
str
- 生成的提示语,准备发送给助手代理。
execute_one_python_code
def execute_one_python_code(pycode)
执行Python代码块。
之前的Python代码将被保存,并与新代码一起执行。 如果需要,"print"函数也将添加到代码的最后一行。
execute_one_wolfram_query
def execute_one_wolfram_query(query: str)
运行一个Wolfram Alpha查询并返回输出结果。
参数:
query
- 查询的字符串。
返回值:
output
- 查询的输出结果字符串。is_success
- 表示查询是否成功的布尔值。
get_from_dict_or_env
def get_from_dict_or_env(data: Dict[str, Any],
key: str,
env_key: str,
default: Optional[str] = None) -> str
从字典或环境变量中获取一个值。
WolframAlphaAPIWrapper
class WolframAlphaAPIWrapper(BaseModel)
Wolfram Alpha的包装器。
使用文档:
- 前往Wolfram Alpha注册开发者账号。
- 创建一个应用程序并获取您的APP ID。
- 将您的APP ID保存到WOLFRAM_ALPHA_APPID环境变量中。
- 使用pip安装wolframalpha。
wolfram_client
:meta private:
Config
class Config()
此pydantic对象的配置。
validate_environment
@root_validator(skip_on_failure=True)
def validate_environment(cls, values: Dict) -> Dict
验证环境中是否存在API密钥和Python包。
run
def run(query: str) -> Tuple[str, bool]
通过WolframAlpha运行查询并解析结果。