当前位置: 首页 > news >正文

【数据分析】用Python做事件抽取任务-快速上手方案

目录

  • 方法一:使用OmniEvent库
    • 安装OmniEvent
    • 使用OmniEvent进行事件抽取
    • OmniEvent优点
    • 缺点
  • 方法二:使用大模型
    • 使用GPT网页版进行事件抽取
      • 事件类型列表
    • 大模型优点
    • 缺点
  • 总结

在自然语言处理(NLP)领域,事件抽取是一项关键任务,它涉及从文本中识别和提取事件及其相关信息。

本文作者将介绍两种常见的事件抽取方法:使用清华大学开源的OmniEvent工具包ChatGPT大模型方法。

我们将分析这两种方法的优缺点,并提供一些代码示例来展示其实际应用。

方法一:使用OmniEvent库

OmniEvent是清华大学开源的一款用于事件抽取的库,支持多种事件抽取任务,包括触发词检测、事件论元抽取等。该库提供了预训练模型和易于使用的接口,极大简化了事件抽取的实现。

全面涵盖各种范式,并对广泛使用的英文和中文数据集提供公平、统一的评估。模块化实现使 OmniEvent 具有高度可扩展性。

安装OmniEvent

首先,我们需要安装OmniEvent库。可以使用以下命令进行安装:

pip install omnievent

使用OmniEvent进行事件抽取

以下是一个使用OmniEvent进行事件抽取的示例代码:


from OmniEvent import infer
device='cpu'# 初始化OmniEvent模型
def init_models(device='cpu'):ed_model, ed_tokenizer = infer.get_pretrained("s2s-mt5-ed",device=device)eae_model, eae_tokenizer = infer.get_pretrained("s2s-mt5-eae",device=device)return (ed_model, ed_tokenizer,eae_model,eae_tokenizer)# 进行事件抽取
def run_ee(models,news_text_list,device='cpu'):schemas = ["<ace>"]*len(news_text_list)ed_model, ed_tokenizer,eae_model,eae_tokenizer=modelsevents = infer.do_event_detection(ed_model, ed_tokenizer, news_text_list, schemas, device)instances = infer.prepare_for_eae_from_pred(news_text_list, events, schemas)if len(instances[0]["triggers"]) == 0:results = [{"text": instances[0]["text"],"events": []}]return resultsarguments = infer.do_event_argument_extraction(eae_model, eae_tokenizer, instances, device)results = infer.get_eae_result(instances, arguments)return resultstext = "“中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。"
models=init_models(device)
ee=run_ee(models,[text])
# 输出结果for events in ee:print("文本:", events['text'])for event in events['events']:print(f"事件类型: {event['type']}")print(f"触发词: {event['trigger']}")print(f"论元: {event['arguments']}")

Output:

文本: “中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。
事件类型: 组织行为开幕
触发词: 开幕
论元: [{'mention': '12日', 'offset': [9, 12], 'role': '时间'}, {'mention': '布鲁塞尔中国文化中心', 'offset': [13, 23], 'role': '地点'}, {'mention': '“中比动漫文化周”', 'offset': [0, 9], 'role': '活动名称'}]
CPU times: user 21.2 s, sys: 78.3 ms, total: 21.3 s
Wall time: 5.53 s

OmniEvent优点

  1. 易用性高:OmniEvent提供了简单易用的API,用户可以快速上手。
  2. 预训练模型:库中包含多种预训练模型,可直接用于实际任务,减少训练成本。
  3. 多任务支持:支持多种事件抽取任务,包括触发词检测和事件论元抽取。

缺点

  1. 依赖数据集:虽然预训练模型能应对大部分任务,但特定领域的事件抽取可能需要额外的训练数据。
  2. 运行效率低: 模型是直接将ED任务和EAE任务合并为EE任务,因此耗时较长。(可将其分开,再得到ED任务结果后,选择满足条件的数据进行下一步EAE任务的测试)

方法二:使用大模型

大模型(如GPT-4、BERT等)在各种NLP任务中表现优异,也可用于事件抽取。大模型的优势在于其强大的语言理解能力和泛化能力。

