如何使用Docker安装AnythingLLM

AnythingLLM 是一个有潜力的工具,特别适合需要在本地或私有环境中运行和管理大语言模型的用户。本文介绍了如何在Ubuntu服务器上使用Docker安装和运行AnythingLLM。

AnythingLLM 简介

AnythingLLM 是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,支持丰富的模型和文档管理功能,且部署方式灵活多样,可以帮助用户在本地或云端搭建个性化的聊天机器人系统。

AnythingLLM可以让您将任何文档、资源或内容转化为任何LLM在聊天过程中可以用作参考的上下文。该应用程序允许您选择使用哪个LLM或矢量数据库,并支持多用户管理和权限。您可以使用现成的商业LLM或流行的开源LLM和矢量数据库解决方案构建一个无需妥协的私人ChatGPT,您既可以在本地运行,也可以远程托管,并能够智能地与您提供的任何文档进行聊天。

AnythingLLM Start Up

AnythingLLM 主要功能

- 支持多用户,权限管理。 每个用户可以有自己的工作空间

- 聊天模式有对话模式和查询模式

- 支持使用中引用文档,同时可以自己上传文档

- 开放API支持自定义继承

- 自带LLM模型

技术原理概述

前端使用React开发用户界面,后端使用Node.js搭建服务和向量数据库交互,支持Docker部署。文档处理使用单独的Node服务。此单体存储库包含四个主要部分:

- 前端: 一个ViteJS + React前端,您可以运行它来轻松创建和管理LLM可以使用的所有内容。

- 服务器: 一个NodeJS Express服务器,用于处理所有交互并进行所有矢量数据库管理和LLM交互。

- Docker: Docker说明和构建过程+从源代码构建的信息。

- 收集器: 处理和解析来自UI的文档的NodeJS Express服务器。

运行环境要求

- Python 3.8+(用于数据收集)

- yarn/npm、Node16+(用于本地服务器)

- Ollama 或 OpenAI API 密钥(用于嵌入 + 聊天)

- 本地运行的向量存储实例或 Pinecone DB API 密钥

如何在Ubuntu上使用Docker安装AnythingLLM

安装Docker
apt update && apt install apt-transport-https ca-certificates curl software-properties-common -y

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt update && apt install docker-ce -y

systemctl enable docker --now
Docker 拉取镜像,启动容器

Docker启动后需要以非root用户启动这个容器,加入docker组并检查

usermod -aG docker administrator
groups administrator

启动容器

export STORAGE_LOCATION=/opt/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" \
ghcr.io/mintplex-labs/anything-llm@sha256:1d994f027b5519d4bc5e1299892e7d0be1405308f10d0350ecefc8e717d3154f
打开浏览器,访问AnythingLLM
打开 AnythingLLM 首页

选择一个语言模型使用,这个类似于一个对话框套壳,对话框后面的模型实际上还是其他AI模型,比如说选择OpenAI,那么后面就需要添加OpenAI的API和key,然后就可以在这个页面使用chatGPT聊天了。

设置LLM Preference

配置完毕,聊天界面如下

AnytingLLM 聊天窗口

AnythingLLM使用演示

AnythingLLM自带的只有嵌入模型,转录模型和矢量模型,没有自带的大语言模型,大语言模型需要外接API等使用,在使用时可以在设置处选择为每个模型选择不同的基础模型。

AnytingLLM Embedding Preference

使用下来,感觉这个框架比较方便的一点就是可以开多个workspace,每个workspace可以使用不同的语言模型等,同时可以多用户登录使用。

AnytingLLM Multi-User Mode Settings

创建多个 Workspace

AnythingLLM create multi workspace

切换语言模型

AnythingLLM 聊天模型选择