赞
踩
【上】大模型Autogen多Agent系统详细保姆级实践介绍,亲身实践展示代理效果-CSDN博客
工具调用使代理能够更有效地与外部工具和api进行交互。该功能允许模型智能地选择输出包含参数的JSON对象,以便根据用户的输入调用特定的工具。要调用的工具使用描述其参数及其类型的JSON模式指定。编写这样的JSON模式是复杂且容易出错的,这就是为什么AutoGen框架提供了两个高级函数装饰器,用于在标准Python数据类型上使用类型提示自动生成这样的模式:
ConversableAgent.register_for_llm
用于在ConversableAgent
的llm_config中将函数注册为Tool。ConversableAgent
代理可以建议执行已注册的工具,但实际的执行将由UserProxy
代理执行。
ConversableAgent.register_for_execution
用于将函数注册到UserProxy
代理的function_map中。
注册一个自定义函数用于货币兑换计算的过程,该函数使用类型提示和标准Python数据类型:
创建一个助理代理和用户代理。助手将负责建议调用哪些函数,并由用户代理实际执行所建议的函数:
- chatbot = autogen.AssistantAgent(
- name="chatbot",
- system_message="For currency exchange tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done.",
- llm_config=llm_config,
- )
-
- # create a UserProxyAgent instance named "user_proxy"
-
- user_proxy = autogen.UserProxyAgent(
- name="user_proxy",
- is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"),
- human_input_mode="NEVER",
- max_consecutive_auto_reply=10,
- )
定义函数currency_calculator如下所示,并用两个装饰器装饰它:
@user_proxy.register_for_execution
添加currency_calculator函数到user_proxy.function_map
@chatbot.register_for_llm
将生成的函数JSON模式添加到chatbot的llm_config
- CurrencySymbol = Literal["USD", "EUR"]
-
-
- def exchange_rate(base_currency: CurrencySymbol, quote_currency: CurrencySymbol) -> float:
- if base_currency == quote_currency:
- return 1.0
- elif base_currency == "USD" an
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。