前言
平时使用云端 AI 问答文档,总会有一层顾虑:合同、技术手册、内部笔记上传第三方平台,不仅有隐私泄露的风险,还会受到接口额度、网络波动的限制。有没有一套方案,所有文档、大模型推理、向量检索全部跑在本地,不上传任何数据到外网?
Ollama + AnythingLLM 就是当下非常成熟的私有化 RAG 组合。Ollama 负责本地运行大模型与嵌入模型,AnythingLLM 提供可视化文档导入、向量存储、多工作区管理与对话界面。不需要复杂的 LangChain 代码开发,上传 PDF、Markdown、网页资料后,AI 就可以基于你的文档进行问答,回答附带原文溯源。
整套方案支持离线运行,文档所有权完全掌握在自己手里,个人、小团队、NAS 环境都可以部署。本文就带大家从零搭建这套本地文档 AI,搞定私有知识库。

1.AnythingLLM是什么?
AnythingLLM 是 Mintplex Labs 开发的开源一站式私有化 RAG 知识库 & AI 代理平台,MIT 协议开源,主打把文档、网页、音视频素材做成私有知识库,搭配大模型实现文档问答,也是和 Ollama 搭档最热门的工具之一AnythingLL…。
简单一句话:它不是大模型,是一套RAG 调度 + 向量库 + Web 交互后台,可以对接本地 Ollama 或者云端大模型,让 AI 读懂你的私有文件。

