今天我们来介绍一款名为 AnythingLLM 的强大应用,它可以帮助你将任何文档、资源转换为 AI 知识库,构建属于自己的私人 AI 助手。无论是文本、PDF、音频,甚至视频,都能轻松变成能够与大语言模型(LLM)互动的参考材料。接下来,我们将通过一系列详细的步骤与教程,帮助你快速部署并掌握这一工具。
🚀 快速阅读
AnythingLLM 是一款全栈应用程序,它能够将任何文档或资源(例如网址链接、音频、视频)转化为能够被大语言模型(LLM)使用的上下文。这意味着,用户可以通过它来构建一个私人 AI 助手,而不再依赖于第三方平台。
核心功能:
- 支持多用户管理、多个 LLM 与向量数据库。
- 提供智能聊天功能,可根据用户需求动态生成内容。
- 完善的权限设置,保障用户信息安全。
技术原理:
- 通过工作区隔离不同内容,确保上下文信息的准确性与清晰性。
- 提供本地与云部署的选项,灵活应对不同的需求。
AnythingLLM 是什么

AnythingLLM 是一款旨在将所有类型的文档或资源转化为可与大语言模型(LLM)交互的上下文的应用。你可以上传 PDF、TXT、DOCX 等格式的文档,甚至链接和音频也能转化为 AI 助手的知识源。该应用程序支持多用户管理,确保团队协作时的信息安全和权限控制,且能够选择使用不同的 LLM 或向量数据库。
通过 AnythingLLM,你不仅可以自定义知识库,还能根据自己的需求来进行部署与调整。你可以在本地运行,也可以选择将其部署到云端。
AnythingLLM 的主要功能
- 多用户实例支持和权限管理:适合团队协作,管理员可以设置用户权限,确保操作的安全性与灵活性。
- 智能体 Agent:内置智能体可以浏览网页、运行代码等,帮助用户自动化处理日常任务。
- 可嵌入聊天窗口:为您的网站定制的聊天窗口,方便集成到现有的系统中,提升用户体验。
- 支持多种文档格式:如 PDF、TXT、DOCX 等文档格式,几乎可以处理所有你常用的文件。
- 文档管理与向量数据库:通过简单的界面管理文档,提升知识管理的效率。
- 两种对话模式:提供“聊天”与“查询”两种模式,灵活应对不同的业务需求。
- 引用文档内容:在聊天过程中,系统会自动引用相关文档内容,确保回答的准确性。
- 高效处理超大文档:处理超大文档时,系统支持高效一次性嵌入,节省时间和计算成本。
- 开发者 API:提供全面的 API 支持,便于用户进行二次开发与自定义集成。
AnythingLLM 的技术原理
- 前端:基于 ViteJS 和 React 构建,用户界面直观简洁,操作简单,能够轻松创建与管理 LLM 可用的所有文档资源。
- 后端:使用 NodeJS Express 服务器处理所有的交互请求,并与向量数据库、LLM 进行深度整合。
- Docker 支持:通过 Docker 提供镜像与部署步骤,用户可以方便地在不同环境中构建和运行。
- 文档收集器:通过 NodeJS 服务器负责解析和处理用户上传的文档。
AnythingLLM 的最小要求
为了确保 AnythingLLM 的顺利运行,建议满足以下最低要求:
- 内存:至少 2GB RAM
- 磁盘存储:推荐 10GB 以上,具体取决于存储的数据量(文档、向量、模型等)
- 软件:需要安装
docker
,以及yarn
和node
(用于本地开发) - LLM 访问:需要访问本地或远程运行的语言模型
如何运行 AnythingLLM
1. 设置开发环境
- 安装依赖:运行
yarn setup
,配置必要的环境变量。 - 启动服务器:使用
yarn dev:server
启动本地服务器。 - 启动前端:运行
yarn dev:frontend
启动前端界面。 - 启动文档收集器:执行
yarn dev:collector
启动文档收集器,开始解析文档。
2. 自托管部署
推荐使用 Docker 进行部署,确保应用的稳定性与易扩展性。通过以下步骤,您可以在本地快速部署 AnythingLLM。
推荐使用 Docker 进行部署
为了确保 AnythingLLM 的最佳性能和稳定性,推荐使用 Docker 化部署。以下是详细的步骤:
1. 拉取最新镜像
首先,从 Docker Hub 拉取最新的 AnythingLLM 镜像:
docker pull mintplexlabs/anythingllm
2. 持久化存储
为了确保数据在容器重启后不会丢失,建议将容器的存储卷挂载到主机的文件夹中。这样可以在更新镜像时保留现有数据。
Linux/MacOS
export STORAGE_LOCATION=$HOME/anythingllm && \\
mkdir -p $STORAGE_LOCATION && \\
touch \"$STORAGE_LOCATION/.env\" && \\
docker run -d -p 3001:3001 \\
--cap-add SYS_ADMIN \\
-v ${STORAGE_LOCATION}:/app/server/storage \\
-v ${STORAGE_LOCATION}/.env:/app/server/.env \\
-e STORAGE_DIR=\"/app/server/storage\" \\
mintplexlabs/anythingllm
Windows
# 在 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\" `
mintplexlabs/anythingllm;
3. 使用 Docker Compose
如果你更喜欢使用 Docker Compose,可以使用以下配置文件:
version: \'3.8\'
services:
anythingllm:
image: mintplexlabs/anythingllm
container_name: anythingllm
ports:
- \"3001:3001\"
cap_add:
- SYS_ADMIN
environment:
- STORAGE_DIR=/app/server/storage
- JWT_SECRET=\"make this a large list of random numbers and letters 20+\"
- LLM_PROVIDER=ollama
- OLLAMA_BASE_PATH=http://127.0.0.1:11434
- OLLAMA_MODEL_PREF=llama2
- OLLAMA_MODEL_TOKEN_LIMIT=4096
- EMBEDDING_ENGINE=ollama
- EMBEDDING_BASE_PATH=http://127.0.0.1:11434
- EMBEDDING_MODEL_PREF=nomic-embed-text:latest
- EMBEDDING_MODEL_MAX_CHUNK_LENGTH=8192
- VECTOR_DB=lancedb
- WHISPER_PROVIDER=local
- TTS_PROVIDER=native
- PASSWORDMINCHAR=8
volumes:
- anythingllm_storage:/app/server/storage
restart: always
volumes:
anythingllm_storage:
driver: local
driver_opts:
type: none
o: bind
device: /path/on/local/disk
4. 访问用户界面
完成上述步骤后,访问 http://localhost:3001
即可使用 AnythingLLM 的用户界面。所有数据和进度将持久保存,即使在容器重建或从 Docker Hub 拉取新镜像后也不会丢失。
常见问题解决
无法连接到本地服务
如果你在 Docker 容器中无法连接到主机上的服务(如 Chroma、LocalAI 或 LMStudio),请确保将 localhost
替换为 host.docker.internal
。例如,如果 Ollama 在主机上运行并绑定到 http://127.0.0.1:11434
,则应将连接 URL 设置为 http://host.docker.internal:11434
。
注意:在 Linux 上,http://host.docker.internal
不可用,应使用 http://172.17.0.1
作为替代。
API 无法工作,无法登录,LLM 离线
API 无法工作:在远程机器上运行时,确保配置正确的 API 基础 URL,例如 VITE_API_BASE="http://192.186.1.222:3001/api"
。
Ollama 问题
如果你遇到与 Ollama 相关的错误(如 llama:streaming - could not stream chat. Error: connect ECONNREFUSED 172.17.0.1:11434
),请参考 Ollama 常见问题 进行排查。
资源
- GitHub 仓库:https://github.com/Mintplex-Labs/anything-llm
- AnythingLLM 官方文档:https://docs.anythingllm.com
总结:通过 AnythingLLM,你可以轻松将自己的文档资源转换为 AI 知识库,并创建一个专属于你的私人 AI 助手。它不仅支持多种部署方式,还提供了灵活的用户管理与权限设置,帮助你在任何环境下都能高效利用 AI 技术。如果你对这一应用感兴趣,赶紧根据本教程开始部署吧!