LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Ollama 里做一个私人知识库

admin
2026年11月5日 23:44 本文热度 356

在一台老旧的笔记本上安装Ubuntu系统,并部署了qwen2.5-coder:3b本地大模型。

按照原定计划,开始部署私人知识库。

要在 Ollama 里做一个私人知识库,最省事的方案是搭配一个叫 AnythingLLM 的网页界面工具,它可以把你的文档自动转换成模型能理解的“知识块”,然后把提问和检索到的知识一起发给 Ollama,让模型基于你的资料来回答。


先讲故事:

还记得上一集那句话吗?一切都可以问AI!

这次也不例外:让AI给我出保姆级教程,过程中出现的任何问题,都找AI解决。做就行了!

几天下来,有一搭没一搭的,总算做出来了。但跟我的预期还是有很大差距的,能出结果,说明整条链路全部跑通。主要是运行速度太慢了。一个简单的问题,足足跑了8分57秒。


AI还一个劲儿地安慰我:

这确实慢,但慢得合理,也慢得值得。

让我降低期待。你这台 2014 年的笔记本,能跑起本地大模型已经是很了不起的事了。把它当成一个“慢速实验平台”,而不是“日常生产力工具”,心态会好很多。

让我问完问题就去泡杯茶、干点别的,回来看结果。

这到这,把我逗笑了……


所以,才有了下面这段对话:

我问AI:

换个思路吧,我现在有些疑问和想法。

第一,我现在搭建了一个可以独立运行的大模型服务器了,除了我尝试的RAG以外,还能做什么呢?

第二,如果我花大价钱买一台性能够用的电脑,能跑具备生产能力的大模型,那么这样的机器全天跑下来,电费是不是也是个不小的花销呢?

第三,如果我把买电脑+每天电费的钱,用来买token,调用大模型平台的API,是不是也够用并且更省心了呢?


AI答:

你这三个问题,其实是在问一个很核心的决策:“既然我已经折腾出本地AI了,这钱到底该继续投硬件,还是该转头买API?”(捕捉得很精准)


本地服务器除了RAG,还能做什么?

你现在的RAG只是本地部署的“入门玩法”。如果你有了性能足够的本地服务器,可以做的事情会多很多,而且都围绕着一个核心优势:数据不出本地,完全私有。


  • 私有化的智能文档处理
    :自动总结内部报告、合同,或者从扫描件里提取结构化数据。这些文件可能涉及隐私,放本地处理最安全。
  • 个人或团队的代码助手
    :结合你的代码库,做一个懂你项目上下文的AI编程助手。它不会把你的代码上传到第三方云端。
  • 自动化的工作流
    :让它帮你定时处理邮件、整理会议纪要、或者基于你的个人知识库做研究性检索。
  • 离线环境下的AI能力
    :即使在断网或网络不稳定的环境下,你的AI依然能正常工作,适合做实验或应急使用。


全天跑的电费,是不是一笔大开销?

电费是可以算清楚的。

比如:一张RTX 3090的满载功耗大约是 350W。假设它每天有一半时间在满载跑推理(这已经是很高的利用率了),另外一半时间待机或低负载,再加上整机其他部件的功耗。

每天耗电:假设平均功耗按200W算(其实整机加上CPU、主板等,平均可能在250W-300W左右),每天耗电约 4.8 - 7.2 度。

每月电费:按家用电价约 0.55元/度 计算,每月电费大概在 80元 到 120元 之间。

如果只是偶尔跑一下,电费会更低。所以电费本身,对于个人使用来说,并不是一个特别沉重的负担。


买电脑的钱 vs. 买API的Token,哪个更划算?

这才是核心问题。本地部署和API调用,是两种完全不同的“省钱”逻辑。


本地部署(你的Y50-70或未来新机)

前期投入高:买硬件(显卡+整机)是一次性的大支出。一套能流畅跑30B级别模型的配置,可能就要 8000-15000元。

