首页 > 科技周边 > 人工智能 > 使用CREWAI在多代理系统中构建输入和输出

使用CREWAI在多代理系统中构建输入和输出

Christopher Nolan
发布: 2025-03-20 10:36:11
原创
775 人浏览过

优化基于代理的系统:结构输入和输出以提高性能

想提高基于代理的系统的性能吗?一个关键策略是精心构建代理之间交换的输入和中间输出。本文详细介绍了如何组织输入,利用占位持有人进行数据传输,并结构输出以确保每个代理都能提供预期的结果。通过优化这些元素,您将获得代理系统的更一致和可靠的结果。代理系统利用多个代理人协作,交流和解决问题的能力超过单个LLM的功能。本指南使用Crewai,Pydantic模型和JSON在多代理上下文中构建输出(和输入)。

使用CREWAI在多代理系统中构建输入和输出

主要考虑因素

  1. 结构良好的输入和输出对于基于代理的系统性能至关重要。
  2. Pydantic模型提供数据验证和组织间通信的组织。
  3. Crewai促进代理集成,任务执行和输入/输出数据管理。
  4. 结构化数据可防止数据丢失和不一致,从而促进无缝协作。
  5. 使用模型或JSON定义预期输出可以增强精度和可靠性。
  6. 有效的数据管理优化了用于复杂任务的多代理系统。

目录

  • 主要考虑因素
  • 利用Pydantic模型
  • Pydantic模型示例
  • 安装
  • 结构输入
  • 结构输出
  • 结论
  • 常见问题

利用Pydantic模型

Pydantic库提供的Pydantic模型是设计用于数据解析和验证的Python对象。它们可以创建Python类(模型),该类别在实例化时自动验证数据,从而确保输入数据匹配预期类型和约束。这样可以确保可靠的结构化数据处理。

关键功能:

特征 描述
数据验证 验证针对预期类型(例如, intstrlist )和自定义规则的输入数据。
自动类型转换 自动将兼容的数据类型转换为datetime.date (例如,“ 2024-10-27”)。
数据序列化 将数据序列化为JSON等格式,简化了API交互。
默认值 允许灵活输入处理的可选字段或默认值。

Pydantic模型示例

让我们创建一个从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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板