news 2026/8/22 13:58:08

AnythingLLM 完整教程:从 0 到第一个文档问答,Docker 一条命令起步

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AnythingLLM 完整教程:从 0 到第一个文档问答,Docker 一条命令起步

AnythingLLM 完整教程:从 0 到第一个文档问答,Docker 一条命令起步

【免费下载链接】anything-llmStop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience项目地址: https://gitcode.com/GitHub_Trending/an/anything-llm

AnythingLLM 是一个把本地文档变成可聊天上下文的全栈应用:导入 PDF、网页、视频字幕后,它调用你指定的 LLM(本地 Ollama 或 OpenAI 等)生成带出处的回答。下面带你用 Docker 或源码两种方式把它跑起来,并完成第一次文档问答。

部署前先确认环境

项目最低要求说明
内存2 GB云主机(AWS/GCP/Azure)建议不低于此值
磁盘10 GB实际占用随文档、向量、模型文件增长
Docker 路径已安装 Docker推荐,一条命令拉镜像即可
源码路径Node.js ≥ 18 + Yarnpackage.jsonengines写的是>=18,比部分旧文档的 14/16 要求更高

另外你需要有一个可用的 LLM:本地跑一个 Ollama,或手上有一个 OpenAI / Gemini 之类的 API Key,两者任选其一即可。向量数据库无需额外安装——AnythingLLM 默认内置 LanceDB,嵌入(Embedding)模型默认使用内置的本地模型,全程不出网也能工作。

Docker 一条命令快速部署 AnythingLLM

在终端执行(Linux/macOS):

export STORAGE_LOCATION=$HOME/anythingllm && \ mkdir -p $STORAGE_LOCATION && \ touch "$STORAGE_LOCATION/.env" && \ docker run -d --rm -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 --rm -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

两个细节值得注意:

  • STORAGE_LOCATION是宿主机目录,容器里的文档、向量库都落在这里,升级镜像不丢数据。
  • 需要写入.env的敏感项(如SIG_KEYJWT_SECRET)在首次启动后会自动补全,不用手动填。

不想用docker run的话,仓库里的 docker-compose 文件 和 Docker 使用文档 提供了等价配置,可直接docker-compose up -d启动。

源码方式运行 AnythingLLM 开发环境

适合想改代码或不想装 Docker 的场景。克隆仓库:

git clone https://gitcode.com/GitHub_Trending/an/anything-llm cd anything-llm yarn setup

yarn setup会依次安装servercollectorfrontend三个子模块的依赖、生成.env文件并完成 Prisma 数据库初始化。完成后按提示,分三个终端分别启动(在仓库根目录执行):

yarn dev:server # 主服务,监听 3001 yarn dev:collector # 文档收集器,负责解析上传的文件 yarn dev:frontend # 前端界面

生产环境(不用 Docker 长期运行)的完整流程见 BARE_METAL.md:构建前端、拷贝产物到server/public、执行 Prisma 迁移,然后分别以NODE_ENV=production node index.js拉起servercollector。官方对该模式不承诺支持,建议仅作参考。

确认服务启动成功:看 3001 端口

启动后打开http://localhost:3001,判断信号如下:

  1. 出现 AnythingLLM 登录/引导页,说明后端已就绪。首次访问会让你设置管理员账号,设置完成后进入工作区列表,这就是完整的可用状态。
  2. 浏览器一直转圈但终端无报错?检查 3001 端口是否被其他进程占用——lsof -i :3001(Linux/macOS)或netstat -ano | findstr 3001(Windows)可定位占用者,改SERVER_PORT后重新映射即可。
  3. 如果部署在远程机器,通过公网 IP 访问却提示 API 不通:这是前端打包时写死了localhost的 API 地址。按 Docker 文档 说明,在frontend/.env.production里把VITE_API_BASE改成http://<你的可达IP>:3001/api再重新构建。

接入模型:配置 LLM 提供商与向量库

登录后进入Settings → LLM Preference,这一步决定"谁在回答问题":

  • 云端 API:选 OpenAI、Anthropic、Gemini 等,填入 API Key 和模型名(如gpt-4.1-nano),保存即可。
  • 本地模型:选 Ollama / LM Studio / LocalAI,填入模型服务地址和模型名。本地路线完全免费且数据不出网,是"私有化"的核心卖点。

⚠️容器内连宿主机服务的坑:如果 Ollama 跑在宿主机127.0.0.1:11434,在 AnythingLLM 容器里不能填localhost,而要填http://host.docker.internal:11434(Linux 需给docker run--add-host=host.docker.internal:host-gateway,或改用172.17.0.1)。看到ECONNREFUSED 172.17.0.1:11434基本就是这个原因。

