LangChain 中文课
返回体系图 文章库
第 04 课,共 7 课:知识库与 RAG

第 04 课,共 7 课

给 Agent 接入自己的资料

把文档转成可检索的向量,在回答前先找相关片段,避免模型只依赖训练知识。

进阶 30 分钟 Python
完成本课后

你应该能做到

  • 理解 RAG 的五步数据流
  • 建立一个内存向量库
  • 根据中文问题检索最相关的文档
01

先把 RAG 看成一条流水线

官方 Retrieval 文档把 RAG 拆成加载、切分、向量化、存储和检索。模型只负责最后理解检索结果并组织回答。

本课先完成检索,不急着加入 Agent。确认检索正确后,再把 retriever 包装成工具。

  • 加载文档
  • 按语义切分文本
  • 用 embedding 生成向量
  • 保存到 vector store
  • 按问题检索相关片段
02

建立最小知识库

DeepSeek 聊天模型不提供 embedding 接口。下面按官方知识库示例使用 OpenAI embedding。也可以替换成 LangChain 官方支持的其他 embedding provider。

rag_search.py
from langchain_core.documents import Document
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_openai import OpenAIEmbeddings


documents = [
    Document(page_content="xueai 的 LangChain 中文课共有 7 课。"),
    Document(page_content="LangGraph 负责状态、分支和长时间运行。"),
    Document(page_content="LangSmith 用于追踪、评估、部署和监控。"),
]

vector_store = InMemoryVectorStore(
    embedding=OpenAIEmbeddings(model="text-embedding-3-small")
)
vector_store.add_documents(documents=documents)

results = vector_store.similarity_search("什么工具负责监控 Agent?", k=1)
print(results[0].page_content)
03

检索正确后再接 Agent

检索结果应该是关于 LangSmith 的那一条。如果结果不相关,先检查文档切分、embedding 模型和查询表达,不要先调整大模型提示词。

下一步可以把 similarity_search 包装成工具,让 Agent 只在需要内部知识时调用。

不要凭感觉结束

本课完成标准

  • 成功安装 langchain-openai 并设置 OPENAI_API_KEY
  • 检索结果包含 LangSmith
  • 知道聊天模型和 embedding 模型不是同一个接口
遇到问题先看这里

常见错误

ImportError 找不到 langchain_openai

运行 pip install -U langchain-openai。provider 包需要单独安装。

中文检索结果不稳定

选择支持中文的 embedding 模型,并检查切分后的文本是否保留完整语义。

内容来源

依据官方文档中文整理

代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。

固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d