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

AI智能体开发(三):实战构建研究助手Agent

项目概述我们将构建一个学术研究助手Agent,它能够:智能搜索- 根据主题搜索arXiv上的相关论文自动阅读- 下载并解析PDF论文内容提取关键信息- 识别研究方法、实验结果、结论生成研究报告- 输出结构化的Markdown格式报告保存结果- 将报告保存为文件,方便后续查阅技术栈:框架:LangChainLLM:GPT-4 API向量库:Chroma(本地)工具:arxiv、pypdf、markdown环境准备Step 1: 创建项目# 创建项目目录mkdirresearch-agentcdresearch-agent# 创建虚拟环境python-mvenv venvsourcevenv/bin/activate# Linux/Mac# venv\Scripts\activate # WindowsStep 2: 安装依赖创建requirements.txt:langchain=0.1.0 langchain-openai=0.0.5 chromadb=0.4.0 arxiv=2.0.0 pypdf=3.17.0 markdown=3.5.0 python-dotenv=1.0.0 tenacity=8.2.0安装依赖:pipinstall-rrequirements.txtStep 3: 配置环境变量创建.env文件:OPENAI_API_KEY=sk-your-api-key-here创建config.py:importosfromdotenvimportload_dotenv load_dotenv()classConfig:OPENAI_API_KEY=os.getenv("OPENAI_API_KEY")# LLM配置LLM_MODEL="gpt-4"LLM_TEMPERATURE=0.7LLM_MAX_TOKENS=4000# 搜索配置MAX_SEARCH_RESULTS=5MAX_PAPER_LENGTH=3000# 每篇论文最大读取字符数# 输出配置OUTPUT_DIR="./reports"config=Config()# 确保输出目录存在os.makedirs(config.OUTPUT_DIR,exist_ok=True)核心组件实现论文搜索工具创建tools/paper_search.py:importarxivfromtypingimportList,Dictfromconfigimportconfigdefsearch_papers(query:str,max_results:int=None)-List[Dict]:""" 搜索arXiv学术论文 Args: query: 搜索关键词 max_results: 最大返回结果数 Returns: 论文列表,每个论文包含标题、作者、摘要、链接等信息 """ifmax_resultsisNone:max_results=config.MAX_SEARCH_RESULTSprint(f"正在搜索论文:{query}")# 创建搜索对象search=arxiv.Search(query=query,max_results=max_results,sort_by=arxiv.SortCriterion.Relevance,sort_order=arxiv.SortOrder.Descending)papers=[]forresultinsearch.results():paper={'title':result.title,'authors':[author.nameforauthorinresult.authors],'summary':result.summary,'published':result.published.strftime('%Y-%m-%d'),'pdf_url':result.pdf_url,'entry_id':result.entry_id,'categories':result.categories}papers.append(paper)print(f"- 找到{len(papers)}篇相关论文")returnpapersdefformat_paper_info(paper:Dict)-str:"""格式化单篇论文信息"""authors_str=", ".join(paper['authors'][:3])# 只显示前3个作者iflen(paper['authors'])3:authors_str+=" et al."returnf""" 标题:{paper['title']}作者:{authors_str}发表日期:{paper['published']}摘要:{paper['summary'][:500]}... 链接:{paper['entry_id']}分类:{', '.join(paper['categories'][:3])}""".strip()defformat_search_results(papers:List[Dict])-str:"""格式化搜索结果"""ifnotpapers:return"未找到相关论文"formatted=[]fori,paperinenumerate(papers,1):formatted.append(f"\n{'='*60}\n论文{i}:\n{format_paper_info(paper)}")return"\n".join(formatted)PDF阅读器创建tools/pdf_reader.py:importrequestsfrompypdfimportPdfReaderfromioimportBytesIOfromconfigimportconfigdefdownload_and_read_pdf(pdf_url:str,max_length:int=None)-str:""" 下载并读取PDF文件内容 Args: pdf_url: PDF文件的URL max_length: 最大读取字符数 Returns: PDF文本内容 """ifmax_lengthisNone:max_length=config.MAX_PAPER_LENGTHtry:print(f"正在下载PDF:{pdf_url[:80]}...")# 下载PDFresponse=requests.get(pdf_url,timeout=30)response.raise_for_status()# 读取PDF内容pdf_file=BytesIO(response.content)reader=PdfReader(pdf_file)# 提取文本text_parts=[]forpageinreader.pages:text=page.extract_text()iftext:text_parts.append(text)full_text="\n".join(text_parts)# 限制长度iflen(full_text)max_length:full_text=full_text[:max_length]+"\n...(内容过长,已截断)"print(f"- 成功读取PDF,共{
http://www.zskr.cn/news/1365390.html

相关文章:

  • 为什么92%的AI教育项目半年内停滞?PlayAI成功项目的4个反直觉设计原则与21项可复用配置清单
  • 量子机器学习可解释性:从经典XAI到XQML的挑战与创新方法
  • 拯救者Y7000P黑苹果避坑实录:搞定三星PM981和亮度调节,保姆级教程
  • 魔兽争霸3终极性能提升插件:5分钟实现现代系统完美兼容
  • Claude医学文献分析准确率实测:对比GPT-4o、Gemini 2.0与专业文献数据库(n=1,847篇RCT,Kappa=0.91)
  • 机器学习快速绘制自旋玻璃相图:从局部场统计特征到相分类
  • 速腾RS-M1激光雷达Windows点云查看保姆级教程:从接线到RSView实时显示
  • 机器学习结合对称性描述符高效预测硅带隙温度依赖性
  • DS4Windows终极指南:解锁PS4手柄在PC上的完整潜力
  • QMCDump:轻松解锁QQ音乐加密格式,实现音乐格式自由转换
  • 如何免费打造你的终极虚拟桌面伴侣:Mate Engine完全指南
  • 副本理论解析量子机器学习泛化误差:噪声、数据与正则化的博弈
  • 数据团队正在被重新定价:会做报表的人,和能推动决策的人
  • ViGEmBus:Windows游戏控制器虚拟化终极指南
  • 魔兽争霸3兼容性问题终极解决方案:5分钟快速安装WarcraftHelper指南
  • 终极免费解决方案:Wand-Enhancer解锁WeMod专业版完整功能
  • 中兴光猫权限解锁终极指南:zteOnu工具的5个核心突破
  • 终极指南:如何让浏览器重新支持微信网页版登录
  • 终极指南:如何用wxappUnpacker逆向分析微信小程序架构
  • Agent 一接实时协作文档就开始互相覆盖:从 Presence Lease 到 Block-Level Commit 的工程实战
  • Vectorizer:5分钟将普通图片转换为可无限放大的矢量图
  • Tadah!:基于物理约束的机器学习原子间势自动化开发工具
  • BurpSuite集成AES加解密服务:Flask协处理器实战方案
  • AMD Ryzen SMU Debug Tool深度解析:硬件级系统管理单元调试实战指南
  • Windows离线语音转文字终极指南:TMSpeech让会议记录变得简单高效!
  • TPFanCtrl2终极指南:5步掌握ThinkPad风扇智能控制,告别过热与噪音烦恼
  • 如何用Universal x86 Tuning Utility释放你的硬件潜能?5大核心功能详解
  • 医疗文本数据噪声对模型性能的影响:从错误率量化到模型选型实战
  • 机器学习处理不平衡数据:从评估指标到可解释AI的催化剂设计实战
  • 机器学习能否学到真实概率?从校准、博弈到直接可观测性的理论边界与实践启示