AutoGen参数说明

UserProxyAgent用户

user_proxy = UserProxyAgent配置说明:

# 构造参数
def __init__(
    self,
    name: str,
    is_termination_msg: Optional[Callable[[Dict], bool]] = None,
    max_consecutive_auto_reply: Optional[int] = None,
    human_input_mode: Literal["ALWAYS", "TERMINATE", "NEVER"] = "ALWAYS",
    function_map: Optional[Dict[str, Callable]] = None,
    code_execution_config: Union[Dict, Literal[False]] = {},
    default_auto_reply: Optional[Union[str, Dict, None]] = "",
    llm_config: Optional[Union[Dict, Literal[False]]] = False,
    # 默认不使用LLM,如果使用了LLM将会推测人的行为
    system_message: Optional[Union[str, List]] = "",
    description: Optional[str] = None,
)

重要参数说明:

human_input_mode

三种形式的说明:

三种模式都会涉及代码执行,需要代码执行根据实际要求来进行

模式 说明 (userproxy执行代码过程在code_execution_config配置中,后附说明)
ALWAYS 每次接收到消息时,代理都会提示人类输入。当人类输入为 “exit”,或者 is_termination_msg 为 True 并且没有人类输入时,会话将停止。userproxy不会执行代码,代码执行交给使用用户,一轮对话都需要人为输入去干涉,Assistantproxy才能进行下去。不推荐:(如果回复中涉及代码)需要用户去执行代码并配置相关环境
TERMINATE 只有在接收到终止消息或者连续自动回复的数量达到 max_consecutive_auto_reply 时,代理才会提示人类输入。 userproxy会根据max_consecutive_auto_reply次数+Assistantproxy是否需要人为提供更多信息 来终止代码执行,结束标记为Assistantproxy to userproxy的最后一轮对话包含TERMINATE这个单词(可能大小写混合也可能夹杂其他单词,但一定有该单词.upper()存在)推荐:(如果回复中涉及代码)代码执行+需要人为提供更多的信息以保证更加准确的进行
NEVER 代理永远不会提示人类输入。在这种模式下,当连续自动回复的数量达到 max_consecutive_auto_reply 或者 is_termination_msg 为 True 时,会话将停止。userproxy会一直执行代码,配合参数default_auto_reply+max_consecutive_auto_reply直到停止较推荐:若涉及代码会进入死胡同,例如提供一些接口API密钥等,人不会去提供,直到轮数结束返回信息。

当 max_consecutive_auto_reply为0 的时候并且输入模式为TERMINATE的时候,get_human_input会被重写,否则不会被重写。

is_termination_msg

参数:

is_termination_msg 是一个函数,它接受一个字典形式的消息作为输入,并返回一个布尔值,表示这个接收到的消息是否是一个终止消息,即一个userproxy是否终止对话的标记。包含如下键值对:

# 键值对
"content":消息的内容
"role":发送消息的角色
"name":发送消息的名称
"function_call":函数调用的信息

code_execution_config

是一个字典或者布尔值,用于配置代码执行的相关设置。如果你想禁用代码执行,可以将其设置为 False。否则,你可以提供一个字典,其中包含以下键:

work_dir(可选,字符串):用于代码执行的工作目录。如果没有提供,将使用默认的工作目录。默认的工作目录是 "path_to_autogen" 下的 "extensions" 目录。
use_docker(可选,列表、字符串或布尔值):用于代码执行的 Docker 镜像。默认值为 True,这意味着代码将在 Docker 容器中执行,并将使用默认的镜像列表。如果提供了一个镜像名称的列表或字符串,代码将在成功拉取的第一个镜像的 Docker 容器中执行。如果为 False,代码将在当前环境中执行。我们强烈建议使用 Docker 来执行代码。
timeout(可选,整数):代码执行的最大时间(以秒为单位)。
last_n_messages(实验性的,可选,整数):用于代码执行的回溯消息数量。默认值为 1。

llm_config

这决定了 ConversableAgent 中反馈是通过 OpenAIWrapper 进行处理还是不进行任何 LLM 基础的回复处理。

默认值为 False,这将禁用基于 llm 的自动回复。
如果设置为 None,将使用 self.DEFAULT_CONFIG,其默认值也是 False。
简单来说,这个参数用于控制是否使用语言模型进行自动回复,以及如何配置这个语言模型。

如果需要配置LLM 参考文档 (配置同AssistantAgentde llm_config) 或同下

https://microsoft.github.io/autogen/docs/reference/oai/client/#create

AssistantAgent代理

构造参数:

def __init__(
    self,
    name: str, # 本项目使用请求的uuid来进行对话
    system_message: Optional[str] = DEFAULT_SYSTEM_MESSAGE,
    llm_config: Optional[Union[Dict, Literal[False]]] = None,
    is_termination_msg: Optional[Callable[[Dict], bool]] = None,
    max_consecutive_auto_reply: Optional[int] = None,
    human_input_mode: Optional[str] = "NEVER",
    description: Optional[str] = None,
    **kwargs,
):

llm_config

样式构造:

llm_config={
    "config_list": [{
        "model": config.LLM_CONFIG[llm_provider]["MODEL"],
        "api_key": config.LLM_CONFIG[llm_provider]["OPENAI_API_KEY"],
        # "base_url": config.LLM_CONFIG[llm_provider]["OPENAI_API_BASE"],
        "azure_endpoint": config.LLM_CONFIG[llm_provider]["OPENAI_API_BASE"],
        "api_type": "azure",
        "api_version": config.LLM_CONFIG[llm_provider]["API_VERSION"],
        "model_client_cls": "OpenAIClientWithStream",
        "cache_seed": None,
    }],
    "temperature": assistant_config["temperature"],
    "timeout": 600,
    "cache_seed": None,
    "stream": True,
}

max_consecutive_auto_reply

默认值为 None,这意味着没有提供限制,此时将使用类属性 MAX_CONSECUTIVE_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值