AnythingLLM 新手入门指南:项目结构详解与 Windows 开发环境启动完整教程
我是张大鹏做了十多年人工智能。说实话很多开源项目部署文档写得不清楚新手第一步就卡住了。AnythingLLM 是一个非常好的 RAG 知识库项目但官方文档对 Windows 开发环境的介绍比较少。本文专门为新手写一篇完整启动指南保证你看完就能跑起来。一、AnythingLLM 到底是什么AnythingLLM 是一个开源的私有知识库问答工具用 MIT 协议可以免费商用。简单说把你自己的文档PDF、Word、网页等丢进去它就能变成一个可以对话的 AI 助手。文档 → AnythingLLM → AI 对话助手它的核心能力支持 PDF、Word、TXT、网页、Notion 等多种文档格式内置 RAG检索增强生成流水线支持 OpenAI、Claude、Ollama、DeepSeek 等多种大模型支持多用户、权限管理MIT 协议商用零风险二、项目结构搞清楚三个服务的关系AnythingLLM 不是单个项目它是一个多包仓库Monorepo由三个独立的服务组成AnythingLLM/ │ ├── server/ ← 后端 API 服务 ├── frontend/ ← 前端界面 ├── collector/ ← 文档处理服务 │ └── docs/ ← 文档和本文无关2.1 Server后端 API负责处理所有业务逻辑用户管理、对话、RAG 检索、权限控制等。server/ ├── index.js ← 入口文件 ├── endpoints/ ← API 路由 ├── models/ ← 数据模型 ├── utils/ ← 工具函数 └── prisma/ ← 数据库 schema监听端口3001技术栈Node.js Express Prisma SQLite作用所有数据的核心处理中心2.2 Frontend前端界面用户直接看到和操作的部分。frontend/ ├── src/ │ ├── components/ ← UI 组件 │ ├── pages/ ← 页面 │ ├── hooks/ ← React Hooks │ └── utils/ ← 工具函数 ├── package.json └── vite.config.js监听端口3000技术栈React Vite Tailwind CSS作用提供用户操作界面2.3 Collector文档处理服务专门负责文档的解析和向量化处理是 AnythingLLM 设计最巧妙的地方。collector/ ├── index.js ← 入口文件 ├── src/ │ ├── crawler.ts ← 网页爬虫 │ ├── parser.ts ← 文档解析 │ └── splitter.ts ← 文本切割监听端口8888技术栈Node.js LangChain作用把上传的文档解析、切割、向量化不影响主服务性能三者关系图用户浏览器 │ │ 访问 :3000 ▼ ┌─────────────────┐ │ Frontend │ ← React 前端用户界面 │ Port: 3000 │ └────────┬────────┘ │ HTTP/WebSocket │ 调用 :3001 API ▼ ┌─────────────────┐ │ Server │ ← Express 后端核心逻辑 │ Port: 3001 │ └────────┬────────┘ │ 后台通信 │ 把文档发给 :8888 处理 ▼ ┌─────────────────┐ │ Collector │ ← 文档处理解析向量化 │ Port: 8888 │ └─────────────────┘三、开发环境准备3.1 安装 Bun推荐方式AnythingLLM 官方推荐用 Yarn但 Yarn 在 Windows 下有兼容性问题。本文推荐用Bun速度更快体验更好。什么是 BunBun 是一个比 Node.js 更快的 JavaScript 运行时同时也是一个包管理器。用它来安装依赖比 yarn 快 5-10 倍。安装 BunWindows打开 PowerShell运行irmbun.sh/install.ps1|iex验证安装bun--version如果显示版本号如1.3.13说明安装成功。3.2 确认 Node.js 版本AnythingLLM 要求 Node.js 18 以上node--version确保版本 ≥ 18.0.0。四、项目下载与初始化4.1 克隆项目git clone https://github.com/Mintplex-Labs/anything-llm.git cd anything-llm4.2 安装依赖三个服务需要分别安装依赖顺序执行第一步安装 Server 依赖cd server bun install cd..第二步安装 Collector 依赖cd collector bun install cd..第三步安装 Frontend 依赖cd frontend bun install cd..说明三个目录各有一份package.json必须分别进入安装不能只在根目录执行一次。4.3 初始化环境变量文件AnythingLLM 需要环境变量配置文件才能运行。执行bun run setup:envs这会自动复制以下文件原文件目标文件frontend/.env.examplefrontend/.envserver/.env.exampleserver/.env.developmentcollector/.env.examplecollector/.envdocker/.env.exampledocker/.env4.4 初始化数据库AnythingLLM 使用 Prisma 管理 SQLite 数据库bun run prisma:generate bun run prisma:migrate这一步会创建数据库表结构准备好数据存储。五、启动项目重要有先后顺序启动顺序很重要Server → Collector → Frontend5.1 先启动 Server后端 API打开一个 PowerShell 窗口cd D:\code\AnythingLLM\server bun run dev等待看到以下日志说明启动成功Primary server in HTTP mode listening on port 3001保持这个窗口不要关闭。5.2 再启动 Collector文档处理再打开一个新的 PowerShell 窗口cd D:\code\AnythingLLM\collector bun run dev等待看到以下日志Document processor app listening on port 8888保持这个窗口也不要关闭。5.3 最后启动 Frontend前端界面再打开第三个 PowerShell 窗口cd D:\code\AnythingLLM\frontend bun run dev等待看到VITE v4.5.3 ready in xxx ms ➜ Local: http://localhost:3000/5.4 打开浏览器访问三个服务都启动后打开浏览器访问http://localhost:3000就能看到 AnythingLLM 的界面了六、常见问题与解决方法问题一端口被占用错误表现Error: listen EADDRINUSE: address already in use :::3001解决方法# 查看哪个进程占用了端口netstat-ano|Select-String3001.*LISTENING# 杀掉对应进程把 PID 换成实际的Stop-Process-Id PID-Force问题二Prisma DLL 文件被锁住错误表现EPERM: operation not permitted, unlink query_engine-windows.dll.node解决方法先杀掉所有 Node 进程重新安装Stop-Process-Namenode-Force-ErrorAction SilentlyContinueStop-Process-Namebun-Force-ErrorAction SilentlyContinue cd server bunx prisma generate问题三浏览器访问 500 或 404解决方法确认三个服务都正常启动不是崩溃状态用浏览器隐身模式访问http://localhost:3000清除浏览器缓存后重试问题四找不到命令bun说明 Bun 没有正确安装或者没有添加到 PATH。重新安装irmbun.sh/install.ps1|iex七、日常开发启动流程总结每次开发时按这个流程操作# 1. 打开三个 PowerShell 窗口# 窗口 1 - 后端cd D:\code\anything-llm\server bun run dev# 等待看到 listening on port 3001# 窗口 2 - 文档处理cd D:\code\anything-llm\collector bun run dev# 等待看到 listening on port 8888# 窗口 3 - 前端cd D:\code\anything-llm\frontend bun run dev# 等待看到 ready in xxx ms访问 http://localhost:3000八、补充说明关于 Bun 和 YarnAnythingLLM 官方推荐使用 Yarn但本文用的是 Bun。两者区别YarnBun安装速度较慢1-2分钟很快几十秒Windows 兼容性部分脚本不兼容更好Lock 文件yarn.lockbun.lock如果你坚持用 Yarn可以把上面的bun install换成yarnbun run dev换成yarn dev其他流程完全一样。九、总结步骤操作端口1. 安装 Bunirm bun.sh/install.ps1 | iex—2. 安装 server 依赖cd server; bun install—3. 安装 collector 依赖cd collector; bun install—4. 安装 frontend 依赖cd frontend; bun install—5. 初始化环境变量bun run setup:envs—6. 初始化数据库bun run prisma:generate—7. 启动 servercd server; bun run dev30018. 启动 collectorcd collector; bun run dev88889. 启动 frontendcd frontend; bun run dev3000AnythingLLM 的三服务架构设计得很清晰理解了三个端口的关系就理解了整个项目的运行原理。参考资料AnythingLLM GitHub 仓库Bun 官方文档Prisma 官方文档作者张大鹏团队大鹏 AI 教育日期2026-05-08我是张大鹏10年全栈开发经验目前专注于AI全栈教育培训。关注我每周分享AI和全栈开发领域的深度实战经验。