✨ 核心特点
- 工作区隔离(最核心优势) 采用 Workspace 工作区机制,不同项目、不同资料分开存放,每个工作区独立文档、独立提示词、独立模型,互不干扰,适合区分办公资料、笔记、合同、技术文档Gitee。
- 强大的文档接入能力 支持 PDF / Word / PPT / Excel / Markdown / TXT / EPUB,还能抓取网页链接、YouTube 字幕、音频转写内容;上传后自动分块、向量化存入向量库,回答附带原文来源引用,方便溯源。
- 模型兼容,完美适配 Ollama 不绑定模型,可对接 Ollama、LM Studio、llama.cpp,也支持 OpenAI、Azure 等云端接口;向量库默认内置 LanceDB,也可切换 Chroma、Qdrant、PGVector 等,你之前用的 qwen2.5、bge-m3 都能直接接入AnythingLL…。
- 内置 AI Agent 能力 自带工具调用:联网搜索、读取网页、SQL 查询、文件生成,支持可视化编排 Agent 流程,不止单纯文档问答,还能做简单自动化任务agents-oss…。
- 多用户权限 + API 自托管版本支持多账号、精细化权限管控;自带 REST API,可以给其他程序调用知识库能力,适合小团队内部使用。
- 多种部署方式 提供桌面客户端(Windows/Mac/Linux)、Docker 镜像,非常适合在 NAS、fnOS、Linux 服务器部署;搭配 cpolar 内网穿透,外网随时访问私有知识库AnythingLL…。
🧩 典型使用场景
- 个人:本地笔记、电子书、技术手册、学习资料私有问答,离线可用
- 小团队:合同、项目文档、产品手册知识库,多人查阅提问
- 开发:代码文档、运维手册、接口文档,快速检索答疑
- 企业:敏感内部资料,不上传第三方平台,数据完全自留
📌 和Ollama的区别
- Ollama:负责跑大模型、Embedding 嵌入模型(算力层)
- AnythingLLM:负责文档管理、向量存储、RAG 检索、网页界面、权限(应用层) 二者搭配就是一套完整离线私有 AI 知识库方案,也就是我们之前准备部署的组合。
📋 简单部署门槛参考
- 内存:推荐 16G,8G 可以跑 3B 小模型(qwen2.5:3b)
- 部署:Docker 一键启动,对 NAS 友好;无显卡也能 CPU 跑,速度偏慢
📌 适合谁
个人做私有笔记、电子书、手册问答;小团队搭建内部文档知识库;运维、开发把运维文档、接口文档做成可问答库,敏感数据不用上传第三方。
总结
AnythingLLM 是目前上手门槛最低、开箱体验最好的开源 RAG 应用,不用写 LangChain 代码,可视化操作,兼顾个人自用和小团队私有化知识库需求,是本地 Ollama 生态里的热门搭档项目。
2.安装前提条件
分硬件、系统、依赖、网络、配套服务 5 块,适合你 NAS/Linux Docker 部署场景
✅ 硬件要求
最低(能跑,速度一般)
- 内存:8GB RAM(可用内存≥4G),推荐 16GB+(你之前那台 15G 内存机器刚好合适)
- 硬盘:至少 5GB 空闲空间(AnythingLLM 本体 + 向量库,模型单独占空间)
- CPU:x86_64 主流 CPU;ARM(树莓派、部分 NAS)也支持,但大模型推理慢
- 显卡(可选):N 卡支持 CUDA 可以加速 Ollama;没有显卡也能跑,纯 CPU 推理
⚠️ 注意:AnythingLLM 本身不吃太多资源,资源消耗大头是 Ollama 的大模型 + 向量化模型(bge-m3)
✅ 系统环境
(推荐 Docker 方式,最省事)
优先推荐 Docker 部署(你之前在用)
- 支持系统:Ubuntu / Debian / CentOS /fnOS(飞牛 NAS)、Windows、macOS
- 必备:
- Docker Engine
- Docker Compose(v2+,新版 docker 自带
docker compose)
- 权限:root 或者用户加入 docker 组
- 端口预留:
- AnythingLLM 默认:
3001 - Ollama 默认:
11434(两个容器要互通这个端口!)
- AnythingLLM 默认:
❗ fnOS 注意:原生 docker 存储驱动容易踩坑,不要乱改 daemon.json,容易启动失败
✅ 配套服务
本地方案选 Ollama
AnythingLLM 只是 RAG 前台,本身不带大模型,必须对接 LLM 服务:
- ✅ Ollama(你用的方案,离线本地,推荐)
- 提前装好 Ollama
- 提前拉模型:
qwen2.5:7b/3b+ 向量化bge-m3 - 保证容器内可以访问
http://host.docker.internal:11434
- 其他备选:OpenAI、通义千问等在线 API(需要联网、key)
✅ 网络 & 权限前提
- 网络:
- 拉取镜像需要能访问 Docker Hub;国内慢可以配置镜像加速
- 纯本地使用:部署完成后不需要外网,所有问答、文档检索离线跑
- 文件夹权限:
- 挂载持久化目录(存放上传文档、向量库、聊天记录),权限建议
uid:gid=1000:1000,否则会报读写失败
- 挂载持久化目录(存放上传文档、向量库、聊天记录),权限建议
- 防火墙:服务器 / NAS 放行 3001 端口,局域网才能访问页面
✅ 软件版本避坑条件
- Ollama 不要用太老版本,建议更新到最新稳定版
- 不要同时多个程序占用 11434 端口(端口冲突 Ollama 起不来)
- Swap 交换分区:内存<16G 建议开启 swap,防止 OOM 崩溃
📌 极简前置检查命令(Linux 直接复制跑)
# 查看内存
free -h
# 查看磁盘剩余
df -h
# 检查docker是否正常
docker info
# 测试ollama连通性(宿主机)
curl http://127.0.0.1:11434/api/tags
3.安装Ollama
官网:https://ollama.com/download/windows 双击安装,自动后台启动,端口 11434

拉模型(PowerShell)
ollama pull qwen2.5:7b
ollama pull bge-m3


验证 Ollama:浏览器打开 http://127.0.0.1:11434/api/tags 能返回 JSON

4.安装部署AnythingLLM
4.1 安装AnythingLLM
方式 1:单条命令启动
新建 PowerShell(管理员不用,普通即可),直接复制运行:
$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
--name anythingllm `
--restart unless-stopped `
mintplexlabs/anythingllm:latest

启动完成,访问:
- 本机:
http://localhost:3001 - 局域网其他设备:
http://你的Windows内网IP:3001

方式 2:docker部署
在电脑随便新建一个文件夹,新建 docker-compose.yml,内容:
version: '3.8'
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
restart: unless-stopped
ports:
- "3001:3001"
cap_add:
- SYS_ADMIN
volumes:
- ./storage:/app/server/storage
- ./.env:/app/server/.env
environment:
- STORAGE_DIR=/app/server/storage
extra_hosts:
- "host.docker.internal:host-gateway"
在这个文件夹内打开 PowerShell,启动:
docker compose up -d
4.2 部署AnythingLLM
浏览器打开 http://IP:3001

