在大模型应用中,如何保证答案的准确性和实时性 一直是一个难题。尽管 LLM(Large Language Models)具有强大的生成能力,但它们的知识存在 时间局限性,并且容易产生“幻觉”(hallucination)。为了解决这些问题,RAG(检索增强生成) 方案应运而生,在 RAG(检索增强生成)中,检索机制负责获取相关信息,而 LLM 负责生成最终答案。DeepSeek 作为国内领先的大模型之一,可以在 RAG 体系中作为生成部分,为检索增强的上下文提供自然、准确的回答。本文将带你了解 DeepSeek 与 RAG 的结合,并提供代码示例。
** 什么是 RAG(检索增强生成)?**
RAG(Retrieval-Augmented Generation) 是一种将 信息检索(Retrieval) 与 大模型生成(Generation) 结合的技术,主要分为 两步:
- 检索(Retrieve): 在外部知识库(如文档数据库、向量数据库)中找到与用户问题相关的信息。
- 生成(Generate): 将检索到的内容作为上下文输入给大模型,提高回答的准确性。
优点:
- 让 LLM 能够利用最新的外部知识,不再局限于训练数据。
- 降低 LLM 胡编乱造(幻觉) 的概率。
- 提供可验证的答案来源,提高可靠性。

** 为什么选择 DeepSeek 作为 RAG 模型?**
DeepSeek 是一个强大的国产 LLM,具备以下特点:
- 支持中文优化,相比 GPT-4/Claude,在中文场景下表现更佳。
- 更开放的 API,可以免费试用,并且提供了本地部署版本。
- 模型能力强,支持 代码、数学推理、知识问答等任务,适合 RAG 场景。
此外,DeepSeek 提供 DeepSeek-VL(视觉+文本) 以及 DeepSeek-Coder(代码生成) 版本,使其在 技术文档问答、代码辅助、金融分析等领域 表现优异。当然最重要的一点是,DeepSeek 是 开源 的,这意味着你可以在本地部署它,并且可以根据自己的需求进行定制。谁能拒绝白嫖呢?
** 如何实现 DeepSeek + RAG?**
我们可以结合 DeepSeek + Qdrant 向量数据库 来实现一个简单的 RAG 系统:
前置条件:
- 本地部署ollama。
- ollama运行DeepSeek。
- 一个 Qdrant 实例。
对于部署以上环境部署有疑问的老铁可以参考老夫之前的介绍
架构
- 数据预处理:
- 将文档(如 PDF、网页)分割成小段,并向量化存储。
- 用户输入查询:
- 计算输入问题的向量,并检索相似的文档片段。
- DeepSeek 生成回答:
- 将检索到的文档片段和用户问题一起输入 DeepSeek,生成最终答案。

代码实现
这里我们使用 Qdrant 作为向量数据库,并结合 DeepSeek 进行 RAG 任务。
安装依赖
1 | pip install qdrant-client openai tiktoken |
1️⃣ 数据预处理(文本向量化 + 存入 Qdrant)
1 | import Qdrant |
2️⃣ 用户查询 + 向量检索
1 | def retrieve_similar_docs(query, top_k=2): |
3️⃣ DeepSeek 生成答案
1 | def generate_answer(query, retrieved_docs): |
** 4️⃣ 看看效果**
- 原始搜索结果
提出问题:”你知道ITProHub?” 显然在原始模型的数据里面是没有关于本公众号的任何信息的,所以你可以看到deepseek针对这个问题开始胡言乱语了
可以看到针对ITProHub这个问题,原始的模型并不知道是啥。 - 接入RAG之后的效果
接入RAG之后,模型可以根据检索到的内容,生成更准确的答案。
4. 典型应用场景
- 企业知识库问答(客户支持、内部文档搜索)
- AIOps(通过 RAG,结合实时运维数据,快速定位和分析故障原因)
- 代码辅助(自动补全、代码文档解析)
- 学术研究(查询特定文献,生成摘要)
5. 总结
RAG 作为一种 结合外部知识和大模型的增强技术,极大提高了回答的准确性和可解释性。DeepSeek 作为国产 LLM,在 中文优化、API 兼容性、代码生成能力 方面有独特优势,适合作为 RAG 系统的核心组件。
未来,我们可以探索更多优化方案,比如:
- 结合 LlamaIndex / LangChain 进行更复杂的检索。
- 使用 Milvus / Weaviate 等更强大的向量数据库。
- 本地化部署 DeepSeek,提升数据安全性。
如果你对 RAG 和 DeepSeek 感兴趣,可以尝试在自己的项目中落地应用,让 AI 变得更智能、更可靠!🚀
完整示例代码可访问老夫的GitHub