AnythingLLM:34K Star!一键上传文件轻松打造个人知识库,构建只属于你的AI助手,附详细部署教程

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 AnythingLLM 这个能够将任何文档、资源转换为 AI 知识库,构建私人 AI 助手的强大应用。

🚀 快速阅读

AnythingLLM 是一个全栈应用程序,能够将任何文档、资源转换为上下文,以便大语言模型(LLM)在聊天期间作为参考使用。

  1. 核心功能:支持多用户管理、多种 LLM 和向量数据库,提供智能聊天功能。
  2. 技术原理:通过工作区隔离不同内容,确保上下文清晰,并支持本地和云部署。

AnythingLLM 是什么

AnythingLLM 是一个全栈应用程序,旨在将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便大语言模型(LLM)在聊天期间作为参考使用。该应用程序允许用户选择使用哪个 LLM 或向量数据库,并支持多用户管理和权限设置。

通过 AnythingLLM,用户可以轻松构建一个私有 ChatGPT,不再受制于第三方平台。您可以本地运行,也可以远程托管,并能够与您提供的任何文档智能聊天。

AnythingLLM 的主要功能

  • 多用户实例支持和权限管理:支持多个用户同时使用,管理员可以设置不同用户的权限。
  • 工作区内的智能体 Agent:Agent 可以浏览网页、运行代码等,帮助用户更高效地处理任务。
  • 可嵌入聊天窗口:为您的网站定制的可嵌入聊天窗口,方便集成到现有系统中。
  • 多种文档类型支持:支持 PDF、TXT、DOCX 等多种文档格式。
  • 文档管理:通过简单的用户界面管理向量数据库中的文档。
  • 两种对话模式:提供"聊天"和"查询"两种模式,满足不同的需求。
  • 引用文档内容:聊天中会自动引用相关文档的内容,确保信息准确。
  • 高效处理超大文档:只需要一次嵌入即可处理超大文档,节省时间和成本。
  • 开发者 API:提供全套的开发人员 API,便于自定义集成。

AnythingLLM 的技术原理

  • 前端:基于 ViteJS + React 构建,提供直观的用户界面,方便用户创建和管理 LLM 可使用的所有内容。
  • 后端:基于 NodeJS Express 服务器,处理所有交互并进行向量数据库管理和 LLM 交互。
  • Docker:提供 Docker 指令和构建过程,方便用户从源代码构建和部署。
  • 文档收集器:基于 NodeJS Express 服务器,负责从 UI 处理和解析文档。

AnythingLLM 的最小要求

为了确保 AnythingLLM 的顺利运行,建议满足以下最低要求:

  • 内存:至少 2GB RAM
  • 磁盘存储:推荐 10GB 以上,具体取决于存储的数据量(文档、向量、模型等)
  • 软件 :需要安装 docker,以及 yarnnode(用于本地开发)
  • LLM 访问:需要访问本地或远程运行的语言模型

如何运行 AnythingLLM

1. 设置开发环境

  1. 安装依赖 :在仓库根目录下运行 yarn setup,填充每个应用程序部分所需的 .env 文件。
  2. 启动服务器 :运行 yarn dev:server 启动本地服务器。
  3. 启动前端 :运行 yarn dev:frontend 启动本地前端。
  4. 启动文档收集器 :运行 yarn dev:collector 启动文档收集器。

2. 自托管部署

Mintplex Labs 提供了多种部署方法,包括 Docker、AWS、GCP、Digital Ocean 和 Render.com。下面选择 Docker 作为部署方法进行详细介绍。

推荐使用 Docker 进行部署

为了确保 AnythingLLM 的最佳性能和稳定性,推荐使用 Docker 化部署。以下是详细的步骤:

1. 拉取最新镜像

首先,从 Docker Hub 拉取最新的 AnythingLLM 镜像:

shell 复制代码
docker pull mintplexlabs/anythingllm

2. 持久化存储

为了确保数据在容器重启后不会丢失,建议将容器的存储卷挂载到主机的文件夹中。这样可以在更新镜像时保留现有数据。

Linux/MacOS

shell 复制代码
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 复制代码
# 在 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,可以使用以下配置文件:

yaml 复制代码
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 离线

如果你在远程机器(如 EC2)上运行 Docker 容器,并且无法通过 http://localhost:3001 访问 API,请确保在 frontend/.env.production 中设置正确的 API 基础 URL。例如,如果 Docker 实例的 IP 地址为 192.186.1.222,则应将 VITE_API_BASE 设置为 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 常见问题 进行排查。

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关推荐
拓端研究室19 分钟前
【专题】2025年我国机器人产业发展形势展望:人形机器人量产及商业化关键挑战报告汇总PDF洞察(附原数据表)
大数据·人工智能
XY笔记25 分钟前
如何使用deepseek开发一个翻译API
人工智能·openai·翻译·deepseek
LeeZhao@42 分钟前
【AIGC魔童】DeepSeek v3推理部署:华为昇腾NPU/TRT-LLM
人工智能·华为·语言模型·自然语言处理·面试·aigc
图王大胜43 分钟前
模型 反脆弱
人工智能·团队管理·认知·决策·战略规划·企业发展
瑞云服务云1 小时前
韶音科技:消费电子行业售后服务实现数字化转型,重塑客户服务体系
大数据·人工智能·科技·云计算·售后服务管理系统
诗酒当趁年华1 小时前
快速建立私有化知识库(私有化训练DeepSeek,通过ollama方式)
人工智能
天天代码码天天2 小时前
C# OpenCvSharp 部署MOWA:多合一图像扭曲模型
开发语言·人工智能·神经网络·计算机视觉·c#·mowa多合一图像扭曲模型
说私域2 小时前
基于知乎平台的“开源AI智能名片2 + 1链动模式S2B2C商城小程序”引流策略研究
人工智能·小程序
取个名字真难呐2 小时前
torch_unbind&torch_chunk
人工智能·pytorch·python
dreamer232 小时前
ChatGPT提问技巧:行业热门应用提示词案例-文案写作
人工智能·chatgpt·prompt·提示词