场景组合包 · 2 个工具 · 收录于 2026-09-01

本地知识库问答(ollama + MaxKB) 已实测

用户想把笔记/文档变成「能问答的私人知识库」,不知道用什么工具——一包装齐:模型底座 + 知识库问答界面,国内网络适配。

场景

你攒了一堆笔记、PDF、公司文档,想「问自己的资料」而不是全网搜:把文档喂进去,用自然语言提问,答案基于你自己的内容。刷到的教程各说各话:有让用云平台的(数据出去了)、有让装一堆组件的(向量库+分块+embedding 全自己搭)、有讲了一半烂尾的。

本组合包给一条30 分钟内能跑通的路:ollama 负责本地模型(数据不出机器),MaxKB 负责「上传文档 → 自动分块向量化 → 基于文档回答」,自带网页界面。装完之后你得到:一个 http://localhost:8080 的知识库问答台,拖进文档就能问。

组合成员 (2)

ollama(模型下载与运行底座)

下载:官方 https://ollama.com/download(install.sh / Windows 安装器 / macOS dmg);Linux 二进制 = GitHub Release 资产 `ollama-linux-amd64.tar.zst`(国内走 gh-proxy 前缀,2026-08-29 实测)
版本要求:>= 0.33.2(2026-08-29 实测版本;MaxKB 对接走 OpenAI 兼容 API,对版本不敏感)

curl -fsSL https://gh-proxy.com/https://github.com/ollama/ollama/releases/latest/download/install.sh | sh
# 或手动:下载 tar.zst 解压(需 tar --zstd 或 zstd 工具)
curl -sL -o /tmp/ollama.tar.zst https://gh-proxy.com/https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tar.zst
mkdir -p /tmp/ollama-bin && tar --zstd -xf /tmp/ollama.tar.zst -C /tmp/ollama-bin
/tmp/ollama-bin/bin/ollama --version

工具手册 →

MaxKB(知识库问答台)

下载:官方 Docker 镜像 `1panel/maxkb`(Docker Hub);国内加速前缀 `docker.m.daocloud.io/1panel/maxkb`(2026-09-01 实测拉取)
版本要求:v2.10.5-lts(2026-08-06 发布,latest 标签);需要 Docker(Compose 可选);镜像 4.62GB(2026-09-01 daocloud 实测)

# 国内网络:走 daocloud 加速前缀(2026-09-01 实测可拉)
docker run -d --name=maxkb --restart=always -p 8080:8080 \
  -v ~/.maxkb:/opt/maxkb \
  docker.m.daocloud.io/1panel/maxkb:latest
# 官方原版(网络允许直连 Docker Hub 时)
# docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/opt/maxkb 1panel/maxkb

方案总览

两个工具各管一段:

工具管什么为什么是它
ollama模型下载、运行、API(底座)一行命令跑本地模型,自带 OpenAI 兼容 API;本仓库已收录且实测过国内路径(gh-proxy 拉二进制 + ModelScope 导入模型)
MaxKB知识库问答台:文档解析/分块/向量化/检索/回答(核心)国人项目(1Panel 团队,GitHub 22k+ stars),Docker 一条命令起,自带 Postgres + 向量能力,默认支持接 ollama;中文界面与文档

备选方案:AnythingLLM(桌面端 App,适合不熟 Docker 的用户;但安装包 400-860MB)/Dify(功能重,面向应用搭建)/coze(云端,数据出境)。纯命令行用户可只用 ollama(ollama run 问答,但没有知识库)。

安装顺序按依赖排:先 ollama(模型底座,MaxKB 配置模型源时要用它的 API)→ 再 MaxKB(Docker 起容器,管理后台里把模型源指到 ollama)。

快速开始

一键脚本由本文档自动生成(渲染后位于 pages/combos/combo-local-rag.sh),按官方下载源 + 国内镜像适配,逐条执行:
bash pages/combos/combo-local-rag.sh
````