选择 LLM 提供商:Ollama
Chat Model:qwen2.5:7b

用户设置

默认下一步

设置电子邮箱

登陆成功

5.使用AnythingLLM
当前选用 qwen2.5:7b 模型,左侧侧边栏展示 “我的工作区” 以及对话线程列表,主区域居中显示提示文字 “我们从哪里开始?”,下方设有消息输入框,附带工具按钮,底部还有创建代理、编辑工作区、上传文件三个功能按钮,是等待用户发起提问的初始 RAG 交互界面。

选用Qwen2.5:7B本地模型,用户提问 “分析这篇文章是做什么的”,AI给出了对Mealie自托管食谱工具教程文章的解读回答,右侧来源面板标注了检索引用的知识库文件,界面整体简洁,清晰展示了本地RAG检索问答的效果。
界面偏好设置页面:左侧是功能导航栏,包含人工智能提供商、管理员、代理技能、外观、用户与安全等菜单,当前停留在外观分类下的界面偏好设置页;页面右侧可以设置系统主题、挑选Default、True Dark、Ocean等多款调色板,还能修改界面显示语言,当前语言选项为English,底部附带联系支持、隐私与数据入口。

左侧导航栏选中 “人工智能提供商” 下的大语言模型(LLM),LLM 提供商选择了 Ollama,模型指定为 qwen2.5:7b,Ollama 基础地址填写为http://host.docker.internal:11434,设置模型保活时长为 5 分钟,上下文窗口自动管理,还可填写 Ollama 认证令牌,用于对接本地 Ollama 大模型服务。

左侧菜单栏选中代理技能分类,页面左侧列表展示各类代理能力与应用集成项:检索增强生成和长期记忆、查看和总结文档、抓取网站、实时网络搜索和浏览四项功能已开启,文件系统访问、文档创建、生成图表、生成图像、SQL连接器、创建计划任务以及Gmail、Google日历、Outlook 连接器均处于关闭状态,暂无导入的自定义技能,还支持创建Agent Flow;右侧提示选择一项代理技能、流程或MCP服务器进行配置。

左侧导航选中社区中心下的探索热门,页面展示社区上新资源,分为Agent Skills和System Prompts两大板块;Agent Skills里包含日历事件、上下文时间、天气查询、Home Assistant自动化等技能,标注有已验证 / 未验证状态,每个卡片都带有Import导入按钮;System Prompts板块提供SEO工具顾问、剧情反转生成器、人物传记生成等预设提示词,同样支持导入,右上角还有Explore More入口可浏览更多社区资源。

将 AnythingLLM 搭配 cpolar 内网穿透,可以把本地 Docker 部署的私有知识库大模型服务,不用公网 IP、不用路由器端口映射,快速生成公网访问链接,方便在外网、移动端或者分享给他人远程访问你的 AnythingLLM 对话与文档检索页面,同时 cpolar 还能配置密码保护、自定义域名,保障本地 RAG 知识库的访问安全。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
接下来介绍一下如何安装cpolar内网穿透,过程同样非常简单:
首先进入cpolar官网:
cpolar官网地址: https://www.cpolar.com
点击免费使用注册一个账号,并下载最新版本的cpolar:

登录成功后,点击下载cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到配置界面,结下来在WebUI管理界面配置即可。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:AnythingLLM,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3001
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是AnythingLLM,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
Ollama 搭配 AnythingLLM 可以搭建一套完全本地化的私有文档 AI 知识库,依托 Ollama 在本地运行大模型,AnythingLLM 负责文档解析、向量存储、RAG 检索与对话管理,全程数据不出本机,不经过第三方云端,用户完整掌握文档、对话等数据;整套方案支持 Docker 一键部署,可自由切换不同本地大模型,开启检索、文档总结、网页抓取等 Agent 能力,再搭配 cpolar 内网穿透,还能安全地在外网远程访问私有知识库,适合有隐私需求的个人、小团队做本地私有 RAG。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站



