HiDeepSeekDev
空闲特惠
教程指南DeepSeekRAG知识库引用

DeepSeek 知识库问答怎么带来源:RAG 检索、引用校验与拒答设计

给出应用层 RAG 流程:保留片段来源、把检索结果交给模型、验证引用和权限,并用缺失答案与版本冲突样本评估。不是某个框架的一键部署承诺。

快速结论

先让检索层返回有权限、可定位的资料,再要求模型按片段编号回答。程序应检查引用编号与资料内容;格式正确不代表事实或来源正确。

  • DeepSeek 工具调用需要应用执行检索函数并回传结果。
  • 本文 source_id、chunk_id 等字段是应用层示例。
  • JSON Output 约束输出格式,来源和事实仍需独立检查。

本次更新:补充从搜索决策到引用支持度的评估框架及论文适用边界。

企业知识库问答要能回答“依据是什么”。本篇以 DeepSeek API 为生成层,给出应用设计步骤;没有部署向量数据库或执行模型测试。

1. 检索结果保留定位信息

为每个片段保存文档 ID、片段 ID、标题、版本或更新时间、页码或章节,以及访问权限。片段进入模型之前先按当前用户权限过滤。下面是应用层示例,不是 DeepSeek 的原生检索协议:

{"chunk_id":"C17","source_id":"D8","title":"部署说明","version":"2026-10-14","section":"连接配置","text":"示例资料片段"}

如果资料已更新,应保留所用版本,避免答案链接指向另一版内容。短片段缺少上下文时,可补齐所属章节,而不是让模型猜测省略的条件。

2. 把检索接进工具闭环

官方 Tool Calls 文档说明:模型生成调用参数,应用负责执行函数并返回结果。应用可自定义只读检索工具,让它返回片段;工具 ID 和结果消息按所选协议关联。

提示词示例:“只根据给定片段回答;每个事实附片段编号;资料冲突时列出冲突版本;没有依据时返回信息不足。”文档中的指令文字应作为待分析资料处理,不能改变用户权限或工具授权。

3. 程序验证引用

建议输出 answer、citations 和 insufficient_evidence。这些是应用自定义字段。使用 JSON Output时,按官方要求设置格式并提供 JSON 示例,随后仍需检查空输出、截断及字段内容。

验证每个引用编号确实来自本轮检索结果,链接属于原资料,当前用户有权查看。对重要结论抽查原文是否真正支持;编号存在不等于引用关系正确。

4. 用几类样本评估

准备答案明确、资料缺失、版本冲突、权限不足和片段含无关指令等样本。分别记录检索覆盖、回答正确、引用对应和适当拒答情况。先定位检索失败还是生成失败,再调整召回范围或提示词。

5. 控制上下文与费用

只传任务所需资料,固定公共指令并记录每轮输入。DeepSeek 上下文缓存文档说明缓存按前缀单位匹配,命中以 best-effort 方式提供;可观察 prompt_cache_hit_tokens 与 prompt_cache_miss_tokens。不要因文档重复出现就预设全部命中。

先从少量、来源清楚的资料做可复核问答,再扩大知识库。检索、索引更新与权限检查由应用负责,本文不假设 DeepSeek 自动替你完成这些步骤。

10 月 18 日:补充实时网页资料入口

DeepSeek 已提供 Search / Fetch,可作为应用的公开网页来源路径。它不能替代私有知识库的权限、索引更新和引用检查;查询、获取时间与原文版本仍应记录。接入示例见独立 API 教程。

10 月 20 日:评估检索到引用的完整过程

9 月 16 日提交的搜索 Agent 研究提示,搜索次数更多不必然带来更高回答质量,一些回答会使用未正式引用的检索结果。它是特定平台和实验条件下的预印本,不能当作新 Search API 的实时排名。

在本教程的引用校验之外,可进一步分别记录搜索决策、候选覆盖、正文可用性和最终结论支持度。将“没有找到”“找到但没读到”“读到但引用不支持”区分开,更容易定位改进环节。完整框架见搜索质量评估。

参考资料

本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。

  1. 01DeepSeek 工具调用官方文档api-docs.deepseek.com
  2. 02DeepSeek JSON Output 官方文档api-docs.deepseek.com
  3. 03DeepSeek 上下文缓存官方文档api-docs.deepseek.com
  4. 04DeepSeek 实时网页资料接口api-docs.deepseek.com
  5. 05搜索 Agent 全流程研究预印本arxiv.org
阅读至此返回学习中心