由于经费有限,本文只能用网页版用来演示效果。项目中实际开发可以使用Pythonlangchain工具包调用大模型api接口达到此效果。

使用GPT网页版进行事件抽取

input prompt:

给定的句子为:"“中比动漫文化周”12日在布鲁塞尔中国文化中心开幕,旨在通过动漫这一独特的艺术形式,促进两国文化的交流与理解。"给定事件类型列表:['灾害/意外-坠机', '司法行为-举报', '财经/交易-涨价', '组织关系-解雇', '组织关系-停职', '财经/交易-加息', '交往-探班', '人生-怀孕', '组织关系-辞/离职', '组织关系-裁员', '灾害/意外-车祸', '人生-离婚', '司法行为-起诉', '竞赛行为-禁赛', '人生-婚礼', '财经/交易-涨停', '财经/交易-上市', '组织关系-解散', '财经/交易-跌停', '财经/交易-降价', '组织行为-罢工', '司法行为-开庭', '竞赛行为-退役', '人生-求婚', '人生-庆生', '交往-会见', '竞赛行为-退赛', '交往-道歉', '司法行为-入狱', '组织关系-加盟', '人生-分手', '灾害/意外-袭击', '灾害/意外-坍/垮塌', '组织关系-解约', '产品行为-下架', '灾害/意外-起火', '灾害/意外-爆炸', '产品行为-上映', '人生-订婚', '组织关系-退出', '交往-点赞', '产品行为-发布', '人生-结婚', '组织行为-闭幕', '人生-死亡', '竞赛行为-夺冠', '人生-失联', '财经/交易-出售/收购', '竞赛行为-晋级', '竞赛行为-胜负', '财经/交易-降息', '组织行为-开幕', '司法行为-拘捕', '交往-感谢', '司法行为-约谈', '灾害/意外-地震', '人生-产子/女', '财经/交易-融资', '司法行为-罚款', '人生-出轨', '灾害/意外-洪灾', '组织行为-游行', '司法行为-立案', '产品行为-获奖', '产品行为-召回']在这个句子中,可能包含了哪些事件类型?
请给出事件类型列表中的事件类型。
如果不存在则回答:无
按照元组形式回复,如 (事件类型1, 事件类型2, ……)

output:
在这里插入图片描述
Input prompt:

事件类型"组织行为-开幕"对应的论元角色列表为:['时间', '地点', '活动名称']。
在给定的句子中,根据论元角色提取出事件论元。
如果论元角色没有相应的论元内容,则论元内容回答:无
按照表格形式回复,表格有两列且表头为(论元角色,论元内容):

Output:
在这里插入图片描述

事件类型列表

