<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Backend - Category - 编程心语</title><link>https://www.ithome.me/categories/backend/</link><description>Backend - Category - 编程心语</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Wed, 10 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.ithome.me/categories/backend/" rel="self" type="application/rss+xml"/><item><title>使用LangChain与ChromaDB构建本地知识库RAG问答系统</title><link>https://www.ithome.me/post/2026/06/10/%E4%BD%BF%E7%94%A8langchain%E4%B8%8Echromadb%E6%9E%84%E5%BB%BA%E6%9C%AC%E5%9C%B0%E7%9F%A5%E8%AF%86%E5%BA%93rag%E9%97%AE%E7%AD%94%E7%B3%BB%E7%BB%9F/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><author>Simon</author><guid>https://www.ithome.me/post/2026/06/10/%E4%BD%BF%E7%94%A8langchain%E4%B8%8Echromadb%E6%9E%84%E5%BB%BA%E6%9C%AC%E5%9C%B0%E7%9F%A5%E8%AF%86%E5%BA%93rag%E9%97%AE%E7%AD%94%E7%B3%BB%E7%BB%9F/</guid><description><![CDATA[前言 在大模型应用开发中，RAG（Retrieval-Augmented Generation，检索增强生成）是最核心的技术范式之一。它通过将外部知识库与大语言模型结合，解决了LLM的&quot;幻觉&quot;问题和知识时效性问题。
本文将从零开始，使用 LangChain 框架和 ChromaDB 向量数据库，构建一个完整的本地知识库问答系统。所有代码均可本地运行，无需依赖云端API。
为什么需要RAG？ 直接使用大模型存在以下痛点：
知识截断：模型训练数据有截止日期，无法回答最新问题 幻觉问题：模型会&quot;编造&quot;不存在的信息 领域缺失：通用模型缺乏特定领域的专业知识 数据安全：企业内部数据不适合上传到第三方API RAG的核心思路是：先检索，再生成。从知识库中检索相关文档片段，将其作为上下文注入Prompt，让大模型基于真实数据进行回答。
技术架构 用户提问 ↓ [文档加载] → [文本分割] → [向量化] → [ChromaDB存储] ↓ 用户提问 → [Embedding] → [向量检索] → [Top-K相关片段] ↓ [Prompt组装] → [LLM生成回答] 环境准备 安装依赖 # 创建虚拟环境 python -m venv rag_env source rag_env/bin/activate # Linux/Mac # rag_env\Scripts\activate # Windows # 安装核心依赖 pip install langchain langchain-community langchain-chroma chromadb pip install sentence-transformers # 本地Embedding模型 pip install unstructured # 文档加载器 pip install tiktoken # Token计算 项目结构 rag_project/ ├── knowledge_base/ # 知识库文档目录 │ ├── doc1.]]></description></item></channel></rss>