@andy2015
2025-01-15T21:33:17.000000Z
字数 3812
阅读 1093
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* 安装Dockeryum install docker-ce docker-ce-cli containerd.io* 或者安装指定版本yum install docker-ce-20.10.12 docker-ce-cli-20.10.12 containerd.iomkdir -p /etc/dockercat >> /etc/docker/daemon.json << EOF{"registry-mirrors": ["https://docker.m.daocloud.io"]}EOF* 启动Dockersystemctl start docker* 设置为开机自启动systemctl enable docker* 查看 docker 状态systemctl status docker
部署AnythingLLM
docker pull mintplexlabs/anythingllmexport 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 llama2docker exec -it ollama ollama pull llama2-chinesedocker exec -it ollama ollama pull qwen2.5docker exec -it ollama ollama pull llama2-chinesedocker exec -it ollama ollama run qwen2.5docker exec -it ollama ollama run qwen2.5:13bdocker exec -it ollama ollama pull llama2-chinese:bdocker exec -it ollama ollama run qwen2.5:32bdocker exec -it ollama ollama run qwen2.5:14b# 嵌入式模型docker exec -it ollama ollama pull shaw/dmeta-embedding-zhdocker exec -it ollama ollama pull shaw/dmeta-embedding-zh-smalldocker exec -it ollama ollama pull nomic-embed-textdocker exec -it ollama ollama pull all-minilmdocker exec -it ollama ollama pull mxbai-embed-largedocker exec -it ollama ollama pull snowflake-arctic-embeddocker exec -it ollama ollama pull rjmalagon/gte-qwen2-7b-instruct:f16
ps aux | sort -nr -k 3 按照 CPU 使用率降序排列显示进程信息
2)Embedding 和向量数据库配置
可以选择AnythingLLM 自带的 AnythingLLMEmbedder,以及默认使用内置的向量数据库 LanceDB