{'灾害/意外-坠机': ['时间', '地点', '死亡人数', '受伤人数'],'司法行为-举报': ['时间', '举报发起方', '举报对象'],'财经/交易-涨价': ['时间', '涨价幅度', '涨价物', '涨价方'],'组织关系-解雇': ['时间', '解雇方', '被解雇人员'],'组织关系-停职': ['时间', '所属组织', '停职人员'],'财经/交易-加息': ['时间', '加息幅度', '加息机构'],'交往-探班': ['时间', '探班主体', '探班对象'],'人生-怀孕': ['时间', '怀孕者'],'组织关系-辞/离职': ['时间', '离职者', '原所属组织'],'组织关系-裁员': ['时间', '裁员方', '裁员人数'],'灾害/意外-车祸': ['时间', '地点', '死亡人数', '受伤人数'],'人生-离婚': ['时间', '离婚双方'],'司法行为-起诉': ['时间', '被告', '原告'],'竞赛行为-禁赛': ['时间', '禁赛时长', '被禁赛人员', '禁赛机构'],'人生-婚礼': ['时间', '地点', '参礼人员', '结婚双方'],'财经/交易-涨停': ['时间', '涨停股票'],'财经/交易-上市': ['时间', '地点', '上市企业', '融资金额'],'组织关系-解散': ['时间', '解散方'],'财经/交易-跌停': ['时间', '跌停股票'],'财经/交易-降价': ['时间', '降价方', '降价物', '降价幅度'],'组织行为-罢工': ['时间', '所属组织', '罢工人数', '罢工人员'],'司法行为-开庭': ['时间', '开庭法院', '开庭案件'],'竞赛行为-退役': ['时间', '退役者'],'人生-求婚': ['时间', '求婚者', '求婚对象'],'人生-庆生': ['时间', '生日方', '生日方年龄', '庆祝方'],'交往-会见': ['时间', '地点', '会见主体', '会见对象'],'竞赛行为-退赛': ['时间', '退赛赛事', '退赛方'],'交往-道歉': ['时间', '道歉对象', '道歉者'],'司法行为-入狱': ['时间', '入狱者', '刑期'],'组织关系-加盟': ['时间', '加盟者', '所加盟组织'],'人生-分手': ['时间', '分手双方'],'灾害/意外-袭击': ['时间', '地点', '袭击对象', '死亡人数', '袭击者', '受伤人数'],'灾害/意外-坍/垮塌': ['时间', '坍塌主体', '死亡人数', '受伤人数'],'组织关系-解约': ['时间', '被解约方', '解约方'],'产品行为-下架': ['时间', '下架产品', '被下架方', '下架方'],'灾害/意外-起火': ['时间', '地点', '死亡人数', '受伤人数'],'灾害/意外-爆炸': ['时间', '地点', '死亡人数', '受伤人数'],'产品行为-上映': ['时间', '上映方', '上映影视'],'人生-订婚': ['时间', '订婚主体'],'组织关系-退出': ['时间', '退出方', '原所属组织'],'交往-点赞': ['时间', '点赞方', '点赞对象'],'产品行为-发布': ['时间', '发布产品', '发布方'],'人生-结婚': ['时间', '结婚双方'],'组织行为-闭幕': ['时间', '地点', '活动名称'],'人生-死亡': ['时间', '地点', '死者年龄', '死者'],'竞赛行为-夺冠': ['时间', '冠军', '夺冠赛事'],'人生-失联': ['时间', '地点', '失联者'],'财经/交易-出售/收购': ['时间', '出售方', '交易物', '出售价格', '收购方'],'竞赛行为-晋级': ['时间', '晋级方', '晋级赛事'],'竞赛行为-胜负': ['时间', '败者', '胜者', '赛事名称'],'财经/交易-降息': ['时间', '降息幅度', '降息机构'],'组织行为-开幕': ['时间', '地点', '活动名称'],'司法行为-拘捕': ['时间', '拘捕者', '被拘捕者'],'交往-感谢': ['时间', '致谢人', '被感谢人'],'司法行为-约谈': ['时间', '约谈对象', '约谈发起方'],'灾害/意外-地震': ['时间', '死亡人数', '震级', '震源深度', '震中', '受伤人数'],'人生-产子/女': ['时间', '产子者', '出生者'],'财经/交易-融资': ['时间', '跟投方', '领投方', '融资轮次', '融资金额', '融资方'],'司法行为-罚款': ['时间', '罚款对象', '执法机构', '罚款金额'],'人生-出轨': ['时间', '出轨方', '出轨对象'],'灾害/意外-洪灾': ['时间', '地点', '死亡人数', '受伤人数'],'组织行为-游行': ['时间', '地点', '游行组织', '游行人数'],'司法行为-立案': ['时间', '立案机构', '立案对象'],'产品行为-获奖': ['时间', '获奖人', '奖项', '颁奖机构'],'产品行为-召回': ['时间', '召回内容', '召回方']
}

大模型优点

  1. 强大的语言理解能力:大模型具有强大的语言理解和推理能力,能够应对复杂的事件抽取任务。
  2. 适应性强:无需针对特定任务进行大量调整,能较好地泛化到不同领域的任务。
  3. 持续更新:大模型通常由大型公司维护,更新频率高,性能不断提升。

缺点

  1. 成本高:调用大模型通常需要付费,成本较高。
  2. 响应时间:由于模型复杂度高,推理时间较长,可能影响实时性要求高的应用。
  3. 依赖网络:需要稳定的网络连接来访问模型服务。

总结

