news 2026/6/9 22:38:31

使用LlamaIndex与OpenAI构建具备自我评估能力的智能体AI系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用LlamaIndex与OpenAI构建具备自我评估能力的智能体AI系统

如何使用LlamaIndex和OpenAI构建具备自我评估能力的智能体AI系统

在本教程中,将构建一个使用LlamaIndex和OpenAI模型的高级智能体AI工作流。重点关注设计一个可靠的检索增强生成(RAG)智能体,使其能够基于证据进行推理、审慎使用工具,并评估自身输出的质量。通过围绕检索、答案合成和自我评估来构建系统,展示智能体模式如何超越简单的聊天机器人,朝着更值得信赖、可控的AI系统迈进,适用于研究和分析用例。

!pip-q install-U llama-index llama-index-llms-openai llama-index-embeddings-openai nest_asyncio
importosimportasyncioimportnest_asyncio nest_asyncio.apply()fromgetpassimportgetpassifnotos.environ.get("OPENAI_API_KEY"):os.environ["OPENAI_API_KEY"]=getpass("Enter OPENAI_API_KEY: ")

设置环境并安装运行智能体AI工作流所需的所有依赖项。在运行时安全地加载某中心的API密钥,确保凭证不会被硬编码。同时,准备笔记本以平滑处理异步执行。

fromllama_index.coreimportDocument,VectorStoreIndex,Settingsfromllama_index.llms.openaiimportOpenAIfromllama_index.embeddings.openaiimportOpenAIEmbedding Settings.llm=OpenAI(model="gpt-4o-mini",temperature=0.2)Settings.embed_model=OpenAIEmbedding(model="text-embedding-3-small")texts=["可靠的RAG系统将检索、合成和验证分开。常见的失败包括幻觉和浅层检索。","RAG评估侧重于忠实性、答案相关性和检索质量。","使用工具的智能体需要受约束的工具、验证和自我审查循环。","一个稳健的工作流遵循检索、回答、评估和修订的步骤。"]docs=[Document(text=t)fortintexts]index=VectorStoreIndex.from_documents(docs)query_engine=index.as_query_engine(similarity_top_k=4)

配置某中心语言模型和嵌入模型,并为智能体构建一个紧凑的知识库。将原始文本转换为索引文档,以便智能体在推理过程中可以检索相关证据。

fromllama_index.core.evaluationimportFaithfulnessEvaluator,RelevancyEvaluator faith_eval=FaithfulnessEvaluator(llm=Settings.llm)rel_eval=RelevancyEvaluator(llm=Settings.llm)defretrieve_evidence(q:str)->str:r=query_engine.query(q)out=[]fori,ninenumerate(r.source_nodesor[]):out.append(f"[{i+1}]{n.node.get_content()[:300]}")return"\n".join(out)defscore_answer(q:str,a:str)->str:r=query_engine.query(q)ctx=[n.node.get_content()forninr.source_nodesor[]]f=faith_eval.evaluate(query=q,response=a,contexts=ctx)r=rel_eval.evaluate(query=q,response=a,contexts=ctx)returnf"Faithfulness:{f.score}\nRelevancy:{r.score}"

定义智能体使用的核心工具:证据检索和答案评估。实现忠实性和相关性的自动评分,使智能体能够判断自身响应的质量。

fromllama_index.core.agent.workflowimportReActAgentfromllama_index.core.workflowimportContext agent=ReActAgent(tools=[retrieve_evidence,score_answer],llm=Settings.llm,system_prompt=""" 始终首先检索证据。 生成结构化的答案。 评估答案,如果分数低则修改一次。 """,verbose=True)ctx=Context(agent)

创建基于ReAct的智能体,并定义其系统行为,指导其如何检索证据、生成答案和修订结果。同时初始化执行上下文,该上下文在交互过程中维护智能体的状态。这一步将工具和推理整合到一个单一的智能体工作流中。

asyncdefrun_brief(topic:str):q=f"设计一个可靠的RAG + 工具使用智能体工作流以及如何评估它。主题:{topic}"handler=agent.run(q,ctx=ctx)asyncforevinhandler.stream_events():print(getattr(ev,"delta",""),end="")res=awaithandlerreturnstr(res)topic="RAG agent reliability and evaluation"loop=asyncio.get_event_loop()result=loop.run_until_complete(run_brief(topic))print("\n\nFINAL OUTPUT\n")print(result)

通过将一个主题传递到系统中并流式传输智能体的推理和输出来执行完整的智能体循环。允许智能体异步完成其检索、生成和评估周期。

总结而言,展示了智能体如何在最终确定答案之前检索支持性证据、生成结构化响应并评估其自身的忠实性和相关性。设计保持了模块化和透明性,使得可以轻松地使用额外的工具、评估器或特定领域知识源来扩展工作流。这种方法说明了如何将智能体AI与LlamaIndex和某中心模型结合使用,以构建功能更强大、在推理和响应方面也更可靠和更具自我意识的系统。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 11:54:16

基于python的垃圾分类系统

前言随着环保意识的增强和垃圾分类政策的普及,开发一款高效、智能的垃圾分类系统成为提升公众参与度和分类准确率的关键。基于Python的垃圾分类系统结合图像识别、自然语言处理(NLP)和数据库技术,能够自动识别垃圾类型、提供分类指…

作者头像 李华
网站建设 2026/6/7 14:21:02

手把手教你用嘎嘎降AI:5分钟搞定论文降AI全流程

手把手教你用嘎嘎降AI:5分钟搞定论文降AI全流程 第一次用嘎嘎降AI,5分钟搞定。我的论文从62%降到了8%,花了不到30块。 如果你也在找一键降AI的降AI率工具,这篇嘎嘎降AI使用教程能帮你快速上手。我会把每一步都讲清楚&#xff0c…

作者头像 李华
网站建设 2026/6/6 11:53:15

企微第三方 RPA API:非官方接口与官方接口的差异解析及选型建议

QiWe开放平台 个人名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生态的技术服务团队 对接…

作者头像 李华
网站建设 2026/6/8 4:49:15

跨平台环境下,asp.net如何支持文件夹的断点续传?

.NET程序员的20G文件上传历险记 大家好,我是甘肃的一名苦逼.NET程序员,最近接了个外包项目,客户的需求简直是要我老命啊!来给大家扒一扒这个"价值连城"的项目需求: 项目需求:地狱级难度 大文件…

作者头像 李华
网站建设 2026/6/8 2:00:13

winrar-x64-713.exe

WinRAR (CVE-2025-8088) 漏洞 下载地址: https://www.win-rar.com/download.html?&L7 https://github.com/winkeytseng/blog/blob/main/winrar-x64-713.exe

作者头像 李华