在学术研究的动态领域,有效的信息收集,综合和演示至关重要。文献综述的手动过程是耗时的,阻碍了更深入的分析。由Pydantic构建的多机构研究助理系统提供了一个复杂的解决方案:专门的代理商合作,可模块化地处理复杂的任务。但是,管理多个代理需要仔细考虑数据一致性,验证和通信。这种基于pydantic的系统通过执行强大的数据模式,改进数据处理并简化系统复杂性来解决这些挑战。
本文详细介绍了使用Pydantic的结构化多代理研究助理的构建,该研究助理整合了Pydantic-AI和Arxiv等工具。我们将提供逐步的代码解释和预期结果。
关键学习目标
- 掌握在pydantic驱动的多代理研究助理中,对于可靠的代理间沟通中的结构化数据建模的重要性。
- 使用Pydantic定义和实施结构化数据模式,以进行无缝集成,模块化代理编排和有效的自动化研究工作流程。
- 设计和编排用于特定任务的模块化代理:查询细化,数据检索,关键字提取和摘要。
- 通过结构化代理相互作用将外部API(例如ARXIV)集成到自动化工作流中。
- 直接从结构化代理输出中生成高质量的输出(例如PDF报告),从而增强了自动化研究工作流的实际实用性。
本文是数据科学博客马拉松的一部分。
目录
- 用pydantic定义数据模型
- 构建多代理框架
- 使用及时处理器代理来完善查询
- 纸质检索代理有效检索
- 用关键字提取代理提取关键字
- 用摘要代理简明摘要
- 编排代理
- 产生专业产出
- 实际例子
- 结论
- 常见问题
用pydantic定义数据模型
定义明确的数据模型在多代理系统中至关重要。代理之间的一致,可预测的数据交换至关重要。 Pydantic通过提供直接定义Python中数据模式,确保数据一致性,减少运行时错误并实现无缝验证的直接方法来优雅地解决此问题。
这是使用Pydantic结构化数据模型的示例:
来自Pydantic Import Basemodel,field 类Papermetadata(basemodel): 标题:str =字段(...,description =“纸质标题”) 摘要:str =字段(...,描述=“纸张摘要”) 作者:列表[str] = field(...,description =“作者列表”) publication_date:str = field(...,description =“出版日期”)
现场解释
-
title
:纸质标题,可轻松参考和组织。 -
abstract
:关键字提取和摘要的简明摘要。 -
authors
:作者列表以进行进一步查询或引文跟踪。 -
publication_date
:分类和过滤的出版日期。
我们的系统包括五个代理:
- 及时处理器代理
- 纸取回剂
- 关键字提取代理
- 摘要代理
- 路由器(编排)代理
这些试剂使用Pydantic定义的模型进行交流,确保可预测和验证的数据,最大程度地减少错误并增强系统鲁棒性。
我们将深入研究每个代理的实现,角色和预期输出。
构建多代理框架
在Pydantic数据模型的基础上,我们现在检查了多代理框架。每个代理都有特定的角色,并与他人无缝互动。
代理角色
- 及时处理器代理:完善用户查询以提高搜索相关性。
- 纸情况检索代理:从外部数据库(如Arxiv)中检索相关论文。
- 关键字提取代理:从纸张摘要中提取关键术语。
- 摘要代理:生成纸张摘要的简明摘要。
- 路由器代理(编排):协调工作流程,管理通信和数据流。
代理相互作用
代理依次相互作用:
- 及时处理器完善了用户查询。
- 精制查询将发送到纸质检索代理。
- 路由器将摘要发送到关键字提取和摘要代理。
- 路由器将结果汇编为最终报告。
这种模块化设计可确保可维护性和可扩展性。可以独立改进或更换代理。我们将探索每个代理的实现。
使用及时处理器代理提炼研究查询
精确查询对于有效搜索至关重要。及时处理器代理会完善用户查询,以提高学术数据库结果的相关性。
这是及时的处理器代理实施:
@strump_processor_agent.tool 异步DEF PROCESS_PROMPT(CTX:RUNCONTEXT [researchContext],主题:str) - > str:> str: 主题= toble.strip()。下() 如果在主题中“”: 子主题= topic.split('in') main_topic =子主题[0] .STRIP() 上下文=子主题[1] .STRIP() rifined_query = f“ all:{main_topic}和cat:{context.replace('','_'')}” 别的: 精制= f“ ti:\” {topip} \“或abs:\” {topip} \“” 返回精炼_Query
改进的实现使输入归一化,解析上下文提示(“在”),构建结构化查询,并包括有关更广泛主题的后备处理。这会导致更精确的搜索。
用纸质检索代理有效地获取研究论文
论文检索代理与外部API(如Arxiv)相互作用,以根据精制查询检索相关论文。它使用Pydantic模型来一致的数据处理。
@paper_retrieval_agent.tool 异步def fetch_papers(ctx:runcontext [researchContext]) - > list [papermetadata]: 搜索= arxiv.Search(query = ctx.deps.query,max_results = 5,sort_by = arxiv.sortcriterion.submitteddate) 结果= list(search.results()) 论文= [] 结果结果: 如果hasattr(结果,“已发布”)和结果。发布并非没有其他“未知” paper = papermetadata(title = result.title,abract.sust.summary,authors = [作者in result.authors in result.authors],publication_date = publined_date = publined_str) 论文。附录(纸) 返回论文
Pydantic确保数据验证和一致性,从而简化下游处理。
用关键字提取代理提取有价值的关键字
关键字提取代理从摘要中标识关键术语,以帮助研究人员快速评估纸张相关性。
@keyword_extraction_agent.tool 异步def extract_keywords(ctx:runcontext [researchContext],摘要:str) - > keywordresult: 单词= Abstract.split() sew = set() unique_words = [] 用单词词: 归一化= Word.Strip('。,;:“()')。下() 如果将归一化和标准化,则不可见: SEED.ADD(归一化) unique_words.append(归一化) 如果len(unique_words)> = 5: 休息 返回keywordresult(keywords = unique_words)
这是一个简化的示例;生产系统将使用更先进的NLP技术。 Pydantic保持结构化的,一致的输出。
用摘要代理简化论文
摘要代理生成了摘要的简洁摘要。
@summary_agent.tool async def summarize_paper(ctx:runcontext [researchContext],摘要:str) - > papersummary: summary_text =摘要[:150] 返回论文(摘要= summary_text)
这是一个基本示例;高级摘要模型可以显着提高摘要的质量。
将所有内容融合在一起:代理编排
路由器代理协调整个工作流程。
@router_agent.tool 异步def Orchestrate_workflow(ctx:runcontext [researchContext]) - > str: repined_query =等待提示 论文=等待paper_retrieval_agent.run(rupined_query.data,deps = ctx.deps) 响应=“最终报告:\ n” 对于纸张中的纸。data: 关键字=等待关键word_extraction_agent.run(paper.abstract,deps = ctx.deps) 摘要=等待summary_agent.run(paper.abstract,deps = ctx.deps) 响应=(( f“ \ ntitle:{paper.title} \ n” f“关键字:{keywords.data.keywords} \ n” f“摘要:{summary.data.summary} \ n” ) 返回响应
这使用异步操作提高效率。结构化的记录辅助调试。
通过结构化数据生成专业输出
结构化数据将转换为专业的PDF报告。
def generate_pdf_report(report_text:str,output_filename:str =“ final_report.pdf”): 导入Markdown2 从XHTML2PDF导入PISA html_text = markdown2.markdown(report_text) 使用opent(output_filename,“ wb”)作为result_file: pisa.createpdf(html_text,dest = result_file)
这利用结构化数据可轻松转换为可读的PDF。
动作中的多代理系统:实践示例
通过示例证明了系统的有效性。 (此处将包括示例,显示该系统的不同研究主题的输出。)
结论
这款由Pydantic构建的多代理研究助理系统有效地自动化了研究工作流程并生成专业报告。 Pydantic的结构化数据处理是系统可靠性和可扩展性的关键。
常见问题
(此处将包括常见问题解答,解决有关系统的常见问题。)
(注意:图像和代码片段是占位符。需要单独提供完整的代码。)
以上是使用Pydantic构建结构化研究自动化系统的详细内容。更多信息请关注PHP中文网其他相关文章!

由于AI的快速整合而加剧了工作场所的迅速危机危机,要求战略转变以外的增量调整。 WTI的调查结果强调了这一点:68%的员工在工作量上挣扎,导致BUR

约翰·塞尔(John Searle)的中国房间论点:对AI理解的挑战 Searle的思想实验直接质疑人工智能是否可以真正理解语言或具有真正意识。 想象一个人,对下巴一无所知

与西方同行相比,中国的科技巨头在AI开发方面的课程不同。 他们不专注于技术基准和API集成,而是优先考虑“屏幕感知” AI助手 - AI T

MCP:赋能AI系统访问外部工具 模型上下文协议(MCP)让AI应用能够通过标准化接口与外部工具和数据源交互。由Anthropic开发并得到主要AI提供商的支持,MCP允许语言模型和智能体发现可用工具并使用合适的参数调用它们。然而,实施MCP服务器存在一些挑战,包括环境冲突、安全漏洞以及跨平台行为不一致。 Forbes文章《Anthropic的模型上下文协议是AI智能体发展的一大步》作者:Janakiram MSVDocker通过容器化解决了这些问题。基于Docker Hub基础设施构建的Doc

有远见的企业家采用的六种策略,他们利用尖端技术和精明的商业敏锐度来创造高利润的可扩展公司,同时保持控制权。本指南是针对有抱负的企业家的,旨在建立一个

Google Photos的新型Ultra HDR工具:改变图像增强的游戏规则 Google Photos推出了一个功能强大的Ultra HDR转换工具,将标准照片转换为充满活力的高动态范围图像。这种增强功能受益于摄影师

技术架构解决了新兴的身份验证挑战 代理身份集线器解决了许多组织仅在开始AI代理实施后发现的问题,即传统身份验证方法不是为机器设计的

(注意:Google是我公司的咨询客户,Moor Insights&Strateging。) AI:从实验到企业基金会 Google Cloud Next 2025展示了AI从实验功能到企业技术的核心组成部分的演变,


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。