后期成本低:一旦买好,后续只有电费和很少的维护成本。你用得越多,平摊到每次调用的成本就越低。

适合谁:高频、长期使用,或者对数据隐私有要求的场景。如果你的使用量非常大,本地部署的长期成本会远低于API。


API调用(通用大模型平台)

前期零投入:注册就能用,不用买硬件。

后期按量付费:用多少花多少。现在国产大模型价格竞争很激烈,经济型模型的成本极低。比如有的模型输入价格降到了 0.02元/百万tokens,输出也只要 2元/百万tokens。

适合谁:低频、小规模使用,或者想做快速实验、原型验证的场景。


一个更聪明的思路:混合路线

其实你没必要二选一。很多团队最终的选择是混合部署。

高频、隐私敏感的活:留在本地跑。比如你日常的代码辅助、私密文档的RAG。

低频、需要强模型能力的活:用API。比如你想试试最新的旗舰模型,或者处理一次性的复杂任务,按量付费更灵活。


所以,你的Y50-70该怎么办?

你的Y50-70服务器,已经帮你跑通了所有流程,证明了“这条路能走通”。它现在的任务,是让你低成本地体验和实验。

如果你只是偶尔玩玩,或者想用用当前最强的模型,那么现在充几十块钱的API,够你用很久了,完全没必要急着花大几千买显卡。

但如果你发现,你确实有高频、长期的需求,并且很在意数据隐私,那么未来配一台带 24GB显存显卡的机器,就是一笔值得的投资。它带来的“秒级响应”和“完全掌控”,是API给不了的。


建议很中肯,我表示接受。


后面继续第三项:

用DevEco Studio提供的自动生成代码功能,开发 HarmonyOS 应用。

敬请期待……

(反正我挺期待的)


========

搭建之前,先理清几个概念

========

RAG

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将信息检索与大语言模型生成结合的技术架构。它的核心思路是:在让大模型回答问题之前,先从外部知识库中检索出相关内容,再把这些内容作为上下文喂给模型,让模型基于这些真实资料来生成回答。

大语言模型有几个固有局限:

  • 知识截止:训练数据有时间截止点,无法知道最新信息。
  • 幻觉问题:模型可能编造看似合理但实际错误的内容。
  • 私有知识缺失:企业内部文档、个人资料等不在训练数据中。
  • 无法溯源:纯生成的结果很难给出可靠出处。
  • 微调成本高:用微调注入新知识,成本高、更新慢。

RAG 通过“外挂知识库”的方式,绕开了这些问题——知识可以随时更新,回答有据可查,且不需要重新训练模型。


典型应用场景

  • 企业知识库问答
  • 客服机器人
  • 法律/医疗/金融文档助手
  • 个人笔记检索与问答
  • 代码库问答


AnythingLLM 

是实现这个概念的现成工具。它自带对话界面。负责管理文档、切块、建索引、检索,然后把检索结果和你的问题拼在一起,发给 Ollama 去生成答案。


根据官方技术文档和实际使用情况,它主要支持以下几类:

文档类:PDF、Word(.docx/.doc)、Markdown(.md)、纯文本(.txt)

表格/数据类:Excel(.xlsx/.xls)、CSV、JSON

演示文稿:PPT(.pptx)

电子书:EPUB

音频:MP3、WAV(会通过语音识别转录成文字)

图片:PNG、JPG(会通过 OCR 识别图片里的文字)

邮件归档:MBOX

关于 HTML,你不需要单独下载成一个文件。AnythingLLM 支持直接在输入框里粘贴网页链接,它会自动抓取该页面的正文内容并转换成文本,然后加入知识库。比如你想把某个技术文档网页加进去,直接贴 URL 就行,比下载 HTML 文件再上传更省事。


坑1:根据我后面的尝试,不支持老版的.doc文件。我的很多资料都是早些年(年轻的我……)收集和整理的,word版本比较老。需要一个个转成.docx文件才能用。

