AnythingLLM 是一款开箱即用的私有化知识库与智能问答平台。它把企业散落的 PDF、Word、网页、Excel 甚至图片和音视频,统一切分、向量化后变成可对话的专属知识库。相比把敏感文档扔进公有云,私有化部署让你完全掌控数据与模型,还能灵活接入本地 Ollama、vLLM 或任意 OpenAI 兼容后端,是构建多模态 RAG 应用的最低门槛方案。
一、为什么需要私有化知识库
通用大模型并不了解你公司的制度、产品手册和内部复盘。直接把机密文档丢给公有云 API,既存在数据泄露风险,也常常答非所问。私有化知识库的核心价值,是用检索增强生成(RAG)让模型只在你授权范围内作答:先向量检索相关片段,再交给大模型组织答案,既保住数据边界,又显著提升准确率。AnythingLLM 把这套流程封装成可视化界面与一套完整 API,非算法团队也能当天跑起来。
二、AnythingLLM 能做什么
2.1 多模态文档理解
除常见的 TXT、Markdown、PDF、DOCX、XLSX、PPTX 外,AnythingLLM 还能解析图片(OCR 与多模态模型直接读图)、音频与视频(转写后入库)。这意味着一张产品架构截图、一段会议录音,都能成为可检索的知识。
2.2 多模型后端可插拔
推理侧可接 AnythingLLM 内置引擎、Ollama、LM Studio、LocalAI、OpenAI、Azure、Anthropic 等;向量库默认内置 LanceDB,也可切换到 Chroma、Qdrant、Weaviate 或 Pinecone;嵌入模型支持内置、Ollama 或 OpenAI。这种松耦合让你在「本地免费」与「云端更强」之间随时切换。
2.3 工作区与权限隔离
不同团队可建独立工作区,每个工作区有各自的文档、提示词与成员权限。配合 API Key,你可以把「客服知识库」和「研发知识库」彻底分开,避免串味。
三、Docker 一键部署
单机体验最快的方式是 Docker Compose。数据全部落在本地 storage 目录,重启不丢。
version: '3.8'
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
ports:
- "3001:3001"
volumes:
- ./storage:/app/server/storage
env_file:
- .env
restart: unless-stopped
.env 只需声明端口与存储目录,其余模型配置在界面完成:
SERVER_PORT=3001
STORAGE_DIR=/app/server/storage
# 如需走反向代理,可在此固定对外域名
启动后访问 http://localhost:3001,按引导创建管理员账号即可。若要把服务暴露到公网,建议前置一层 Nginx 反代并做好 HTTPS,可参考本站 Nginx 反向代理完整配置 的做法。
四、配置模型后端:本地 Ollama 与 LiteLLM 路由
在「设置 → LLM 首选项」里选择 Ollama,填入本地地址 http://host.docker.internal:11434(宿主机的 Ollama)。若你已在服务器上用 LiteLLM 统一代理多家大模型,可直接把 AnythingLLM 的「OpenAI 兼容」端点指向 LiteLLM,实现多 Key 负载均衡与故障转移:
# litellm 代理配置(节选)
model_list:
- model_name: anythingllm-router
litellm_params:
model: openai/gpt-4o-mini
api_key: os.environ/OPENAI_KEY
- model_name: anythingllm-router
litellm_params:
model: ollama/llama3.1
api_base: http://localhost:11434
嵌入模型同样建议本地化:在 Ollama 拉取 nomic-embed-text,并在 AnythingLLM 嵌入设置中选择 Ollama,避免文档内容外发。需要更强推理时,可把后端切到本地部署的 vLLM 高吞吐推理服务。
五、上传文档并构建工作区
界面上传最直观;要自动化入库,用官方 API 更稳。先在「API Keys」页面生成令牌,然后建工作区、传文件、触发向量化:
# 1. 新建工作区
curl -X POST http://localhost:3001/api/v1/workspace/new \
-H "Authorization: Bearer $ANYTHINGLLM_KEY" \
-H "Content-Type: application/json" \
-d '{"workspaceName":"客服知识库"}'
# 2. 上传文档(multipart)
curl -X POST http://localhost:3001/api/v1/document/upload \
-H "Authorization: Bearer $ANYTHINGLLM_KEY" \
-F file=@/data/退款政策.pdf
# 3. 把刚上传的文件移入工作区并向量化
curl -X POST "http://localhost:3001/api/v1/workspace/客服知识库/update-embeddings" \
-H "Authorization: Bearer $ANYTHINGLLM_KEY" \
-H "Content-Type: application/json" \
-d '{"adds":["退款政策.pdf"],"deletes":[]}'
六、多模态:图片与表格也能问答
把产品截图或带表格的 PDF 直接拖入工作区,AnythingLLM 会调用多模态模型抽取图中文字与结构。提问「这张架构图里网关后面挂了几个服务?」时,检索阶段会把图片作为上下文一并喂给模型。注意:多模态问答依赖具备视觉能力的推理后端(如本地 llama.cpp 量化部署 的视觉模型或云端多模态模型),纯文本模型无法读图。
七、RAG 检索参数怎么调
| 参数 | 建议值 | 说明 |
|---|---|---|
| 分块大小 (Chunk Size) | 1000–1500 字符 | 太小丢上下文,太大混入噪声;中文文档可略减 |
| 分块重叠 (Overlap) | 10%–20% | 避免句子在边界被截断 |
| 检索条数 (Top K) | 4–6 | 太少遗漏,太多稀释注意力 |
| 重排序 (Re-rank) | 开启 | 用交叉编码器对初检结果二次排序,显著提升命中 |
| 相似度阈值 | 0.75 左右 | 低于阈值直接回答「不知道」,减少幻觉 |
八、用 API 把知识库接到你的系统
业务系统只需一次 HTTP 调用即可获得基于私有文档的回答。两种模式:query 每次独立检索作答,适合单轮问答;chat 带上下文记忆,适合多轮对话。
import os, requests
URL = "http://localhost:3001/api/v1/workspace/客服知识库/chat"
HEADERS = {"Authorization": f"Bearer {os.environ['ANYTHINGLLM_KEY']}"}
def ask(question: str) -> str:
resp = requests.post(URL, headers=HEADERS, json={
"message": question,
"mode": "query", # query=单轮检索;chat=带记忆
"sessionId": "user-123" # chat 模式下用于区分会话
}, timeout=60)
resp.raise_for_status()
return resp.json()["textResponse"]
print(ask("我们的退款政策是怎样的?"))
若需更高并发与缓存,可在前端加一层 Redis 缓存设计,对相同问题做短时缓存;接入 CI 时也可用 GitHub Actions 自动把仓库文档同步进工作区。
九、生产落地检查清单
| 项目 | 动作 |
|---|---|
| 暴露公网 | 前置 Nginx + HTTPS,禁用目录遍历 |
| 模型合规 | 敏感文档用本地 Ollama/llama.cpp,不外发嵌入 |
| 权限 | 按工作区分 API Key,最小授权 |
| 备份 | 定期归档 storage 目录(含向量库) |
| 监控 | 记录问答日志,定期抽检答案质量 |
| 升级 | 锁定镜像版本,升级前先备份 |
十、常见误区与排障
| 现象 | 原因 | 解决 |
|---|---|---|
| 回答总是「不知道」 | 相似度阈值过高或文档未向量化 | 确认已执行 update-embeddings,适当降低阈值 |
| 答非所问 | Top K 过大混入无关片段 | 降到 4–6,开启 re-rank |
| 图片读不出内容 | 后端无视觉能力 | 换多模态模型或先用 OCR 提取 |
| 容器重启后配置丢失 | 未挂载 storage 卷 | 确认 volumes 已映射 ./storage |
| Ollama 连不上 | Docker 网络隔离 | 用 host.docker.internal 或同网络 |
十一、结语
AnythingLLM 用最低的工程成本,把「企业文档 → 可对话知识」这条链路跑通,私有化部署更是数据安全的第一道防线。它和 Dify + Ollama 私有 AI 知识库、RAGFlow 深度文档 RAG 形成互补:前者重可视化与开箱即用,后者强在复杂版式解析。选型时按团队工程能力取舍即可。若想进一步压低成本、提升吞吐,可把推理统一收敛到 vLLM/SGLang/Ollama 推理引擎 之上,再用 LiteLLM 做路由。你的下一个内部助手,今天就能上线。