向量数据库默认 LanceDB(本地、零配置)。需要更大规模或团队协作时,可在 Vector DB Preference 里切换到 PGVector、Pinecone、Chroma、Qdrant、Milvus 等。嵌入模型默认用内置本地嵌入器;若要换 OpenAI / Ollama 的嵌入模型,注意嵌入模型一旦更换,已有文档需要重新导入才能被检索到。

让第一份文档变成可问答的上下文

配置好模型后,进入任意 Workspace(没有就新建一个),用左侧Add Documents导入内容,支持三种方式:

  • 上传文件:PDF、DOCX、TXT、EPUB、XLSX、音频等直接拖入;
  • 粘贴链接:网页、GitBook、YouTube 视频(自动提取字幕转成文本);
  • 批量导入:粘贴多行链接或目录链接一次导入。

导入后文档会经过切块、嵌入、写入向量库的流程,列表状态变为"已嵌入"即完成。此时向聊天框提问,回答下方会出现来源引用(哪份文档、哪个片段),这就是 RAG 在起作用——你可以点开引用核对原文。

如果回答"不知道文档里有什么",先确认:模型配置是否保存成功、嵌入模型是否在导入后被更换过(更换后需重新导入)。

进阶用法:多用户、云部署与反向代理

  • 多用户与权限:Docker 版支持多用户,管理员在 User Management 里创建账号、按工作区分配权限,每个用户看到的内容互相隔离。
  • 云端一键部署:仓库内置 AWS CloudFormation、GCP、DigitalOcean Terraform 模板,见 cloud-deployments。以 AWS 为例,按模板创建 Stack 并上传配置文件即可完成部署:

  • 反向代理:用 Nginx 前置 HTTPS 时,除常规代理配置外,必须开启 WebSocket 升级(聊天流式输出依赖它)并关闭proxy_buffering,BARE_METAL.md 里有一份可直接套用的 Nginx 示例。
  • 嵌入 Widget:Docker 版可通过 Embed 功能把聊天框嵌进自己的网站;此外还有 MCP 兼容、定时任务、AI Agent 工作流等能力,可在设置中按需开启。

下一步你可以做什么

  • 用 Ollama 拉一个本地模型(如llama3.2),把 LLM Preference 切过去,体验完全离线的文档问答;
  • 把团队知识库按主题拆成多个 Workspace,逐个分配成员权限;
  • 给服务套上 Nginx + HTTPS,让http://localhost:3001变成团队可访问的正式地址。

【免费下载链接】anything-llmStop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience项目地址: https://gitcode.com/GitHub_Trending/an/anything-llm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 13:56:42

用 QClaw 创作宝可梦4格漫画的AI 创意应用实践

前言作为一个宝可梦老粉&#xff0c;我的手机相册里存了几百张皮卡丘的表情包&#xff0c;每逢宝可梦新作我必追&#xff0c;甚至连“小智为什么永远10岁”这种问题都认真思考过。一直都想创作点属于自己的宝可梦内容&#xff0c;发小红书跟同好们乐呵乐呵&#xff0c;但是苦于…

作者头像 李华
网站建设 2026/8/22 13:54:37

LLM智能体安全:防御收敛性绕道劫持的资源滥用攻击

1. 从“智能体失控”说起&#xff1a;一个被忽视的威胁场景 最近在折腾基于大语言模型的智能体&#xff08;LLM Agents&#xff09;时&#xff0c;我遇到了一个相当棘手且细思极恐的问题。我们通常关注智能体能否完成任务、回答是否准确&#xff0c;但很少深入思考&#xff1a;…

作者头像 李华
网站建设 2026/8/22 13:51:27

FreeCol地图编辑器教程:6个步骤打造你的专属新大陆

FreeCol地图编辑器教程&#xff1a;6个步骤打造你的专属新大陆 【免费下载链接】freecol FreeCol: FreeCol is a turn-based strategy game based on the old game Colonization, and similar to Civilization. The objective of the game is to create an independent nation.…

作者头像 李华
网站建设 2026/8/22 13:49:44

Maven依赖管理与构建优化实战:从原理到解决高频疑难杂症

1. 项目概述&#xff1a;Maven路上的那些“坑”干了这么多年Java开发&#xff0c;要说构建工具&#xff0c;Maven绝对是绕不开的一座山。它把我们从手动管理Jar包的“石器时代”带入了依赖管理的“工业时代”&#xff0c;但这条路&#xff0c;从来都不是一马平川的。项目标题“…

作者头像 李华