据说网上有批量转换的工具,我还没找到。


========

搭建之前,准备几个新模型

========

为什么要换大模型?

做 RAG 的话,Qwen2.5-Coder不太适合直接拿来用。它们本身不是为 RAG 场景设计的,用在你的机器上效果可能不理想。

RAG 的工作流程其实分两步:先检索(从你的文档里找到相关内容),再生成(把找到的内容和问题一起交给模型来回答)。

Qwen2.5-Coder:3b 侧重于代码生成与补全,它的训练数据偏向编程


结合你的硬件限制,建议把“检索”和“生成”分开来选模型:

1. 用于检索的嵌入模型(必须装)

这是 RAG 的基础,负责把文档变成可检索的向量。

推荐:nomic-embed-text。

这是 Ollama 生态里最常用的轻量嵌入模型,速度快,占用资源少,很多 RAG 工具(如 AnythingLLM)默认就支持它。

中文优化备选:shaw/dmeta-embedding-zh。

如果你主要处理中文文档,这个 400M 大小的中文嵌入模型在语义检索上表现不错,非常轻量。


2. 用于回答的聊天模型(选一个)

检索到资料后,交给一个擅长“阅读理解并总结”的模型来生成答案。

优先推荐:qwen2.5:3b 。

Qwen2.5:3b 属于通用大模型,侧重于逻辑推理。这些通用对话模型比代码专用模型更适合总结文档内容。


3. 工具方面还是用 AnythingLLM

它可以把“嵌入模型”和“聊天模型”分开配置。你只需要在设置里:

把 Embedding 模型 设为 nomic-embed-text。

把 Chat 模型 设为你选定的对话模型(比如 qwen2.5:3b)。

这样,AnythingLLM 会自动用嵌入模型来检索你的文档,再把检索结果交给聊天模型来生成答案,各司其职,效率最高。


坑2:还是之前的问题,我目前使用的网络环境是一个4G的移动WIFI(考虑经常移动办公)。日常办公、看个电影或短视频完全够用。但是在下载这种大文件的大模型安装包就会经常崩溃。就这困扰了我好几天,最后借用一个宽带WIFI环境,才算顺利安装完成。所以,有个稳定且带宽够大的网络环境是必须的,建议用网线,会更稳定一些。


附:Ubuntu切换WIFI连接

1. 找到你的无线网卡名称

执行:ls /sys/class/net,找到以 w 开头的名字,比如 wlan0、wlp8s0 或 wlo1。

2. 编辑 Netplan 配置文件

文件通常在 /etc/netplan/ 目录下,文件名可能是 50-cloud-init.yaml 或 00-installer-config.yaml:

sudo nano /etc/netplan/50-cloud-init.yaml

3. 修改 Wi-Fi 配置

network:

  version: 2

  renderer: networkd

  wifis:

    wlp8s0:  # 这里换成你的无线网卡名称

      dhcp4: true

      optional: true

      access-points:

        "你的新Wi-Fi名字":

          password: "你的新Wi-Fi密码"

