@andy2015
2025-01-15T21:33:17.000000Z
字数 3812
阅读 914
LLM
从原理上看,构建专属知识库可分为三个部分,一是通过LLM处理自然语言;二是嵌入模型把复杂的数据简化,转化成易于处理的格式;三是向量数据库专门存储和管理那些转化后的数据。
AnythingLLM是一个全栈应用程序,您可以使用现成的商业大语言模型或流行的开源大语言模型,再结合向量数据库解决方案构建一个私有ChatGPT,不再受制于人:您可以本地运行,也可以远程托管,并能够与您提供的任何文档智能聊天。
AnythingLLM将您的文档划分为称为workspaces
(工作区)的对象。工作区的功能类似于线程,同时增加了文档的容器化,。工作区可以共享文档,但工作区之间的内容不会互相干扰或污染,因此您可以保持每个工作区的上下文清晰。
AnythingLLM的一些酷炫特性
聊天
和查询
。聊天模式保留先前的对话记录。查询模式则是是针对您的文档做简单问答支持的LLM:
支持的嵌入模型:
支持的转录模型:
支持的向量数据库:
这个单库由三个主要部分组成:
frontend
: 一个 viteJS + React 前端,您可以运行它来轻松创建和管理LLM可以使用的所有内容。server
: 一个 NodeJS express 服务器,用于处理所有交互并进行所有向量数据库管理和 LLM 交互。docker
: Docker 指令和构建过程 + 从源代码构建的信息。collector
: NodeJS express 服务器,用于从UI处理和解析文档。Requires Docker v18.03+ on Win/Mac and 20.10+ on Linux/Ubuntu for host.docker.internal to resolve!
安装Docker
* 安装需要的软件包,yum-util 提供yum-config-manager功能
yum install -y yum-utils
* 设置docker软件的yum阿里云
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
* 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
* 安装Docker
yum install docker-ce docker-ce-cli containerd.io
* 或者安装指定版本
yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.io
mkdir -p /etc/docker
cat >> /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
* 启动Docker
systemctl start docker
* 设置为开机自启动
systemctl enable docker
* 查看 docker 状态
systemctl status docker
部署AnythingLLM
docker pull mintplexlabs/anythingllm
export STORAGE_LOCATION=/data/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/storage/anythingllm.db" && \
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
访问地址:https://anythingllm.bigdata.btyy.com/ Admin@024
AnythingLLM初始化配置
1)LLM选择
选择 Ollama,填入 Ollama 的 http://host.docker.internal:11434 端口,然后选择下载好的Ollama模型。
docker exec -it ollama ollama run `Ollama模型库`
eg.
docker exec -it ollama ollama run llama2
docker exec -it ollama ollama pull llama2-chinese
docker exec -it ollama ollama pull qwen2.5
docker exec -it ollama ollama pull llama2-chinese
docker exec -it ollama ollama run qwen2.5
docker exec -it ollama ollama run qwen2.5:13b
docker exec -it ollama ollama pull llama2-chinese:b
docker exec -it ollama ollama run qwen2.5:32b
docker exec -it ollama ollama run qwen2.5:14b
# 嵌入式模型
docker exec -it ollama ollama pull shaw/dmeta-embedding-zh
docker exec -it ollama ollama pull shaw/dmeta-embedding-zh-small
docker exec -it ollama ollama pull nomic-embed-text
docker exec -it ollama ollama pull all-minilm
docker exec -it ollama ollama pull mxbai-embed-large
docker exec -it ollama ollama pull snowflake-arctic-embed
docker exec -it ollama ollama pull rjmalagon/gte-qwen2-7b-instruct:f16
ps aux | sort -nr -k 3 按照 CPU 使用率降序排列显示进程信息
2)Embedding 和向量数据库配置
可以选择AnythingLLM 自带的 AnythingLLMEmbedder,以及默认使用内置的向量数据库 LanceDB