虚拟网站管理系统婚纱摄影手机网站欣赏
2026/1/11 11:26:21 网站建设 项目流程
虚拟网站管理系统,婚纱摄影手机网站欣赏,免费网站建设apk,吾爱网站文章全面介绍了智能体式RAG#xff08;Agent-enhanced RAG#xff09;的概念、分类和实现方法。智能体式RAG通过引入AI智能体的自主决策和编排能力#xff0c;解决了传统RAG在上下文整合、多步推理和可扩展性方面的局限。文章详细分析了单智能体、多智能体、层次化等多种智能…文章全面介绍了智能体式RAGAgent-enhanced RAG的概念、分类和实现方法。智能体式RAG通过引入AI智能体的自主决策和编排能力解决了传统RAG在上下文整合、多步推理和可扩展性方面的局限。文章详细分析了单智能体、多智能体、层次化等多种智能体式RAG架构并提供了构建系统的具体步骤和代码示例展示了如何通过智能体动态优化检索-生成工作流提升大模型在复杂场景中的表现。1、 介绍随着我们从2024年进入2025年AI领域的焦点正从检索增强生成RAG转向更具突破性的技术——智能体式RAG。本文将向您介绍智能体式RAG的概念、实现方法以及其优点和局限性。1.1 智能体式RAG概述检索增强生成RAG代表了人工智能领域的重大进步它将大型语言模型LLM的生成能力与实时数据检索相结合。虽然LLM在自然语言处理方面展示了卓越的能力但它们对静态预训练数据的依赖往往导致过时或不完整的响应。RAG通过动态检索外部源的相关信息并将其整合到生成过程中解决了这一限制从而实现上下文准确和最新的输出。图片来源AgenticRAG-Survey1.2 RAG与智能体式RAG对比RAG系统的架构集成了三个主要组件图片来源AgenticRAG-Survey•检索负责查询外部数据源如知识库、API或向量数据库。高级检索器利用密集向量搜索和基于transformer的模型来提高检索精度和语义相关性。•增强处理检索到的数据提取和总结最相关的信息以与查询上下文对齐。•生成将检索到的信息与LLM的预训练知识相结合生成连贯、上下文适当的响应。智能体式RAG通过使用AI智能体引入自主决策和编排实现了更强大和灵活的检索-生成工作流。其高级流程包括•步骤1面向智能体的查询分析用户查询被路由到一个AI智能体该智能体解释查询的意图和上下文。•步骤2记忆和策略智能体利用短期会话和长期历史记忆来跟踪上下文。然后它制定动态检索和推理策略。•步骤3工具选择和数据收集智能体智能地选择工具——如向量搜索、API连接器甚至其他智能体——并从相关知识库例如MCP服务器、图数据库、文档存储中检索数据。•步骤4提示构建检索到的内容通过结构化上下文和系统指令进行丰富。这个丰富的提示被传递给LLM。•步骤5LLM响应生成LLM处理优化和上下文化的提示产生高度相关、可解释和自适应的响应。2、 RAG范式的演进检索增强生成RAG领域已经显著演进以解决现实世界应用日益增长的复杂性其中上下文准确性、可扩展性和多步推理至关重要。从简单的基于关键词的检索开始已经转变为复杂的、模块化和自适应系统能够集成多样化的数据源和自主决策过程。这一演进突显了RAG系统高效有效处理复杂查询的日益增长的需求。本节考察了RAG范式的进展呈现了关键发展阶段朴素RAG、高级RAG、模块化RAG、GraphRAG和智能体式RAG2.1 朴素RAG朴素RAG代表了检索增强生成的基础实现。图3说明了朴素RAG的简单检索-读取工作流专注于基于关键词的检索和静态数据集。这些系统依赖于简单的基于关键词的检索技术如TF-IDF和BM25从静态数据集中获取文档。然后检索到的文档用于增强语言模型的生成能力。朴素RAG的特点是其简单性和易于实现使其适用于涉及基于事实的查询且上下文复杂性最小的任务。然而它有几个限制•缺乏上下文感知由于依赖词汇匹配而非语义理解检索到的文档往往无法捕捉查询的语义细微差别。•碎片化输出缺乏高级预处理或上下文整合通常导致不连贯或过于通用的响应。•可扩展性问题基于关键词的检索技术在处理大型数据集时遇到困难通常无法识别最相关的信息。尽管有这些限制朴素RAG系统为将检索与生成集成提供了关键的概念验证为更复杂的范式奠定了基础。2.2 高级RAG高级RAG系统通过整合语义理解和增强的检索技术建立在朴素RAG的限制之上。图4强调了高级RAG在检索中的语义增强和迭代、上下文感知的管道。这些系统利用密集检索模型如密集段落检索DPR和神经排序算法来提高检索精度。2.3 模块化RAG模块化RAG代表了RAG范式的最新演进强调灵活性和定制化。这些系统将检索和生成管道分解为独立的、可重用的组件实现领域特定优化和任务适应性。图5展示了模块化架构展示了混合检索策略、可组合管道和外部工具集成。2.4 GraphRAGGraphRAG通过集成基于图的数据结构扩展了传统的检索增强生成系统如图6所示。这些系统利用图数据中的关系和层次结构来增强多跳推理和上下文丰富化。通过整合基于图的检索GraphRAG能够实现更丰富和更准确的生成输出特别是对于需要关系理解的任务。然而GraphRAG有一些限制•有限的可扩展性对图结构的依赖可能限制可扩展性特别是对于广泛的数据源。•数据依赖高质量的图数据对于有意义的输出至关重要限制了其在非结构化或注释不良的数据集中的适用性。•集成的复杂性将图数据与非结构化检索系统集成增加了设计和实现的复杂性。GraphRAG非常适合于医疗诊断、法律研究和其他需要对结构化关系进行推理的领域等应用。2.5 智能体式RAG智能体式RAG通过引入能够动态决策和工作流优化的自主智能体代表了范式转变。与静态系统不同智能体式RAG采用迭代优化和自适应检索策略来解决复杂的、实时的和多领域查询。这种范式利用了检索和生成过程的模块化同时引入了基于智能体的自主性。当涉及到扩展检索增强生成RAG系统以解决现实世界业务问题时没有单一、僵化的模板。架构必须根据您的独特用例、数据环境和领域需求进行演进。要有效地做到这一点理解驱动智能体式RAG管道的模块化组件至关重要。让我们分解核心阶段并探索它们如何交互1. 分析查询第一步涉及将原始用户查询传递给一个由语言模型驱动的智能体负责深度分析和转换。这个阶段包括• 查询重写智能体可能会重新表述输入生成精炼或替代版本以更好地提取相关知识。• 决策逻辑它评估查询是否可以直接回答或者是否需要额外数据。2. 额外数据源如果需要更多上下文系统会激活一个或多个检索智能体负责获取最相关的数据。这些智能体可能获取• 实时用户数据例如用户当前位置或状态• 私有/内部文档项目文件、报告、手册• 公共或基于网络的内容API数据、索引文章等每个检索路径都是动态的通常根据查询的意图和性质进行选择。3. 重新排序搜索结果一旦检索到候选文档它们会通过一个重新排序模型——通常比基础嵌入器更强大和上下文感知。这一步• ⚖️过滤噪声仅提取语义最相关的数据点。• 压缩范围确保下游步骤使用精确、高信号的上下文。4. 生成答案在LLM智能体确定它已经有足够知识的情况下它直接进行答案合成可能产生• ✅ 单个事实响应• 建议操作列表• 甚至执行任务的智能体驱动工作流5. 分析答案最后生成的答案由另一个智能体或重新调用的同一智能体进行关键评估• 如果准确和相关则与最终用户共享。• ♻️ 如果不足系统可能会重新表述原始查询并重新启动循环——由预定义的重试限制限制以避免无限循环。本质上智能体式RAG系统更像是自主决策者而不是简单的检索工具。它们动态适应、推理并在各阶段演进——全部由您的业务上下文指导。 设计您的系统意味着选择正确的智能体定义它们的决策边界并仔细编排它们的交互。3、 传统RAG系统的挑战和局限性检索增强生成RAG通过将生成与实时数据结合推进了LLM但在复杂的现实世界场景中仍然有几个关键挑战限制了其性能上下文整合即使RAG系统成功检索到相关信息它们也常常难以将其无缝整合到生成的响应中。检索管道的静态性质和有限的上下文感知导致碎片化、不一致或过于通用的输出。示例当被问及阿尔茨海默病研究的最新进展及其对早期治疗的影响是什么“时RAG可能会提取相关研究但未能将这些发现连接到患者护理的可操作见解。同样对于干旱地区小规模农业的最佳可持续实践是什么”它可能检索到广泛的农业方法但错过了干旱特定的可持续技术。2. 多步推理复杂问题通常需要跨多个步骤进行推理但传统RAG通常在单次跳转中检索信息错过了更深层次的合成。示例像欧洲可再生能源政策的哪些经验可以应用于发展中国家潜在的经济影响是什么这样的查询需要结合政策数据、当地背景和经济预测。RAG通常无法将所有这些部分整合成一个连贯的答案。3. 可扩展性和延迟问题随着外部数据的增长搜索和排序大型数据集会减慢响应时间这对实时用例来说是有问题的。示例在实时金融分析或客户支持中获取和处理大型数据集的延迟可能是代价高昂的——例如由于检索缓慢而在高频交易期间错过市场趋势。4、 智能体式RAG分类4.1 单智能体智能体式RAG路由器单智能体智能体式RAG作为一个集中式决策系统其中单个智能体管理信息的检索、路由和整合如图所示。这种架构通过将这些任务整合到一个统一的智能体中来简化系统使其在工具或数据源数量有限的设置中特别有效。单智能体RAG概述 | 图片来源AgenticRAG-Survey工作流查询提交和评估用户提交查询协调智能体分析并确定适当的数据源知识源选择• 结构化数据库例如通过Text-to-SQL的PostgreSQL、MySQL。• 语义搜索例如对PDF、书籍、内部记录进行基于向量的搜索。• 网络搜索实时在线数据。• 推荐系统基于用户档案的个性化建议。数据整合和LLM合成检索到的数据传递给LLM合成为连贯的响应。输出生成系统为用户生成简洁、可操作的响应。尽管有其进步智能体式RAG面临一些挑战• 协调复杂性管理智能体之间的交互需要复杂的编排机制。• 计算开销使用多个智能体增加了复杂工作流的资源需求。• 可扩展性限制虽然可扩展但系统的动态性质可能会对高查询量的计算资源造成压力。智能体式RAG在客户支持、金融分析和自适应学习平台等领域表现出色其中动态适应性和上下文准确性至关重要。4.2 多智能体智能体式RAG系统多个专业智能体协作工作每个专注于特定的数据源或任务实现对复杂查询的可扩展、模块化处理。工作流查询提交协调智能体接收查询并将其分发给专业智能体。2. 专业检索智能体智能体1结构化数据对PostgreSQL、MySQL进行SQL查询。智能体2语义搜索PDF、书籍、内部非结构化数据。智能体3实时网络搜索新闻、政策更新。智能体4推荐系统个性化内容、专家建议。工具访问和数据检索并行利用向量搜索、Text-to-SQL、网络搜索和外部API。数据整合和LLM合成聚合的数据传递给LLM合成为全面输出。输出生成 最终、整合的响应交付给用户。挑战• 跨智能体协调复杂性增加。• 更高的计算资源消耗。• 跨异构输出的复杂数据整合。4.3 层次化智能体式RAG系统层次化智能体式RAG系统采用结构化的、多层次的方法进行信息检索和处理如图18所示提高了效率和战略决策。智能体按层次组织高级智能体监督和指导低级智能体。这种结构实现了多级决策确保查询由最合适的资源处理。一种分层架构其中顶级智能体管理多个下属智能体为高度复杂的任务实现动态委托和合成。工作流查询接收用户提交查询由负责初始评估和任务委托的顶级智能体接收。战略决策顶级智能体评估查询复杂性并根据领域相关性和数据可靠性选择优先考虑哪些下属智能体、数据库、API或检索工具。委托给下属智能体任务分配给专业的低级智能体例如SQL数据库、网络搜索、专有API它们独立执行检索。聚合和合成下属智能体将结果返回给顶级智能体顶级智能体整合和合成信息为连贯、统一的响应。响应交付最终、合成的答案呈现给用户确保完整性和上下文准确性。挑战• 协调复杂性跨多个级别的强大智能体间通信增加了编排开销。• 资源分配跨层的高效任务分配复杂需要仔细管理以避免瓶颈。4.4 智能体式纠正RAG纠正RAG引入了自我纠正机制迭代优化检索结果通过将智能智能体嵌入工作流来增强文档利用率和响应质量。工作流上下文检索智能体从向量数据库检索初始上下文文档。相关性评估智能体评估检索到的文档的相关性标记不相关或模糊的文档以进行纠正。查询优化智能体使用语义理解重写和优化查询以改善检索结果。外部知识检索智能体如果上下文仍然不足进行网络搜索或访问替代数据源。响应合成智能体将所有验证和优化的信息合成为连贯、准确的响应。纠正RAG的关键思想• 文档相关性评估评估检索到的文档低相关性文档触发纠正步骤。• 查询优化和增强查询由查询优化智能体重写以改善检索确保为响应生成提供更高质量的输入。4.5 自适应智能体式RAG自适应RAG通过根据每个查询的复杂性定制检索策略引入动态查询处理增强了灵活性和效率。自适应RAG的关键思想• 直接查询对于基于事实的问题直接生成而不检索例如“水的沸点是多少”。• 简单查询对于中等复杂任务进行单步检索例如“我最新的电费账单状态是什么”。• 复杂查询对于需要分层推理的复杂查询进行多步检索和迭代优化例如“X市的人口在过去十年中如何变化贡献因素是什么”。工作流分类器角色• 一个较小的LLM使用基于历史结果自动标记的数据集分析查询复杂性。2. 动态策略选择• 对于直接查询直接LLM响应。• 对于简单查询单步检索。• 对于需要迭代推理的复杂查询多步检索。3. LLM集成• 检索到的信息合成为连贯的响应。• LLM和分类器之间的迭代交互优化复杂任务的输出。4.6 基于图的智能体式RAG4.6.1 Agent-GGraphRAG的智能体式框架Agent-G引入了一种新颖的架构将图知识库与非结构化文档检索相结合增强了RAG系统中的推理和检索准确性。Agent-G的关键思想• 图知识库提取结构化关系例如医疗保健中的疾病到症状映射。• 非结构化文档用文本源的上下文信息补充结构化数据。• 批评模块评估检索数据的相关性和质量在需要时触发纠正操作。• 反馈循环通过验证和重新查询迭代优化检索和合成。工作流检索器库模块化智能体专门从事图或非结构化数据检索根据查询需求动态选择源。批评模块验证检索信息的相关性和置信度标记不确定结果以进行优化。动态智能体交互任务特定智能体协作将结构化和非结构化数据源集成到统一工作流中。LLM集成将验证的数据合成为连贯的响应通过批评反馈循环持续优化。4.6.2 GeAR图增强的RAG智能体GeAR通过集成基于图的检索和智能体控制增强了传统RAG改善了复杂查询的多跳检索。GeAR的关键思想• 图扩展通过整合图结构数据扩展基础检索器例如BM25捕获复杂的实体关系和依赖关系。• 智能体框架利用智能体动态管理检索策略根据查询复杂性自主选择图扩展路径。工作流图扩展模块将图数据集成到检索中扩展搜索空间以包括连接的实体以实现更好的多跳推理。基于智能体的检索智能体动态选择和组合检索策略在必要时利用图扩展检索。LLM集成使用LLM将图丰富和非结构化数据合成为连贯、上下文丰富的响应。4.7 智能体式RAG中的智能体式文档工作流ADWADW通过编排以文档为中心的流程中的端到端知识工作自动化扩展了传统RAG将解析、检索、推理和结构化输出与智能智能体集成。工作流文档解析和信息结构化• 使用企业工具例如LlamaParse解析文档提取发票号码、日期、供应商、行项目和付款条件等字段。• 为下游任务结构化提取的数据。跨流程状态维护在多个处理阶段维护文档上下文和跟踪工作流进展。3. 知识检索• 从外部知识库例如LlamaCloud和向量索引检索相关参考。• 融入实时、特定领域的指导原则以支持决策。智能体式编排智能智能体应用业务规则执行多跳推理并协调解析器、检索器和API等组件。可操作输出生成生成结构化输出在简洁、可操作的报告中提供合成建议和见解。5、 智能体式RAG框架的比较分析表2提供了三种架构框架的全面比较分析传统RAG、智能体式RAG和智能体式文档工作流ADW。该分析突出了它们各自的优点、缺点和最适合的场景为它们在不同用例中的适用性提供了有价值的见解。6、 构建智能体式RAG系统在本教程中我们将构建一个检索智能体。当您希望LLM决定是否从向量存储库检索上下文或直接响应用户时检索智能体非常有用。在本教程结束时我们将完成以下工作获取和预处理将用于检索的文档。为这些文档建立索引以进行语义搜索并为智能体创建检索器工具。构建一个智能体式RAG系统可以决定何时使用检索器工具。设置让我们下载所需的包并设置我们的API密钥pip install -U --quiet langgraph langchain[openai] langchain-community langchain-text-splitters ​plaintext import getpassimport osdef _set_env(key: str): if key not in os.environ: os.environ[key] getpass.getpass(f{key}:)_set_env(OPENAI_API_KEY)6.1 预处理文档获取将在我们的RAG系统中使用的文档。我们将使用Lilian Weng的优秀博客的最新三页。我们将首先使用WebBaseLoader工具获取页面的内容from langchain_community.document_loaders import WebBaseLoaderurls [\ https://lilianweng.github.io/posts/2024-11-28-reward-hacking/,\ https://lilianweng.github.io/posts/2024-07-07-hallucination/,\ https://lilianweng.github.io/posts/2024-04-12-diffusion-video/,\]docs [WebBaseLoader(url).load() for url in urls] ​plaintext docs[0][0].page_content.strip()[:1000]将获取的文档分割成更小的块以便索引到我们的向量存储库中from langchain_text_splitters import RecursiveCharacterTextSplitterdocs_list [item for sublist in docs for item in sublist]text_splitter RecursiveCharacterTextSplitter.from_tiktoken_encoder( chunk_size100, chunk_overlap50)doc_splits text_splitter.split_documents(docs_list) ​plaintext doc_splits[0].page_content.strip()6.2 创建检索工具现在我们有了分割的文档我们可以将它们索引到我们将用于语义搜索的向量存储中。使用内存向量存储和OpenAI嵌入from langchain_core.vectorstores import InMemoryVectorStorefrom langchain_openai import OpenAIEmbeddingsvectorstore InMemoryVectorStore.from_documents( documentsdoc_splits, embeddingOpenAIEmbeddings())retriever vectorstore.as_retriever()使用LangChain预构建的create_retriever_tool创建检索器工具from langchain.tools.retriever import create_retriever_toolretriever_tool create_retriever_tool( retriever, retrieve_blog_posts, Search and return information about Lilian Weng blog posts.,)测试工具retriever_tool.invoke({query: types of reward hacking})6.3 生成查询现在我们将开始为我们的智能体式RAG图构建组件节点和边。请注意这些组件将在[MessagesState](https://archive.ph/o/irT5D/https://langchain-ai.github.io/langgraph/concepts/low_level%23messagesstate)上操作——包含带有聊天消息列表的messages键的图状态。构建一个generate_query_or_respond节点。它将调用LLM根据当前图状态消息列表生成响应。给定输入消息它将决定使用检索器工具进行检索或直接响应用户。请注意我们通过.bind_tools让聊天模型访问我们之前创建的retriever_toolfrom langgraph.graph import MessagesStatefrom langchain.chat_models import init_chat_modelresponse_model init_chat_model(openai:gpt-4.1, temperature0)def generate_query_or_respond(state: MessagesState): Call the model to generate a response based on the current state. Given the question, it will decide to retrieve using the retriever tool, or simply respond to the user. response ( response_model .bind_tools([retriever_tool]).invoke(state[messages]) ) return {messages: [response]}在随机输入上尝试input {messages: [{role: user, content: hello!}]}generate_query_or_respond(input)[messages][-1].pretty_print()6.4 文档评分添加一个条件边——grade_documents——以确定检索到的文档是否与问题相关。我们将使用具有结构化输出模式GradeDocuments的模型进行文档评分。grade_documents函数将根据评分决策返回要去的节点名称generate_answer或rewrite_questionfrom pydantic import BaseModel, Fieldfrom typing import LiteralGRADE_PROMPT ( You are a grader assessing relevance of a retrieved document to a user question. \n Here is the retrieved document: \n\n {context} \n\n Here is the user question: {question} \n If the document contains keyword(s) or semantic meaning related to the user question, grade it as relevant. \n Give a binary score yes or no score to indicate whether the document is relevant to the question.)class GradeDocuments(BaseModel): Grade documents using a binary score for relevance check. binary_score: str Field( descriptionRelevance score: yes if relevant, or no if not relevant )grader_model init_chat_model(openai:gpt-4.1, temperature0)def grade_documents( state: MessagesState,) - Literal[generate_answer, rewrite_question]: Determine whether the retrieved documents are relevant to the question. question state[messages][0].content context state[messages][-1].content prompt GRADE_PROMPT.format(questionquestion, contextcontext) response ( grader_model .with_structured_output(GradeDocuments).invoke( [{role: user, content: prompt}] ) ) score response.binary_score if score yes: return generate_answer else: return rewrite_question在工具响应中使用不相关文档运行from langchain_core.messages import convert_to_messagesinput { messages: convert_to_messages( [\ {\ role: user,\ content: What does Lilian Weng say about types of reward hacking?,\ },\ {\ role: assistant,\ content: ,\ tool_calls: [\ {\ id: 1,\ name: retrieve_blog_posts,\ args: {query: types of reward hacking},\ }\ ],\ },\ {role: tool, content: meow, tool_call_id: 1},\ ] )}grade_documents(input)确认相关文档被如此分类input { messages: convert_to_messages( [\ {\ role: user,\ content: What does Lilian Weng say about types of reward hacking?,\ },\ {\ role: assistant,\ content: ,\ tool_calls: [\ {\ id: 1,\ name: retrieve_blog_posts,\ args: {query: types of reward hacking},\ }\ ],\ },\ {\ role: tool,\ content: reward hacking can be categorized into two types: environment or goal misspecification, and reward tampering,\ tool_call_id: 1,\ },\ ] )}grade_documents(input)6.5 重写问题构建rewrite_question节点。检索器工具可能返回不相关的文档这表明需要改进原始用户问题。为此我们将调用rewrite_question节点REWRITE_PROMPT ( Look at the input and try to reason about the underlying semantic intent / meaning.\n Here is the initial question: \n ------- \n {question} \n ------- \n Formulate an improved question:)def rewrite_question(state: MessagesState): Rewrite the original user question. messages state[messages] question messages[0].content prompt REWRITE_PROMPT.format(questionquestion) response response_model.invoke([{role: user, content: prompt}]) return {messages: [{role: user, content: response.content}]}尝试input { messages: convert_to_messages( [\ {\ role: user,\ content: What does Lilian Weng say about types of reward hacking?,\ },\ {\ role: assistant,\ content: ,\ tool_calls: [\ {\ id: 1,\ name: retrieve_blog_posts,\ args: {query: types of reward hacking},\ }\ ],\ },\ {role: tool, content: meow, tool_call_id: 1},\ ] )}response rewrite_question(input)print(response[messages][-1][content])6.6 生成答案构建generate_answer节点如果我们通过了评分检查我们可以基于原始问题和检索到的上下文生成最终答案GENERATE_PROMPT ( You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you dont know the answer, just say that you dont know. Use three sentences maximum and keep the answer concise.\n Question: {question} \n Context: {context})def generate_answer(state: MessagesState): Generate an answer. question state[messages][0].content context state[messages][-1].content prompt GENERATE_PROMPT.format(questionquestion, contextcontext) response response_model.invoke([{role: user, content: prompt}]) return {messages: [response]}尝试input { messages: convert_to_messages( [\ {\ role: user,\ content: What does Lilian Weng say about types of reward hacking?,\ },\ {\ role: assistant,\ content: ,\ tool_calls: [\ {\ id: 1,\ name: retrieve_blog_posts,\ args: {query: types of reward hacking},\ }\ ],\ },\ {\ role: tool,\ content: reward hacking can be categorized into two types: environment or goal misspecification, and reward tampering,\ tool_call_id: 1,\ },\ ] )}response generate_answer(input)response[messages][-1].pretty_print()6.7 组装图从generate_query_or_respond开始确定我们是否需要调用retriever_tool使用tools_condition路由到下一步• 如果generate_query_or_respond返回了tool_calls调用retriever_tool检索上下文• 否则直接响应用户评估检索到的文档内容是否与问题相关grade_documents并路由到下一步• 如果不相关使用rewrite_question重写问题然后再次调用generate_query_or_respond• 如果相关继续到generate_answer并使用带有检索文档上下文的ToolMessage生成最终响应from langgraph.graph import StateGraph, START, ENDfrom langgraph.prebuilt import ToolNodefrom langgraph.prebuilt import tools_conditionworkflow StateGraph(MessagesState)# Define the nodes we will cycle betweenworkflow.add_node(generate_query_or_respond)workflow.add_node(retrieve, ToolNode([retriever_tool]))workflow.add_node(rewrite_question)workflow.add_node(generate_answer)workflow.add_edge(START, generate_query_or_respond)# Decide whether to retrieveworkflow.add_conditional_edges( generate_query_or_respond, # Assess LLM decision (call retriever_tool tool or respond to the user) tools_condition, { # Translate the condition outputs to nodes in our graph tools: retrieve, END: END, },)# Edges taken after the action node is called.workflow.add_conditional_edges( retrieve, # Assess agent decision grade_documents,)workflow.add_edge(generate_answer, END)workflow.add_edge(rewrite_question, generate_query_or_respond)# Compilegraph workflow.compile()可视化图from IPython.display import Image, displaydisplay(Image(graph.get_graph().draw_mermaid_png()))6.8 运行智能体式RAGfor chunk in graph.stream( { messages: [\ {\ role: user,\ content: What does Lilian Weng say about types of reward hacking?,\ }\ ] }): for node, update in chunk.items(): print(Update from node, node) update[messages][-1].pretty_print() print(\n\n)输出Update from node generate_query_or_respond Ai Message Tool Calls: retrieve_blog_posts (call_cZehDWOxAfSV1RQdw1RHzKwG) Call ID: call_cZehDWOxAfSV1RQdw1RHzKwG Args: query: types of reward hackingUpdate from node retrieve Tool Message Name: retrieve_blog_postsDetecting Reward Hacking#In-Context Reward Hacking#(Note: Some work defines reward tampering as a distinct category of misalignment behavior from reward hacking. But I consider reward hacking as a broader concept here.)At a high level, reward hacking can be categorized into two types: environment or goal misspecification, and reward tampering.Why does Reward Hacking Exist?#Update from node generate_answer Ai Message Lilian Weng categorizes reward hacking into two types: environment or goal misspecification, and reward tampering. She considers reward hacking as a broader concept that includes both of these categories. Some work defines reward tampering separately, but Weng includes it under the umbrella of reward hacking.7、 结论从传统检索增强生成RAG系统到智能体式RAG的演进代表了我们在复杂现实世界应用中处理推理、检索和响应生成方式的范式转变。正如我们所探索的智能体式RAG架构通过使智能体能够迭代推理、委托任务、自我纠正和动态适应解锁了智能的新维度——这是传统RAG管道难以做到的。从单智能体路由到层次化和纠正性多智能体工作流进一步通过Agent-G和GeAR等框架将图结构和智能体式推理融合我们现在拥有了构建真正模块化、弹性和上下文感知的检索系统的基础构建块。每个抽象层次——从自适应到文档工作流智能体——都为RAG生命周期注入了一种新的自主性和决策精细度。然而智能体式RAG并非万能解决方案。它需要仔细的编排、强大的提示工程、深思熟虑的分类学设计和持续的监控以确保可靠性和可扩展性。随着该领域继续成熟未来的机会在于标准化评估协议、构建可互操作的智能体框架以及通过多模态和记忆增强能力推动边界。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询