OmniEvent库和大模型各有优缺点,适用于不同的应用场景。如果您需要快速实现事件抽取并且对特定领域有较高的定制化需求,OmniEvent是一个不错的选择。如果您追求高精度和强泛化能力,并且预算充足,可以考虑使用大模型。

无论选择哪种方法,都需要根据具体需求和资源情况进行权衡。希望本文能为您的事件抽取任务提供一些有价值的参考。

大数据分析为运营和各行业带来了前所未有的机会,使企业能够更敏锐地洞察市场、优化运营,并更有效地应对竞争和变革。在信息时代,充分利用大数据分析,将成为企业取得竞争优势的不可忽视的关键要素。

本人数据分析领域的从业者,拥有专业背景和能力,可以为您的数据采集、挖掘和分析需求提供支持。期待着能够与您共同探索更多有意义的数据洞见,为您的项目和业务提供数据分析方面的帮助。

创作不易,如果你觉得有帮助,请点个赞支持一下。你的鼓励是我创作的最大动力,期待未来能为大家带来更多有趣的分析文章。感谢大家的阅读和支持!

相关文章:

【数据分析】用Python做事件抽取任务-快速上手方案

目录 方法一&#xff1a;使用OmniEvent库安装OmniEvent使用OmniEvent进行事件抽取OmniEvent优点缺点 方法二&#xff1a;使用大模型使用GPT网页版进行事件抽取事件类型列表 大模型优点缺点 总结 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;事件抽取是一项关键任…...

B端系统门门清之:HRM,人力资源系统,公司发展的源动力。

人才是公司发展的源动力&#xff0c;针对公司复杂人力的管理就是HRM系统的核心功能&#xff0c;本文就带领大家详细认识一下HRM系统&#xff0c;分别从什么是HRM系统&#xff0c;作用、功能模块、颜值提升四个方面来阐述。欢迎大家点赞评论收藏转发。 一、什么是HRM系统 HRM系…...

tplink安防监控raw文件转码合成mp4的方法

Tplink(深圳普联)专业的网络设备生产商&#xff0c;属于安防监控市场的后来者。Tplink的安防产品恢复了很多&#xff0c;其嵌入式文件系统也一直迭代更新。今天要说的案例比较特殊&#xff0c;其不仅仅要求恢复&#xff0c;还要求能解析出音频并且要求画面和声音实现“同步”。…...

每天一个数据分析题(三百八十三)- 聚类

关于忽略自相关可以带来什么问题描述错误的是&#xff1f; A. 均方误差可能严重低估误差项的方差 B. 可能导致高估检验统计量t值&#xff0c;致使本不显著的变量变得显著了 C. 参数估计值的最小方差无偏性不再成立 D. 参数估计值的最小方差无偏性仍成立 数据分析认证考试介…...

构建下一代数据解决方案:SingleStore、MinIO 和现代 Datalake 堆栈

SingleStore 是专为数据密集型工作负载而设计的云原生数据库。它是一个分布式关系 SQL 数据库管理系统&#xff0c;支持 ANSI SQL&#xff0c;并因其在数据引入、事务处理和查询处理方面的速度而受到认可。SingleStore 可以存储关系、JSON、图形和时间序列数据&#xff0c;以满…...

【经验分享】Ubuntu24.04安装微信

【经验分享】Ubuntu24.04安装微信(linux官方2024universal版) 文章如下&#xff0c;22.04和24.04微信兼容 【经验分享】Ubuntu22.04安装微信(linux官方2024universal版) 实测Ubuntu24.04LTS版本可以兼容。...

AXI学习笔记

文章目录 AXI口诀&#xff1a;AXI三种总线&#xff0c;三种接口&#xff0c;一个协议背景知识一、 AMBA&#xff1a;二、AXI2.1 通信协议与握手机制2.2 AXI协议特点2.3 三种AXI总线类型&#xff08;AXI4、AXI4-lite、AXI4-stream&#xff09;2.3.1 AXI通道&#xff08;5通道&am…...

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件&#xff08;手动&#xff09; # profiles: # active: dev# 根据环境读取配置文件&#xff08;通过勾选maven插件&#xff09;profiles…...

【数据结构】排序(下)