注意:Wi-Fi 名字和密码如果包含特殊字符(比如 @、#、- 等),建议用英文双引号括起来,比如 "My-WiFi"。你现在的名字和密码没有特殊字符,可以不加引号。

4. 应用配置

保存退出(Ctrl+O 回车,Ctrl+X),然后执行:

sudo netplan try

它会先测试配置,30 秒内没断线就会自动生效;如果配置有错也会自动回滚,比较安全。确认没问题后按回车,或者直接,再执行:

sudo netplan apply

如果 netplan apply 后 ip addr 里 wlp8s0 没有拿到新 IP,可以尝试重启服务器:

sudo reboot


========

正式开始

========

第一步:确保 Ollama 正在运行

AnythingLLM 需要连接本地的 Ollama 服务,先确认它在后台运行:

systemctl status ollama

看到 active (running) 就说明正常。如果没在跑,执行 sudo systemctl start ollama 启动。


第二步:下载三个模型

在终端里依次执行,让 Ollama 拉取所需的模型:

ollama pull qwen2.5:3b

ollama pull nomic-embed-text

ollama pull shaw/dmeta-embedding-zh


第三步:安装 Docker 并运行 AnythingLLM

你的服务器上可能还没装 Docker,先装:

sudo apt update

sudo apt install docker.io -y

sudo systemctl start docker

sudo systemctl enable docker

确认 Docker 可用:

sudo docker --version

然后运行 AnythingLLM 容器。这一步会自动下载镜像并启动服务:

用wj用户执行:

export STORAGE_LOCATION=/home/wj/anythingllm

mkdir -p $STORAGE_LOCATION

touch "$STORAGE_LOCATION/.env"

sudo docker run -d -p 3001:3001 \

  --cap-add SYS_ADMIN \

  -v /home/wj/anythingllm:/app/server/storage \

  -v /home/wj/anythingllm/.env:/app/server/.env \

  -e STORAGE_DIR="/app/server/storage" \

  mintplexlabs/anythingllm:latest

--cap-add SYS_ADMIN 是必须的,它让 AnythingLLM 能够抓取网页内容。数据会保存在 ~/anythingllm 目录下,重启容器也不会丢失。


坑3:因为我嫌每次执行命令加sudo,都需要输入一遍密码太麻烦,我会先切换到root用户下。但是这里有个问题:需要先在/home/wj(我的登录用户路径)下面,用wj用户创建anythingllm目录,供anythingllm使用。


第四步:配置 AnythingLLM

在主力电脑的浏览器里访问:

http://<服务器IP>:3001

比如我的服务器 IP 是 192.168.1.5,就访问 http://192.168.1.5:3001


进入后按下面配置:

LLM Provider(对话模型):选择 Ollama,Model 选 qwen2.5:3b

Vector Database:保持默认的 LanceDB 即可

配置时注意 AnythingLLM 和 Ollama 在同一台机器上,Ollama 地址填 http://localhost:11434 就行。

Embedding Engine(嵌入模型):选择 Ollama,Model 选 shaw/dmeta-embedding-zh(如果你主要处理中文文档)或 nomic-embed-text

注:之前下载的两个模型shaw/dmeta-embedding-zh和nomic-embed-text的作用完全一样,都是“嵌入模型(Embedding Model)”。在这个界面里,它们俩是二选一的关系,你只需要选一个就行。

shaw/dmeta-embedding-zh:中文翻译官。它专门为中文优化,能把中文文档翻译得更准,找资料找得更精准。你选它是对的。

nomic-embed-text:英文翻译官。它在英文文档上表现很好,对中文的支持不如上面那个。


第五步:创建知识库并上传文档

在 AnythingLLM 界面里:

点击左侧创建一个 Workspace

点击上传按钮,把你想“喂”给 AI 的文档拖进去

上传后点击 Move to Workspace 再点 Save and Embed

等进度条走完,系统就完成了文档的向量化处理

之后在对话时,AnythingLLM 会自动从你上传的文档里检索相关内容,再交给 qwen2.5:3b 来生成答案。


坑4:直接在对话框里上传文件只是挂在对话框上作为临时上下文(Added as context!),并没有真正进入知识库。出了当前的对话区,就失效了。

要想长期有效,需要点击左侧工作区名称旁边的 “上传图标”。在弹出的窗口里,把文件放到“我的工作区”里,并且选中,并且点击每个文件右边的“图钉”按钮(一般会出现上传文件的进度条)。才算完成。

终于了终于,可以开始跟他对话了,你问的问题,他也会在你的“知识库”里找答案了:

至此,已经把这个平台搭起来了,后面可以慢慢玩。


阅读原文:原文链接​


该文章在 2026/11/6 10:27:13 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号