- 装完你会得到:ollama 服务(端口 11434)+ 知识库问答台(http://localhost:8080)。
- 预计耗时:10-20 分钟。**最大卡点 = MaxKB 首次拉 Docker 镜像(4.62GB,daocloud 加速,2026-09-01 实测)**;模型下载另计(4-70GB 视模型大小,先拉小模型验证链路)。
- 前置条件:内存 ≥ 8GB(建议 16GB);磁盘 ≥ 10GB 空闲;Docker(本仓库已实测 WSL dockerd 路径)。

> 想弄明白每一步在干什么、装错了怎么恢复 → 看「逐步教学」。一键脚本出问题 → 按逐步教学手动执行定位。

逐步教学

第 1 步:装 ollama(模型底座,一切依赖它)

ollama 是整套环境的地基:模型文件由它管理(默认 ~/.ollama/models),MaxKB 通过它的 API(11434 端口)做生成与 embedding。安装过程会下载官方脚本/二进制并注册后台服务;国内网络 GitHub 直连慢,走 gh-proxy 前缀。

curl -fsSL https://gh-proxy.com/https://github.com/ollama/ollama/releases/latest/download/install.sh | sh
# 或手动:下载 tar.zst 解压(需 tar --zstd 或 zstd 工具)
curl -sL -o /tmp/ollama.tar.zst https://gh-proxy.com/https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64.tar.zst
mkdir -p /tmp/ollama-bin && tar --zstd -xf /tmp/ollama.tar.zst -C /tmp/ollama-bin
/tmp/ollama-bin/bin/ollama --version
````

预期输出: `ollama version 0.33.2`(或更高)

装好确认:
- `ollama --version` 输出版本号;
- `curl http://localhost:11434/api/version` 返回 `{"version":"0.33.2"}`。

卡住怎么办:
- **下载超时/失败** → 换手动 tar.zst 路径,下载走 gh-proxy 前缀(2026-08-29 实测通过)。
- **`tar --zstd` 报错** → `sudo apt install -y zstd` 后重试。
- **服务没起来** → `ollama serve` 前台启动看日志;端口被占 → `OLLAMA_HOST=127.0.0.1:11435 ollama serve` 换端口(MaxKB 对接地址同步改)。

> note: 模型下载默认走 ollama 官方 registry(国内可能超时);备选 = ModelScope 下载 GGUF 后用 `ollama create` 导入(实测:qwen2.5-0.5b 491MB 58.5s + create success + CPU 冒烟,实测复现日志(2026-08-29))。

### 第 2 步:装 MaxKB(知识库问答台)

MaxKB 是一个 Docker 容器搞定全部:内置 Postgres(数据持久化)、文档解析、向量化、检索与生成。官方命令把数据目录挂到 `~/.maxkb`,删容器不丢数据。国内拉 Docker Hub 镜像失败时,把镜像名加 `docker.m.daocloud.io/` 前缀(2026-09-01 实测该路径可拉)。

````bash
# 国内网络:走 daocloud 加速前缀(2026-09-01 实测可拉)
docker run -d --name=maxkb --restart=always -p 8080:8080 \
  -v ~/.maxkb:/opt/maxkb \
  docker.m.daocloud.io/1panel/maxkb:latest
# 官方原版(网络允许直连 Docker Hub 时)
# docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/opt/maxkb 1panel/maxkb
````

预期输出: 容器 `maxkb` 启动,浏览器打开 http://localhost:8080 出现登录页

装好确认:
- `docker ps` 里 maxkb 状态 Up(首次启动 1-3 分钟初始化,日志 `docker logs maxkb` 可看进度);
- 浏览器 http://localhost:8080 出现登录页 → 默认账号 `admin / MaxKB@123..`(首次登录建议改密)。

卡住怎么办:
- **镜像拉取失败** → 换加速前缀(daocloud);再不行看官方离线安装文档 https://maxkb.cn/docs/v2/installation/offline_installtion/。
- **8080 被占** → `-p 8081:8080` 换宿主机端口,访问地址同步换。
- **登录页打不开** → `docker logs maxkb --tail 50` 看初始化报错;容器重启后等 1-3 分钟再刷。

### 第 3 步:把 MaxKB 接上 ollama(核心联动)

MaxKB 默认不带模型,要把它指到本地 ollama(模型不出机器)。这一步在网页里操作,不需要命令。

1. 登录 MaxKB(admin / MaxKB@123..)→ 左侧「模型设置」→「模型供应商」→ 选 **Ollama**;
2. API 域名填 `http://host.docker.internal:11434`(Docker 容器里访问宿主机的固定地址;Linux 直接跑则填 `http://127.0.0.1:11434`);
3. 选一个已拉好的模型(如 `qwen2.5:0.5b`)保存;
4. 左侧「知识库」→ 新建 → 上传文档(PDF/Word/Markdown 等)→ 等解析完成;
5. 左侧「应用」→ 新建应用 → 选该模型 + 关联知识库 → 开始问答。

预期输出: 提问「这个文档里 XX 是什么」能基于文档内容回答

卡住怎么办:
- **连不上 ollama** → 先确认宿主机 `curl http://127.0.0.1:11434/api/version` 有返回;容器内用 host.docker.internal 必须 Docker 支持该地址(WSL dockerd 实测可用;老版本加 `--add-host=host.docker.internal:host-gateway`)。
- **模型列表为空** → 先在宿主机 `ollama pull qwen2.5:0.5b`(小模型验证链路,或 ModelScope GGUF 导入)。
- **回答不基于文档** → 按顺序查三处(2026-09-01 实测踩坑):① 应用知识库检索相似度阈值太高——本地 text2vec 中文匹配建议 similarity <= 0.2(0.6 会检索为空);② 应用「模型设置 → 提示词」必须含 `{data}` 占位符,否则检索到的段落不会拼进 prompt,模型会编造答案;③ 改过应用配置后必须重新「发布」,聊天走的是发布时的版本快照(旧配置不生效)。

日常使用

启动与入口

  • ollama:服务常驻(ollama serve 或系统服务),入口 API http://localhost:11434;
  • MaxKB:docker start maxkb,入口 http://localhost:8080。

常用操作

  • 传新文档:MaxKB → 知识库 → 上传(支持 PDF/Word/Markdown/Excel/网页等);
  • 换模型:MaxKB → 模型设置 → 供应商 → Ollama → 换模型名(先在宿主机拉好);
  • 看状态:docker logs maxkb --tail 20;ollama ps 看当前加载模型。

数据与目录

  • MaxKB 数据:~/.maxkb/(容器 /opt/maxkb,含 Postgres 数据——备份就是备份这个目录);
  • ollama 模型:~/.ollama/models/(OLLAMA_MODELS 可指到大分区)。

卸载与清理

按安装顺序反向卸载:

docker rm -f maxkb
# 数据目录(含知识库文档与配置,删了不可恢复)
rm -rf ~/.maxkb
# ollama 如不再需要:删模型 + 停服务
ollama rm qwen2.5:0.5b 2>/dev/null
````

预期输出: 容器消失、目录清理完成

> note: `~/.maxkb` 是知识库数据本体,确认不再需要再删。

安装顺序

  1. 先 ollama(底座)——装完 ollama --version 冒烟,拉一个模型(国内网络此步最容易卡,见第 1 步卡住怎么办)。
  2. 再 MaxKB(知识库台)——Docker 起容器(默认 8080 端口),管理后台 → 模型设置 → 模型供应商选 ollama → 填 http://host.docker.internal:11434 → 选模型 → 建知识库 → 传文档 → 问答。

每步的"为什么 + 命令 + 装好确认 + 卡住怎么办"见「逐步教学」。

依赖警告

  • 版本:ollama >= 0.33.2(实测);MaxKB v2.10.5-lts(latest 标签);Docker >= 20.10(compose 可选)。
  • 环境:内存 >= 8GB(模型加载 + 向量化同时跑建议 16GB);磁盘 MaxKB 镜像 4.62GB(实测)+ 模型 4-70GB;端口 11434(ollama)/8080(MaxKB)。
  • 环境(实测坑):snap/apt 版 ollama 默认只监听 127.0.0.1:11434,bridge 容器访问会被拒(connection refused,2026-09-01 实测);解法 sudo snap set ollama host=0.0.0.0:11434(或 apt 版改启动参数)后重启,容器内经 172.17.0.1:11434 可达。注意 0.0.0.0 会暴露到局域网,按需配防火墙。
  • 冲突:MaxKB×open-webui 若同机跑——两者都是「知识库问答」定位,功能重叠建议只留一个(possible-conflict,静态判定:端口不同但定位重叠);ollama×MaxKB 为 compatible(MaxKB 只读 ollama API,无共享写面);与本站其他工具无共享写面。
  • 国内网络:ollama 二进制走 gh-proxy(实测);模型走 ModelScope GGUF 导入(实测)或官方 registry(可能超时);MaxKB 镜像走 daocloud 加速(实测)。

FAQ

  1. 为什么用 MaxKB 而不是 open-webui 的知识库? → open-webui 的 RAG 是附属功能,MaxKB 是专门的知识库问答台(文档解析更全、可嵌入业务系统、中文界面);两者二选一即可。
  2. 数据会出网吗? → 模型在本地 ollama、知识库在本地容器,不上传云端;只有 MaxKB 拉镜像/升级时走网络。
  3. 答得不好怎么办? → 换大一点的模型(7B 起步,14B 更好);文档拆分更细(一个文档一个主题);应用设置里调检索参数。
  4. 容器里连不上 ollama(connection refused)? → snap/apt 版 ollama 默认只监听 127.0.0.1,容器访问不到;改 sudo snap set ollama host=0.0.0.0:11434 并重启 ollama 服务(实测解法),MaxKB 里 API 地址填 http://172.17.0.1:11434(WSL/Linux bridge)或 http://host.docker.internal:11434(Docker Desktop)。
  5. 能嵌入自己的网站/系统吗? → 可以,MaxKB 应用有「嵌入」功能(HTML 片段),官方文档有说明(未实测)。
  6. Mac/Windows 能装吗? → 都可以:Docker Desktop 起 MaxKB;ollama 有官方安装器;WSL2 内路径与本指南一致。
  7. 问答不引用知识库/答得不对? → 三处排查(2026-09-01 实测):① 相似度阈值太高(本地 text2vec 中文建议 <=0.2);② 应用提示词缺 {data} 占位符(段落拼不进 prompt);③ 改配置后没重新发布(聊天读发布快照)。逐条对照证据 §6.4。
  8. API 方式操作 MaxKB 有什么注意? → 发布是 PUT;创建应用必带 prologue;PUT 更新必须带 knowledge_id_list;no_references_setting.status 合法值只有 ai_questioning/designated_answer。实测细节见证据 §6.4。

验证证据

每份组合包在隔离环境实测(冒烟 + 写面检查),未实测项在文中如实标注;实测日期见下方验证证据。

验证于 2026-09-01 · TTL 到期 2027-02-28(180 天)

  • MaxKB 镜像拉取 + 容器启动 + 登录 + 容器→ollama 连通(2026-09-01,WSL Ubuntu,dockerd 29.1.3):实测复现日志(2026-09-01)
  • daocloud 拉 1panel/maxkb:latest 4.62GB 成功;容器 Up + 8080 映射 + PostgreSQL 17.10 就绪 + "MaxKB started."
  • 默认账号 admin / MaxKB@123.. 登录 API 返回 token(成功)
  • snap ollama 默认只监听 127.0.0.1 → 改 host=0.0.0.0:11434 后容器内经 172.17.0.1:11434 访问 ollama API 成功({"version":"0.32.14"})
  • MaxKB「建知识库→传文档→向量化→应用→问答」API 全链路(2026-09-01 晚,同环境):同上证据文件 §6
  • 创建 SIMPLE 应用 + PUT 发布(is_publish=true);聊天 POST /admin/api/chat_message/<chat_id> 开卷问答
  • 提问「MAXKB_PROBE_TOKEN 的含义是什么?」→ 回答「MAXKB_PROBE_TOKEN 的含义是 trove-rag-test-passed-20260901。」与知识库事实逐字一致(检索→向量→prompt→本地模型生成全链路成功)
  • 完整踩坑 8 条(相似度阈值/{data} 占位符/编辑后必须重发布等)见证据 §6.4
  • 未实测(如实标注):Docker Hub 官方直连未测(daocloud 已覆盖国内路径)
  • ollama 侧复用既有实测:实测复现日志(2026-08-29)(0.33.2 + qwen2.5-0.5b 导入 + CPU 冒烟)

关联问题

← 全部组合包 | 工具货架 | 遇到问题?去 问题空间 提交求助卡