个人主页~ 排序&#xff08;上&#xff09; 栈和队列 排序 二、常见排序的实现8、快速排序的优化9、非递归快速排序&#xff08;1&#xff09;基本思想&#xff08;2&#xff09;代码实现&#xff08;3&#xff09;时间复杂度&#xff08;4&#xff09;空间复杂度 10、归并排序…...

基于Java+Swing贪吃蛇小游戏(含课程报告)

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

三角形法恢复空间点深度

三角形法恢复空间点深度 如下图&#xff0c;以图 I 1 I_1 I1​为参考&#xff0c;图 I 2 I_2 I2​的变换矩阵为 T T T。相机光心为 O 1 O_1 O1​和 O 2 O_2 O2​。在图 I 1 I_1 I1​中有特征点 p 1 p_1 p1​&#xff0c;对应图 I 2 I_2 I2​中有特征点 p 2 p_2 p2​。理论上直…...

Linux 阻塞和非阻塞 IO 实验学习

Linux 阻塞和非阻塞 IO 实验学习 IO 指的是 Input/Output&#xff0c;也就是输入/输出&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将应用程序对应的线程挂起&…...

JuiceFS 社区版 v1.2 发布,新增企业级权限管理、平滑升级功能

JuiceFS 社区版 v1.2 今天正式发布&#xff0c;这是自 2021 年开源以来的第三个大版本。v1.2 也是一个长期支持版本&#xff08;LTS&#xff09;。我们将持续维护 v1.2 以及 v1.1 这两个版本&#xff0c;v1.0 将停止更新。 JuiceFS 是为云环境设计的分布式文件系统&#xff0c;…...

虚拟3D沉浸式展会编辑平台降低了线上办展的门槛

在数字化浪潮的引领下&#xff0c;VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光&#xff0c;凭借优质的服务和丰富的经验&#xff0c;赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战&#xff0c;许…...

泛微E9开发 查询页面添加按钮,完成特定功能

查询页面添加按钮&#xff0c;完成特定功能 1、关联知识&#xff08;查询页面实现新增按钮&#xff09;2、功能实现2.1. 点击按钮&#xff0c;输出选中的checkbox的值2.2. 点击按钮&#xff0c;打开一个自定义对话框 3、实现方法 1、关联知识&#xff08;查询页面实现新增按钮&…...

初学51单片机之数字秒表

不同数据类型间的相互转换 在C语言中&#xff0c;不同数据类型之间是可以混合运算的。当表达式中的数据类型不一致时&#xff0c;首先转换为同一类型&#xff0c;然后再进行计算。C语言有两种方式实现类型转换。一是自动类型转换&#xff0c;另外一种是强制类型转换。 转换的主…...

SpringBoot整合justauth实现多种方式的第三方登陆

目录 0.准备工作 1.引入依赖 2.yml文件 3. Controller代码 4.效果 参考 0.准备工作 你需要获取三方登陆的client-id和client-secret 以github为例 申请地址&#xff1a;Sign in to GitHub GitHub 1.引入依赖 <?xml version"1.0" encoding"UTF-8&quo…...

【Java算法】滑动窗口

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f456;一. 长度最小的子数组 题目链接&#xff1a;209.长度最小的子数组 算法原理 滑动窗口 滑动窗口算法常用于处理数组/字符串等序列问题&#xff0c;通过定义一…...

C# —— 属性和字段

属性和字段的区别 1.都是定义在一个类中&#xff0c;属于类成员变量 2.字段一般都是私有的private&#xff0c;属性一般是公开的Public 3.字段以小驼峰命名方式 age&#xff0c;属性一般是以大驼峰命名 Age 4.字段可以存储数据&#xff0c;属性不能存储数据&#xff0c;通过属性…...

【计算机视觉】人脸算法之图像处理基础知识(四)

图像的几何变换 图像的几何变换是指在不改变图像内容的前提下对图像的像素进行空间几何变换。主要包括图像的平移变换、镜像变换、缩放和旋转等。 1.插值算法 插值通常用来放缩图像大小&#xff0c;在图像处理中常见的插值算法有最邻近插值法、双线性插值法、二次立方、三次…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...