Skip to content

RAG 应用设计

RAG 是企业最常落地的大模型应用之一,典型场景包括内部知识库、客服问答、制度查询、技术文档助手、合同问答等。

标准架构

text
文档源
  ↓ 同步/解析
文本清洗

文本切分

Embedding

向量库

用户问题 → 检索 → 重排 → Prompt 拼接 → 模型回答

简化代码

python
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template("""
请基于上下文回答问题。
如果上下文没有答案,请说不知道。

上下文:
{context}

问题:{question}
""")

llm = ChatOpenAI(model="gpt-4.1-mini", temperature=0)

# docs = retriever.invoke(question)
# context = "

".join([d.page_content for d in docs])
# answer = llm.invoke(prompt.invoke({"context": context, "question": question}))

质量优化清单

  • 文档是否清洗干净。
  • chunk 是否保留标题和来源。
  • Embedding 是否适合中文。
  • 是否做权限过滤。
  • 是否做 rerank。
  • Prompt 是否要求基于上下文回答。
  • 是否返回引用来源。
  • 是否评估命中率和答案准确率。

和传统搜索的区别

传统搜索更偏关键词匹配,RAG 更偏语义检索 + 生成式回答。生产中最好使用混合检索,而不是只依赖向量相似度。

非官方声明

本站为个人维护的非官方中文学习文档,不代表 LangChain 官方。页面内容是基于公开文档、源码实践和中文开发者视角重新整理的学习资料。涉及 API 细节时,请以官方文档和实际安装版本为准。

参考来源

  • LangChain / LangGraph 官方文档:https://docs.langchain.com/
  • LangChain API Reference:https://reference.langchain.com/
  • 本站内容为中文学习整理,不做官方身份声明。

本站为非官方中文学习站点,不代表 LangChain 官方。部分内容参考官方文档并重新整理为中文学习笔记。