跳到正文

游民营地

主题: AI 学习

这样使用,DeepSeek竟然变得这么好用……

用 Cherry Studio 给 DeepSeek 接入自己的文档:先弄清上下文与嵌入检索,再分别搭建硅基流动在线方案和 Ollama 本地方案,通过搜索与引用核对回答依据。

作者 一只游民Developer and YouTuber

发布于 更新于 约 1 分钟读完

跟 AI 聊了半天,前面交代的产品背景、写作规范又得重说一遍?别急着继续往聊天框里塞文件。我们换一种办法:把资料建成知识库,提问时先检索相关段落,再让 DeepSeek 带着依据回答。

这篇我用 Cherry Studio 带你走两条路:先接在线 API,再用 Ollama 把生成模型和嵌入模型都放在本机。最后用同一个问题比较接入前后的回答,看它到底有没有用上我们的资料。

1. 为什么要建知识库,而不是一直粘贴资料

大模型每次处理的上下文有长度限制,通常以 token 计算。token 是文本切分单位,不固定等于一个汉字或一个英文单词。对话变长后,应用可能要求新开会话,也可能压缩、截断或选择部分历史;具体策略取决于产品,不能把一种界面行为当成所有模型的规则。

知识库解决的是资料怎样按需进入上下文。例如做一款产品,名称、目标用户、功能和写作规范可以先保存在文档里。问需求问题时检索需求相关段落,问命名问题时检索命名规则,不必每次把全部资料从头贴一遍。

它不是重新训练模型,也不是无限扩大上下文窗口。找到的内容仍需放进当前请求,检索不到或原文写错,模型一样可能答错。

2. 嵌入模型负责找资料,生成模型负责组织回答

这套流程里有两个角色,先分清,后面设置就容易多了。

角色做什么本文示例
嵌入模型将资料片段和问题表示为向量,便于相似性检索bge-m3
生成模型结合问题与检索到的原文生成回答在线 DeepSeek-V3、本地 DeepSeek-R1
文档 → 解析与分段 → 嵌入模型 → 建立索引
问题 → 嵌入与检索 → 取回相关原文 → 生成模型回答

向量距离或相似度得分告诉我们“这段内容与问题有多接近”,不是这段内容有多可信。过期文档也能匹配得很好。因此检索和事实核对不能合并成一个动作:先找到,再读原文。

3. 在线方案:硅基流动接入 Cherry Studio

准备服务和模型

准备项用途
Cherry Studio管理模型、知识库和对话
硅基流动账号及 API Key调用在线生成与嵌入服务;费用以当前模型页为准
一两份允许发送给服务商的测试文档验证解析、检索和回答

打开 Cherry Studio 设置 → 模型服务 → 硅基流动,填写自己的 API Key,启用需要的模型。我用 DeepSeek-V3 演示回答,再选择 bge-m3 做嵌入;使用 DeepSeek-R1 时,知识库配置的思路相同,但响应时间和结果需要重新测试。

API Key 只填在自己的客户端配置中,截图时遮好。在线嵌入服务会处理资料片段,在线生成服务会处理问题和被检索到的上下文;客户文件、合同和未发表资料,先确认授权与数据条款再导入。

建库、导入,再搜索

  1. 打开左侧 知识库,点击添加,起一个容易区分的名字。
  2. 在嵌入模型中选择硅基流动的 bge-m3,确认创建。
  3. 添加测试文件,等待解析完成。不要在文件还在处理时就急着判断模型没读懂。
  4. 点击 搜索知识库,输入文件中特有的词或问题,检查结果能否命中正确段落和来源。

我用一份视频标题命名的 Markdown 和一份 PDF 做测试。你可以换成自己的产品说明或使用手册;关键是先选自己熟悉、能判断对错的材料。

导入入口适合什么资料需要注意
文件PDF、Word、Markdown 等扫描件未必能直接提取文字,先检查解析结果
目录同一目录内多份文件先整理范围,别混入无关或私有文件
网址单个公开网页核对抓取到的正文,而不是只看页面标题
站点地图一组网页可能抓取很多页面,留意耗时、权限和费用
笔记一小段文字说明适合短资料,不必为它另建文件

同一问题,做一次有无知识库的对照

先在新对话中选择 DeepSeek-V3,不选知识库,问一个资料相关的问题,保留回答。然后选择刚建好的知识库,再问同一个问题。

检查的重点不是第二次有没有写得更长,而是有没有用对你提供的内容。我测试标题命名时,接入后回答附上了引用,底部能找到对应来源;接着再让它按资料中的方法给一个具体选题起标题,检查建议与方法是否对应。

点开引用,核对原文的条件、数字和例外。如果引用了另一份同名文件,或者把“不能”读成“可以”,排版再漂亮也不算通过。

4. 本地方案:Ollama 还要装一个嵌入模型

本地 DeepSeek 已装好,却仍选择在线嵌入服务,资料处理就不是全链路本地。要走本地方案,先按Ollama 与 DeepSeek-R1 安装教程跑通生成模型,再下载嵌入模型:

ollama pull bge-m3
ollama list

确认列表里同时有生成模型与 bge-m3,然后:

  1. 在 Cherry Studio 的 Ollama 提供方核对本地服务地址和模型列表。
  2. 新建一个知识库,嵌入模型选择 Ollama 的 bge-m3。
  3. 导入与在线测试相同的文件,等待处理完成,再搜索确认。
  4. 新开对话,选择本地 DeepSeek-R1;先不选知识库提问,再选择本地库问同一问题。

我测试的客户端与模型组合没有像在线方案那样完整展示来源列表。这是该组合的观察,不是“本地模型都不能引用”的定论。遇到类似情况,回到知识库搜索结果核对原文,不把思考过程里提到了文件名当成逐条论证。

检索后响应可能变慢,因为增加了检索和上下文处理。本地服务、嵌入提供方、网页抓取及同步功能分别核对,不能只凭选了“Ollama”就认定所有数据都留在本机。

5. 换模型时,保留这套检查方法

换成其他模型,核心顺序仍是:准备资料 → 解析与索引 → 搜索验证 → 接入对话 → 核对引用。检索不到,先查文件解析和嵌入配置;检索得到却回答不对,再查原文质量、上下文与生成模型。

想用 ChatGPT,可以继续看ChatGPT Projects 与客户端 API 知识库。产品入口会变,但“文件放在哪里、谁来检索、回答依据是什么”这三个问题始终值得问。

知识库最实用的地方,是让我们少重复介绍背景,多一点可回查的依据。你准备拿它整理产品资料、工作规范,还是自己的笔记?欢迎分享用法和遇到的检索问题,讨论时用脱敏片段即可,不要贴私有文档或 API Key。感谢阅读,我们继续把 AI 用在具体事情上。

评论

评论由 GitHub Discussions 提供。发表评论、回复或添加反应需要使用 GitHub 登录。

正在加载评论服务…

沿着笔记间的引用继续阅读:看看谁提到了本篇,又能从本篇读到哪里。

沿着其他笔记来到这里,看看它们从何说起。

循着文中的引用,把相关的思路再展开一点。