搭AI知识库这么简单?Docker一键部署AnythingLLM,啥都能接入!
现在 AI 工具越来越多,但很多时候,我们希望 AI 不只是回答问题,还能理解自己的文档、整理资料,甚至帮助完成一些自动化任务。这次我们在 NAS 上部署一款开源 AI 应用平台:AnythingLLM。

它可以接入 DeepSeek 等几乎现存的所有的大语言模型,将 PDF、Word、TXT 等文档整理成私人知识库,还提供 Agent Skills、网页抓取、联网搜索等功能。

整个应用运行在 NAS 的 Docker 容器中,文档和知识库数据保存在 NAS 本地,模型推理则可以通过 API 调用云端服务。
部署 AnythingLLM
首先打开威联通 Container Station,进入「应用程序」,点击右上角的「创建」,新建一个 Docker Compose 项目。

部署代码如下:
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
ports:
- "13001:3001" # 左侧端口自行更改
environment:
- STORAGE_DIR=/app/server/storage
- VECTOR_DB=lancedb
- EMBEDDING_ENGINE=native
volumes:
# 下列文件夹一定要注意权限问题,否则无法完成初始化
- /share/Container/anythingllm/storage:/app/server/storage
restart: unless-stopped
这里主要设置了三个部分:
• 端口映射:将 NAS 的 13001 端口映射到容器内部的 3001 端口。
• 环境变量:指定数据存储位置、向量数据库以及内置 Embedding 引擎。
• 数据持久化:将 AnythingLLM 的 storage 目录映射到 NAS 本地,避免容器重建后丢失数据。
注意: 部署前需要创建对应的 storage 文件夹,并确保容器运行用户拥有写入权限。本次实际部署遇到过 SQLite 数据库无法创建的问题,最终通过调整目录权限解决。

如果容器正常运行,就可以通过浏览器访问:
NAS_IP:13001
首次进入需要完成初始化设置,随后就能看到 AnythingLLM 的主界面。

至此,基础部署完成。
初次进入
进入 AnythingLLM 后,可以先调整界面语言和显示效果。
打开左侧「设置」→「外观」→「界面偏好」。
这里提供了主题选择,包括:
• Default:默认主题
• True Dark:深色主题
• Ocean:海洋蓝
• Forest:森林绿
• Plum:紫色
• Ember:橙色
同时还可以设置显示语言。本次选择 Chinese,后续操作就更加方便了。

接下来进入「外观」→「聊天」,这里可以调整聊天界面的使用体验。例如自动提交语音输入、自动语音回复、拼写检查、显示滚动条,以及是否允许在聊天中渲染 HTML 等。这些属于使用偏好,可以根据自己的习惯开启或关闭。

接入大语言模型
AnythingLLM 本身并不要求必须在 NAS 上运行大模型,可以直接接入第三方模型 API。对于大部分用户来说,这种方式更加简单,也不需要额外配置显卡。

进入「设置」→「人工智能提供商」→「大语言模型(LLM)」,以DS为例,在模型提供商列表中找到 DeepSeek。进入 DeepSeek 配置页面,填写 API Key,会自动刷新支持模型。本次使用的模型为 deepseek-flash,界面中也提供 deepseek-v4-pro 等可选模型。

填写完成后点击 Save changes 保存。完成这一步,AnythingLLM 就有了负责理解问题、生成回答的大语言模型。
向量数据库与 Embedding
如果只是普通聊天,接入大语言模型就可以开始使用。但如果想让 AI 理解自己上传的文件,还需要配置知识库相关组件。
这里涉及两个概念:向量数据库和 Embedding。
向量数据库负责保存文档转换后的向量数据,Embedding 则负责将文本转换成向量,让 AI 能够根据语义检索相关内容。首先进入「设置」→「人工智能提供商」→「向量数据库」
可选择 LanceDB。它是 AnythingLLM 内置支持的本地向量数据库,不需要额外部署独立数据库服务。

接着进入「嵌入器(Embedder)」。可直接选择 AnythingLLM Embedder,也就是内置 Embedding 服务。默认模型为 all-MiniLM-L6-v2,模型体积较小,适合入门测试。点击提供商选择,还可以看到 OAI 等其他选项。如果没有特殊需求,初次部署建议先使用内置方案,不必额外增加模型服务。

