Skip to main content

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":允许代理在三种解决问题的方式之间进行选择的提示:
    1. 编写一个 Python 程序直接解决问题。
    2. 直接解决问题,不使用 Python。
  1. 使用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的包装器。

使用文档:

  1. 前往Wolfram Alpha注册开发者账号。
  2. 创建一个应用程序并获取您的APP ID。
  3. 将您的APP ID保存到WOLFRAM_ALPHA_APPID环境变量中。
  4. 使用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运行查询并解析结果。