基础RAG搞不定的问题,高级RAG一招解决
前四篇我们把基础RAG和Advanced RAG都讲完了——混合检索、Rerank重排序这些已经是生产标配。但有些场景,光靠"检索→重排→生成"这条线性流水线还是搞不定:
用户问"A公司的CEO之前在哪家公司任职?"——这个答案可能分散在三份不同的文档里,需要先找到CEO是谁,再找他之前的任职经历,两次检索的结果要串联起来。这就是多跳推理,基础RAG做不到。
再比如用户问"帮我分析一下这个季度的销售趋势"——这种开放性问题没有标准答案,Agent需要自己规划检索策略、多步获取数据、整合分析。这就是Agentic RAG。
今天这篇讲RAG的前沿架构:查询改写、多跳检索、GraphRAG、Agentic RAG。这些不是每个项目都用得上,但当你遇到基础RAG搞不定的场景时,它们就是你的杀手锏。
查询改写:让检索词更"对路"
用户问的问题往往不是最优的检索query。比如用户问"怎么退货",但文档里写的是"退换货流程"——用"怎么退货"去检索可能找不到。
方式1:LLM改写
让模型把用户问题改写成更适合检索的query:
<span><span leaf="">from</span></span><span leaf=""> langchain_core.prompts </span><span><span leaf="">import</span></span><span leaf=""> ChatPromptTemplate</span><span leaf=""><br></span><span><span leaf="">from</span></span><span leaf=""> langchain_core.output_parsers </span><span><span leaf="">import</span></span><span leaf=""> StrOutputParser</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">rewrite_prompt = ChatPromptTemplate.from_template(</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""请将以下用户问题改写为更适合检索的查询词。</span><span leaf=""><br></span><span leaf="">要求:</span><span leaf=""><br></span><span leaf="">1. 补充同义词和相关术语</span><span leaf=""><br></span><span leaf="">2. 使用文档中可能出现的正式表述</span><span leaf=""><br></span><span leaf="">3. 输出3个不同角度的检索query</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">用户问题:{question}</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">改写结果(每行一个):"""</span></span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">rewrite_chain = rewrite_prompt | model | StrOutputParser()</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 用户问"怎么退货"</span></span><span leaf=""><br></span><span leaf="">queries = rewrite_chain.invoke({</span><span><span leaf="">"question"</span></span><span leaf="">: </span><span><span leaf="">"怎么退货"</span></span><span leaf="">})</span><span leaf=""><br></span><span><span leaf=""># 输出:</span></span><span leaf=""><br></span><span><span leaf=""># 1. 退换货流程 退货条件 退货申请</span></span><span leaf=""><br></span><span><span leaf=""># 2. 商品退货政策 无理由退货 退货时限</span></span><span leaf=""><br></span><span><span leaf=""># 3. 退货操作步骤 退款流程 售后服务</span></span><span leaf=""><br></span>
然后对每个query分别检索,合并结果去重。
方式2:HyDE(假设文档嵌入)
HyDE的思路很巧妙:先让模型猜一个答案,用答案去检索。因为答案的表述更接近文档中的写法,检索效果比用原始问题好。
<span leaf="">hyde_prompt = ChatPromptTemplate.from_template(</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""请回答以下问题。即使你不确定,也请给出你的最佳猜测。</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">问题:{question}</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">回答:"""</span></span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">hyde_chain = hyde_prompt | model | StrOutputParser()</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 用户问"怎么退货"</span></span><span leaf=""><br></span><span leaf="">hypothetical_answer = hyde_chain.invoke({</span><span><span leaf="">"question"</span></span><span leaf="">: </span><span><span leaf="">"怎么退货"</span></span><span leaf="">})</span><span leaf=""><br></span><span><span leaf=""># 输出:"退货流程如下:1. 在订单详情页点击申请退货;2. 选择退货原因..."</span></span><span leaf=""><br></span><span><span leaf=""># 用这段"假设答案"去检索,比用"怎么退货"效果好很多</span></span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">results = vectorstore.similarity_search(hypothetical_answer, k=</span><span><span leaf="">5</span></span><span leaf="">)</span><span leaf=""><br></span>
HyDE在我测试中,对短query(5个字以内)的提升最明显,平均召回率提升15%左右。 但对已经很明确的query反而可能降低效果——模型猜的答案跑偏了,检索方向也就偏了。
方式3:Step-back Prompting
让模型先问一个更宏观的问题,用宏观答案提供上下文,再检索具体问题:
<span leaf="">stepback_prompt = ChatPromptTemplate.from_template(</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""你是一个问题抽象专家。请将以下具体问题抽象为一个更宏观的问题。</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">具体问题:{question}</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">宏观问题:"""</span></span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 用户问"2025年Q3北京办公室的差旅报销上限是多少"</span></span><span leaf=""><br></span><span><span leaf=""># → 宏观问题:"公司差旅报销政策的总体框架是什么"</span></span><span leaf=""><br></span><span><span leaf=""># 先检索宏观问题获取背景知识,再检索具体问题</span></span><span leaf=""><br></span>
多跳检索:把复杂问题拆成多步
单次检索只能处理"单跳"问题——答案在一个文档里。对于需要跨文档推理的"多跳"问题,需要多步检索:
<span leaf="">问题:</span><span><span leaf="">"A公司CEO之前在哪工作?"</span></span><span leaf=""><br></span><span leaf="">Step 1:检索</span><span><span leaf="">"A公司CEO是谁"</span></span><span leaf=""> → 找到</span><span><span leaf="">"张三是A公司CEO"</span></span><span leaf=""><br></span><span leaf="">Step 2:检索</span><span><span leaf="">"张三之前的工作经历"</span></span><span leaf=""> → 找到</span><span><span leaf="">"张三2020-2023年在B公司任CTO"</span></span><span leaf=""><br></span><span leaf="">→ 最终答案:A公司CEO张三之前在B公司任CTO</span><span leaf=""><br></span>
实现方式1:迭代检索
<span><span><span leaf="">def</span></span><span leaf=""> </span><span><span leaf="">multi_hop_search</span></span><span><span leaf="">(query, max_hops=</span><span><span leaf="">3</span></span><span leaf="">)</span></span><span leaf="">:</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""多跳检索:每一步基于上一步的结果生成新的query"""</span></span><span leaf=""><br></span><span leaf=""> all_context = []</span><span leaf=""><br></span><span leaf=""> current_query = query</span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">for</span></span><span leaf=""> hop </span><span><span leaf="">in</span></span><span leaf=""> range(max_hops):</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf=""># 检索</span></span><span leaf=""><br></span><span leaf=""> results = retriever.invoke(current_query)</span><span leaf=""><br></span><span leaf=""> all_context.extend(results)</span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf=""> </span><span><span leaf=""># 让模型判断:当前信息够不够回答原始问题?</span></span><span leaf=""><br></span><span leaf=""> judge_prompt = </span><span><span leaf="">f"""基于以下信息,能否回答原始问题?</span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf="">原始问题:</span><span><span leaf="">{query}</span></span><span leaf=""><br></span><span leaf="">已有信息:</span><span><span leaf="">{[r.page_content </span><span><span leaf="">for</span></span><span leaf=""> r </span><span><span leaf="">in</span></span><span leaf=""> all_context]}</span></span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">如果信息不够,请给出下一步应该检索的问题。</span><span leaf=""><br></span><span leaf="">如果信息足够,请回复"ENOUGH"。</span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf="">下一步检索问题:"""</span></span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf=""> next_query = model.invoke(judge_prompt).content</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">if</span></span><span leaf=""> </span><span><span leaf="">"ENOUGH"</span></span><span leaf=""> </span><span><span leaf="">in</span></span><span leaf=""> next_query:</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">break</span></span><span leaf=""><br></span><span leaf=""> current_query = next_query</span><span leaf=""><br></span><span leaf=""> </span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> all_context</span><span leaf=""><br></span>
实现方式2:用Agent做多跳
用LangChain的create_agent,把检索工具交给Agent,让它自己决定检索几次:
<span><span leaf="">from</span></span><span leaf=""> langchain.agents </span><span><span leaf="">import</span></span><span leaf=""> create_agent</span><span leaf=""><br></span><span leaf=""><br></span><span><span><span leaf="">def</span></span><span leaf=""> </span><span><span leaf="">search_knowledge_base</span></span><span><span leaf="">(query: str)</span></span><span leaf=""> -> str:</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""搜索公司知识库"""</span></span><span leaf=""><br></span><span leaf=""> results = retriever.invoke(query)</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> </span><span><span leaf="">"\n"</span></span><span leaf="">.join([r.page_content </span><span><span leaf="">for</span></span><span leaf=""> r </span><span><span leaf="">in</span></span><span leaf=""> results])</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">agent = create_agent(</span><span leaf=""><br></span><span leaf=""> model=</span><span><span leaf="">"gpt-4o"</span></span><span leaf="">,</span><span leaf=""><br></span><span leaf=""> tools=[search_knowledge_base],</span><span leaf=""><br></span><span leaf=""> system_prompt=</span><span><span leaf="">"""你是一个研究助手。对于复杂问题,你可能需要多次检索。</span><span leaf=""><br></span><span leaf="">每次检索后,判断信息是否足够。如果不够,换一个query继续检索。</span><span leaf=""><br></span><span leaf="">最多检索5次。"""</span></span><span leaf="">,</span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span>
GraphRAG:用知识图谱增强检索
GraphRAG是微软在2024年提出、2025年持续火热的方向。核心思想:把文档中的实体和关系抽取出来构建知识图谱,用图的结构化信息增强检索。
GraphRAG vs 向量RAG
| 维度
|
向量RAG
|
GraphRAG
检索方式
|
语义相似度
|
图遍历+语义检索
| |
全局性问题
|
差(只能找到局部片段)
|
强(图结构天然支持全局推理)
| |
实体关系
|
隐含在文本中
|
显式建模
| |
建索引成本
|
低
|
高(要抽取实体和关系)
| |
适用场景
|
具体事实问答
|
全局分析、关系推理
|
什么时候该用GraphRAG?
适合:
-
你的文档有大量实体关系(人物关系、公司股权、供应链网络)
-
用户经常问全局性问题(“我们公司所有产品的市场定位是什么”)
-
需要跨文档的实体关联推理
不适合:
-
FAQ类知识库(问题跟答案是一一对应的)
-
文档量小(少于100篇,向量检索够用了)
-
团队没有图数据库经验(Neo4j等)
用LlamaIndex快速搭建GraphRAG
<span><span leaf="">from</span></span><span leaf=""> llama_index.core </span><span><span leaf="">import</span></span><span leaf=""> KnowledgeGraphIndex, SimpleDirectoryReader</span><span leaf=""><br></span><span><span leaf="">from</span></span><span leaf=""> llama_index.core.graph_stores </span><span><span leaf="">import</span></span><span leaf=""> SimpleGraphStore</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 加载文档</span></span><span leaf=""><br></span><span leaf="">documents = SimpleDirectoryReader(</span><span><span leaf="">"./docs"</span></span><span leaf="">).load_data()</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 构建知识图谱索引</span></span><span leaf=""><br></span><span leaf="">graph_store = SimpleGraphStore()</span><span leaf=""><br></span><span leaf="">index = KnowledgeGraphIndex.from_documents(</span><span leaf=""><br></span><span leaf=""> documents,</span><span leaf=""><br></span><span leaf=""> max_triplets_per_chunk=</span><span><span leaf="">10</span></span><span leaf="">, </span><span><span leaf=""># 每个chunk最多抽取10个三元组</span></span><span leaf=""><br></span><span leaf=""> graph_store=graph_store,</span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 查询</span></span><span leaf=""><br></span><span leaf="">query_engine = index.as_query_engine(</span><span leaf=""><br></span><span leaf=""> include_text=</span><span><span leaf="">True</span></span><span leaf="">, </span><span><span leaf=""># 同时返回原文和图信息</span></span><span leaf=""><br></span><span leaf=""> response_mode=</span><span><span leaf="">"tree_summarize"</span></span><span leaf="">,</span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span leaf="">response = query_engine.query(</span><span><span leaf="">"张三跟李四是什么关系?"</span></span><span leaf="">)</span><span leaf=""><br></span>
Agentic RAG:让RAG自己思考
Agentic RAG是2025-2026年最受关注的RAG方向——不再是固定的"检索→生成"流水线,而是让Agent自主决定检索策略。
Agentic RAG的核心能力
-
查询路由:判断问题该走哪个数据源(知识库、数据库、API、搜索引擎)
-
自适应检索:简单问题直接答,复杂问题多步检索
-
结果验证:检索到的内容对不对?不对就换方式再检
-
自我修正:发现回答有误,自动重新检索和修正
查询路由实现
<span><span leaf="">from</span></span><span leaf=""> enum </span><span><span leaf="">import</span></span><span leaf=""> Enum</span><span leaf=""><br></span><span><span leaf="">from</span></span><span leaf=""> pydantic </span><span><span leaf="">import</span></span><span leaf=""> BaseModel</span><span leaf=""><br></span><span leaf=""><br></span><span><span><span leaf="">class</span></span><span leaf=""> </span><span><span leaf="">QueryRoute</span></span><span><span leaf="">(str, Enum)</span></span><span leaf="">:</span></span><span leaf=""><br></span><span leaf=""> knowledge_base = </span><span><span leaf="">"knowledge_base"</span></span><span leaf=""> </span><span><span leaf=""># 公司知识库</span></span><span leaf=""><br></span><span leaf=""> database = </span><span><span leaf="">"database"</span></span><span leaf=""> </span><span><span leaf=""># 数据库查询</span></span><span leaf=""><br></span><span leaf=""> web_search = </span><span><span leaf="">"web_search"</span></span><span leaf=""> </span><span><span leaf=""># 网络搜索</span></span><span leaf=""><br></span><span leaf=""> direct_answer = </span><span><span leaf="">"direct_answer"</span></span><span leaf=""> </span><span><span leaf=""># 直接回答(不需要检索)</span></span><span leaf=""><br></span><span leaf=""><br></span><span><span><span leaf="">class</span></span><span leaf=""> </span><span><span leaf="">RouteResult</span></span><span><span leaf="">(BaseModel)</span></span><span leaf="">:</span></span><span leaf=""><br></span><span leaf=""> route: QueryRoute</span><span leaf=""><br></span><span leaf=""> reason: str</span><span leaf=""><br></span><span leaf=""> rewritten_query: str</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 路由判断</span></span><span leaf=""><br></span><span leaf="">route_prompt = </span><span><span leaf="">"""分析用户问题,决定应该从哪个数据源检索。</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">- 公司内部信息(产品、流程、政策)→ knowledge_base</span><span leaf=""><br></span><span leaf="">- 数据统计、报表数据 → database </span><span leaf=""><br></span><span leaf="">- 实时信息、新闻、外部知识 → web_search</span><span leaf=""><br></span><span leaf="">- 简单闲聊、通用知识 → direct_answer</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">用户问题:{question}"""</span></span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 用LLM做路由判断</span></span><span leaf=""><br></span><span leaf="">route_result = model.with_structured_output(RouteResult).invoke(</span><span leaf=""><br></span><span leaf=""> route_prompt.format(question=</span><span><span leaf="">"上季度销售额多少"</span></span><span leaf="">)</span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span><span><span leaf=""># → route=database, rewritten_query="SELECT SUM(amount) FROM sales WHERE quarter='Q3'"</span></span><span leaf=""><br></span>
完整的Agentic RAG架构
<span><span leaf="">from</span></span><span leaf=""> langchain.agents </span><span><span leaf="">import</span></span><span leaf=""> create_agent</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 工具1:知识库检索</span></span><span leaf=""><br></span><span><span><span leaf="">def</span></span><span leaf=""> </span><span><span leaf="">search_knowledge_base</span></span><span><span leaf="">(query: str)</span></span><span leaf=""> -> str:</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""搜索公司内部知识库,获取产品、流程、政策等信息"""</span></span><span leaf=""><br></span><span leaf=""> results = hybrid_retriever.invoke(query)</span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> </span><span><span leaf="">"\n"</span></span><span leaf="">.join([r.page_content </span><span><span leaf="">for</span></span><span leaf=""> r </span><span><span leaf="">in</span></span><span leaf=""> results])</span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 工具2:数据库查询</span></span><span leaf=""><br></span><span><span><span leaf="">def</span></span><span leaf=""> </span><span><span leaf="">query_database</span></span><span><span leaf="">(sql: str)</span></span><span leaf=""> -> str:</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""执行SQL查询获取业务数据"""</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf=""># 实际项目对接数据库</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> </span><span><span leaf="">f"查询结果:..."</span></span><span leaf=""><br></span><span leaf=""><br></span><span><span leaf=""># 工具3:网络搜索</span></span><span leaf=""><br></span><span><span><span leaf="">def</span></span><span leaf=""> </span><span><span leaf="">search_web</span></span><span><span leaf="">(query: str)</span></span><span leaf=""> -> str:</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">"""搜索互联网获取实时信息"""</span></span><span leaf=""><br></span><span leaf=""> </span><span><span leaf="">return</span></span><span leaf=""> </span><span><span leaf="">f"搜索结果:..."</span></span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">agent = create_agent(</span><span leaf=""><br></span><span leaf=""> model=</span><span><span leaf="">"gpt-4o"</span></span><span leaf="">,</span><span leaf=""><br></span><span leaf=""> tools=[search_knowledge_base, query_database, search_web],</span><span leaf=""><br></span><span leaf=""> system_prompt=</span><span><span leaf="">"""你是一个智能助手,拥有多种信息获取渠道。</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">决策逻辑:</span><span leaf=""><br></span><span leaf="">1. 先分析用户问题的类型和所需信息来源</span><span leaf=""><br></span><span leaf="">2. 选择最合适的工具获取信息</span><span leaf=""><br></span><span leaf="">3. 如果第一次检索结果不够,换一个query再试</span><span leaf=""><br></span><span leaf="">4. 基于检索到的信息生成回答,标注信息来源</span><span leaf=""><br></span><span leaf="">5. 如果检索不到相关信息,明确告知用户</span><span leaf=""><br></span><span leaf=""><br></span><span leaf="">重要:不要编造答案,所有信息必须基于检索结果。"""</span></span><span leaf="">,</span><span leaf=""><br></span><span leaf="">)</span><span leaf=""><br></span>
Agentic RAG的坑
90%的Agentic RAG项目在生产中失败,主要原因:
-
太复杂:Agent的决策过程不透明,出了问题排查困难
-
成本高:每次查询可能触发3-5次模型调用+2-3次检索
-
延迟大:多步检索+模型决策,单次查询可能要10秒以上
-
不稳定:同样的问法,Agent可能选不同的检索路径,结果不一致
我的建议:先用Advanced RAG把基础打牢,确认混合检索+Rerank已经做到80%以上准确率,再考虑引入Agent能力。而且先从查询路由开始——这是投入产出比最高的一步。
Java类比:Agentic RAG就像你把一个固定的MVC Controller改成了策略模式+责任链——灵活性上去了,但调试难度也上去了。先用固定流水线把业务跑通,再逐步引入动态决策。
高级架构选型决策树
<span leaf="">你的RAG遇到什么问题?</span><span leaf=""><br></span><span leaf="">├── 检索不准 → 先优化基础检索(混合+Rerank),别急着上高级架构</span><span leaf=""><br></span><span leaf="">├── 复杂问题答不对 → 查询改写 + 多跳检索</span><span leaf=""><br></span><span leaf="">├── 全局性问题回答差 → GraphRAG</span><span leaf=""><br></span><span leaf="">├── 需要多数据源 → 查询路由 + Agentic RAG</span><span leaf=""><br></span><span leaf="">└── 都想要 → Modular RAG(模块化组合)</span><span leaf=""><br></span>
记住一个原则:能用简单方案解决的,别用复杂方案。 80%的RAG项目,Advanced RAG就够了。GraphRAG和Agentic RAG是给那20%的复杂场景准备的。
本篇要点
| 要点
|
说明
查询改写
|
LLM改写+多查询+HyDE,让检索词更对路
| |
HyDE
|
先让模型猜答案,用答案检索,效果更好
| |
多跳检索
|
迭代检索串联跨文档信息
| |
GraphRAG
|
实体关系图谱+社区检测,解决跨文档推理
| |
Agentic RAG
|
Agent自主决策检索策略
| |
查询路由
|
按问题类型选数据源,投入产出比最高
| |
选择原则
|
80%项目用Advanced RAG够,别一上来就Agentic
|
下篇预告
下一篇讲RAG评估——怎么知道你的RAG好不好?RAGAS框架的四个核心指标、怎么构建黄金测试集、怎么搭建自动化评估流水线。没有评估,所有优化都是瞎调。
你的项目有遇到基础RAG搞不定的场景吗?具体是什么类型的问题?评论区说说。
觉得有用就点个在看,下一篇讲RAG评估——没有指标,所有优化都是瞎调。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/ai001/post/20260822/%E5%9F%BA%E7%A1%80RAG%E6%90%9E%E4%B8%8D%E5%AE%9A%E7%9A%84%E9%97%AE%E9%A2%98%E9%AB%98%E7%BA%A7RAG%E4%B8%80%E6%8B%9B%E8%A7%A3%E5%86%B3/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com