其他 AI 功能配置
除了知识库,AnythingLLM 还提供了一些扩展能力,可以根据实际需要启用。
1. 图像生成
进入「设置」→「图像生成」。这里可以选择图像生成服务提供商,为 Agent 提供图像生成能力。

2. 语音与讲话
进入「设置」→「语音和讲讲」。这里分为语音转文字(Speech-to-text)和文字转语音(Text-to-speech)。可使用 System native,也就是浏览器原生支持的语音服务,不需要额外配置 API。

3. 转录模型
进入「转录模型」。也可选择 AnythingLLM Built-In,使用内置 Whisper 模型进行本地语音转录。当前选择 Xenova/whisper-small,模型会在首次使用时自动下载。需要注意,本地语音转录会占用 NAS 的 CPU 和内存资源,处理较大的音频文件时需要留意设备性能。

模型路由器:让不同任务使用不同模型
如果后续接入多个大语言模型,可以进一步使用模型路由器。进入「设置」→「人工智能提供商」→「型号路由器」。这里可以根据预先设置的规则,将不同聊天任务分配给不同模型。
例如:
• 日常问答使用响应较快的模型。
• 复杂分析任务使用能力更强的模型。
• 不同工作空间采用不同模型配置。

点击「新的路由器」,可以填写路由器名称、描述、主要服务提供商、模型,以及缓存冷却时间。模型就可直接使用 上文配置的 DeepSeek 和 deepseek-flash。

创建路由器后,还可以进一步设置具体的路由规则。点击刚创建好的路由,可以设置规则名称、规则类型,以及用于判断消息是否匹配的条件。例如,可以根据消息内容、发送时间等属性设置匹配条件,再指定符合条件时使用的模型服务提供商和模型。这样就能根据不同任务,将聊天请求分配给对应的大语言模型,而不是所有请求都使用同一个模型。

Agent Skills:扩展 AI 助手的能力
这是 AnythingLLM 比较值得关注的功能之一。除了基础聊天,它还支持 Agent Skills,可以让 AI 在需要时调用不同工具完成任务。进入左侧「代理技能」,可以看到多个功能模块。还有 Gmail、Google 日历和 Outlook 等 App Integrations,可以根据实际需求连接。

需要注意,Agent Skills 并不意味着所有功能部署后都会自动可用。部分技能还需要额外配置 API、授权或对应服务。尤其是文件系统访问和 SQL 连接器,建议先了解权限范围,再决定是否开启。
聊天记录管理与导出
对于经常使用 AI 的朋友来说,聊天记录是具备管理价值的。进入「管理」→「对话历史记录」,可以查看工作空间聊天历史,并支持多种格式导出。目前提供:CSV、JSON、JSONL、JSON(Alpaca)几种导出格式。如果希望将聊天内容用于整理、分析或其他 AI 数据处理流程,可以根据实际用途选择对应格式。

Community Hub:发现更多扩展能力
这里可以浏览和导入社区分享的 Agent Skills、System Prompts 等内容。例如默认展示的:
• Calendar Event:日历事件
• Weather Lookup:天气查询
• Home Assistant Automation:智能家居自动化
• SEO Tooling Advisor:SEO 工具顾问
• Plot Twist Generator:剧情生成
每个项目都可以查看介绍,并通过 Import 导入。对于不想从零编写提示词或技能的用户来说,这里可以作为扩展功能的入口。不过,导入第三方技能前,建议先检查其来源、代码和权限要求,不要直接启用未经验证的脚本。

工具与扩展
AnythingLLM 还提供了独立的工具管理入口,方便用户进一步扩展 AI 助手的使用场景。这些功能主要面向有进一步集成和自动化需求的用户。普通用户先掌握模型接入、知识库和 Agent Skills,就已经能够满足大部分日常使用需求。
目前主要包括:
• 嵌入式对话:将 AI 聊天界面嵌入其他网页或应用。
• 事件日志:查看应用相关事件记录。
• 计划好的任务:管理计划执行的任务。
• 开发者 API:通过 API 将 AnythingLLM 接入其他应用或自动化流程。
• 系统提示变量:管理系统提示词中使用的变量。
• 浏览器扩展:扩展浏览器端的使用能力。
• AnythingLLM 移动版:通过移动设备使用 AI 助手。

最后
如果你手里也有一台 NAS,不妨试试把它变成自己的私人 AI 知识库。
感谢观看,本文完。
