核心内容摘要
深度解锁二次元禁区:最全动漫同人18动漫免费网站热门资源导航
如何使用LlamaIndex和OpenAI构建具备自我评估能力的智能体AI系统在本教程中将构建一个使用LlamaIndex和OpenAI模型的高级智能体AI工作流。
重点关注设计一个可靠的检索增强生成RAG智能体使其能够基于证据进行推理、审慎使用工具并评估自身输出的质量。
通过围绕检索、答案合成和自我评估来构建系统展示智能体模式如何超越简单的聊天机器人朝着更值得信赖、可控的AI系统迈进适用于研究和分析用例。
!pip-q install-U llama-index llama-index-llms-openai llama-index-embeddings-openai nest_asyncioimportosimportasyncioimportnest_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.llmOpenAI(modelgpt-4o-mini,temperature
0.
Settings.embed_modelOpenAIEmbedding(modeltext-embedding-3-small)texts[可靠的RAG系统将检索、合成和验证分开。
常见的失败包括幻觉和浅层检索。
,RAG评估侧重于忠实性、答案相关性和检索质量。
,使用工具的智能体需要受约束的工具、验证和自我审查循环。
,一个稳健的工作流遵循检索、回答、评估和修订的步骤。
]docs[Document(textt)fortintexts]indexVectorStoreIndex.from_documents(docs)query_engineindex.as_query_engine(similarity_top_k
配置某中心语言模型和嵌入模型并为智能体构建一个紧凑的知识库。
将原始文本转换为索引文档以便智能体在推理过程中可以检索相关证据。
fromllama_index.core.evaluationimportFaithfulnessEvaluator,RelevancyEvaluator faith_evalFaithfulnessEvaluator(llmSettings.llm)rel_evalRelevancyEvaluator(llmSettings.llm)defretrieve_evidence(q:str)-str:rquery_engine.query(q)out[]fori,ninenumerate(r.source_nodesor[]):out.append(f[{i1}]{n.node.get_content()[:300]})return\n.join(out)defscore_answer(q:str,a:str)-str:rquery_engine.query(q)ctx[n.node.get_content()forninr.source_nodesor[]]ffaith_eval.evaluate(queryq,responsea,contextsctx)rrel_eval.evaluate(queryq,responsea,contextsctx)returnfFaithfulness:{f.score}\nRelevancy:{r.score}定义智能体使用的核心工具证据检索和答案评估。
实现忠实性和相关性的自动评分使智能体能够判断自身响应的质量。
fromllama_index.core.agent.workflowimportReActAgentfromllama_index.core.workflowimportContext agentReActAgent(tools[retrieve_evidence,score_answer],llmSettings.llm,system_prompt 始终首先检索证据。
生成结构化的答案。
评估答案如果分数低则修改一次。
,verboseTrue)ctxContext(agent)创建基于ReAct的智能体并定义其系统行为指导其如何检索证据、生成答案和修订结果。
同时初始化执行上下文该上下文在交互过程中维护智能体的状态。
这一步将工具和推理整合到一个单一的智能体工作流中。
asyncdefrun_brief(topic:str):qf设计一个可靠的RAG 工具使用智能体工作流以及如何评估它。
主题{topic}handleragent.run(q,ctxctx)asyncforevinhandler.stream_events():print(getattr(ev,delta,),end)resawaithandlerreturnstr(res)topicRAG agent reliability and evaluationloopasyncio.get_event_loop()resultloop.run_until_complete(run_brief(topic))print(\n\nFINAL OUTPUT\n)print(result)通过将一个主题传递到系统中并流式传输智能体的推理和输出来执行完整的智能体循环。
允许智能体异步完成其检索、生成和评估周期。
总结而言展示了智能体如何在最终确定答案之前检索支持性证据、生成结构化响应并评估其自身的忠实性和相关性。
设计保持了模块化和透明性使得可以轻松地使用额外的工具、评估器或特定领域知识源来扩展工作流。
这种方法说明了如何将智能体AI与LlamaIndex和某中心模型结合使用以构建功能更强大、在推理和响应方面也更可靠和更具自我意识的系统。
更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife