优化基于代理的系统:结构输入和输出以提高性能
想提高基于代理的系统的性能吗?一个关键策略是精心构建代理之间交换的输入和中间输出。本文详细介绍了如何组织输入,利用占位持有人进行数据传输,并结构输出以确保每个代理都能提供预期的结果。通过优化这些元素,您将获得代理系统的更一致和可靠的结果。代理系统利用多个代理人协作,交流和解决问题的能力超过单个LLM的功能。本指南使用Crewai,Pydantic模型和JSON在多代理上下文中构建输出(和输入)。
Pydantic库提供的Pydantic模型是设计用于数据解析和验证的Python对象。它们可以创建Python类(模型),该类别在实例化时自动验证数据,从而确保输入数据匹配预期类型和约束。这样可以确保可靠的结构化数据处理。
关键功能:
特征 | 描述 |
---|---|
数据验证 | 验证针对预期类型(例如, int , str , list )和自定义规则的输入数据。 |
自动类型转换 | 自动将兼容的数据类型转换为datetime.date (例如,“ 2024-10-27”)。 |
数据序列化 | 将数据序列化为JSON等格式,简化了API交互。 |
默认值 | 允许灵活输入处理的可选字段或默认值。 |
让我们创建一个从Pydantic的BaseModel
继承的UserModel
。实例化类需要一个整数id
,一个字符串name
和电子邮件地址。
来自Pydantic Import Basemodel 类Usermodel(basemodel): id:int 名称:str 电子邮件:str #有效输入 有效_user = usermodel(id = 1,name =“ vidhya”,email =“ vidhya@example.com”) 打印(有效_user) #无效输入(提出验证错误) 尝试: invalid_user = usermodel(id =“一个”,name =“ vidhya”,email =“ vidhya@example.com”) 除了e:e: 打印(f“验证错误:{e}”)
这证明了当提供错误的数据类型时,Pydantic的错误处理。
让我们探索可选,日期和默认值功能:
来自Pydantic Import Basemodel 从输入导入可选 从DateTime导入日期 类EventModel(basemodel): event_name:可选[str] =无#可选字段 event_loc:str =“印度”#默认值 event_date:日期 #自动转换 event = eventmodel(event_date =“ 2024-10-27”) 打印(事件)
这显示了可选字段和自动类型转换。
安装Crewai:
PIP安装CREWAI
在定义代理和任务时,使用变量名称在卷曲括号{}
中格式化。设置human_input=True
提示用户以获取输出反馈。以下是回答物理问题的代理和任务的示例:
来自Crewai进口代理,任务,机组人员 导入操作系统 os.environ ['openai_api_key'] =''#用钥匙替换 os.environ ['OpenAi_Model_name'] ='GPT-4O-MINI-2024-07-18'#或您的首选模型 #...(原始示例中的代理和任务定义)...
输入通过crew.kickoff()
中的inputs
参数传递。
让我们创建代理来收集用户详细信息(名称,电子邮件,电话,作业)。将输出构建为Pydantic模型或JSON定义了预期的输出格式,以确保后续代理接收结构化数据。
来自Pydantic Import Basemodel 从输入导入列表 #...(pydantic模型定义如原始示例中)... #...(如原始示例中的代理和任务定义,使用output_pydantic和output_json)...
最终代理结合了所有详细信息,使用output_file
将输出保存到文件。
本文强调了使用Pydantic和Crewai在多代理系统中结构输入和输出的重要性。结构良好的数据可增强性能,可靠性并防止错误。这些策略为复杂的任务建立了更强大的代理系统。
Q1。什么是基于代理的系统?基于代理的系统使用多种代理来解决问题,超过了单个LLM的功能。
Q2。什么是克鲁伊? Crewai是管理代理系统,简化代理协作和数据处理的框架。
Q3。如何在Crewai中输入图像?一种方法是提供图像URL作为输入变量。
Q4。什么是pydantic模型? Pydantic模型验证数据并序列化数据,以确保基于代理的系统中的数据完整性。
Q5。如何使用Pydantic构建输出?定义Pydantic模型中的预期输出字段,以确保对后续代理的数据格式一致。
以上是使用CREWAI在多代理系统中构建输入和输出的详细内容。更多信息请关注PHP中文网其他相关文章!