AnythingLLM 是一个全栈应用程序,可以使用商用或开源的LLM/嵌入器/语义向量数据库模型,支持丰富的模型和文档管理功能,且部署方式灵活多样,可以帮助用户在本地或云端搭建个性化的聊天机器人系统。
AnythingLLM可以让您将任何文档、资源或内容转化为任何LLM在聊天过程中可以用作参考的上下文。该应用程序允许您选择使用哪个LLM或矢量数据库,并支持多用户管理和权限。您可以使用现成的商业LLM或流行的开源LLM和矢量数据库解决方案构建一个无需妥协的私人ChatGPT,您既可以在本地运行,也可以远程托管,并能够智能地与您提供的任何文档进行聊天。
- 支持多用户,权限管理。 每个用户可以有自己的工作空间
- 聊天模式有对话模式和查询模式
- 支持使用中引用文档,同时可以自己上传文档
- 开放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 密钥
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启动后需要以非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
选择一个语言模型使用,这个类似于一个对话框套壳,对话框后面的模型实际上还是其他AI模型,比如说选择OpenAI,那么后面就需要添加OpenAI的API和key,然后就可以在这个页面使用chatGPT聊天了。
配置完毕,聊天界面如下
AnythingLLM自带的只有嵌入模型,转录模型和矢量模型,没有自带的大语言模型,大语言模型需要外接API等使用,在使用时可以在设置处选择为每个模型选择不同的基础模型。
使用下来,感觉这个框架比较方便的一点就是可以开多个workspace,每个workspace可以使用不同的语言模型等,同时可以多用户登录使用。
创建多个 Workspace
切换语言模型