AnythingLLM [github.com/Mintplex-La… AI 应用,可以在桌面(Mac、Windows 和 Linux)运行,目标是使用商业或开源的 LLM 和向量数据库解决方案在本地 构建一个私人的 ChatGPT。且 AnythingLLM 不仅仅是一个简单的聊天机器人,还具备一些 RAG 和 Agent 能力,可以通过 Agent 执行更多功能,例如抓取网站信息、制作图表、总结文档等。
AnythingLLM 可以将各种类型的文档整合到不同的工作区,在聊天中引用这些文档内容,为不同的工作场景和不同文档提供了简单直接的工作分区能力。
在本篇文章中,我们将使用 AnythingLLM + GPUStack 来构建一个超简单好用的私人 ChatGPT + 本地知识库。
用 GPUStack 运行所需模型
在 GPUStack 上部署 AnythingLLM 的聊天模型和 Embedding 模型:
聊天模型:选择 llama3.1,由 Meta 训练的最新开源模型
Embedding 模型:选择 nomic-embed-text,上下文长度为8192,在短上下文任务和长上下文任务上都优于 OpenAI 的 ada-002 和 text-embedding-3-small 模型
编辑
模型部署完成后,还需要在 API Keys 中创建一个 API 秘钥,以供 AnythingLLM 在访问 GPUStack 部署的大模型 API 时进行认证。
安装与配置 AnythingLLM
AnythingLLM 提供了在桌面(Mac、Windows 和 Linux)运行的安装包,可以访问 anythingllm.com/download 下载。安装后打开 AnythingLLM,开始配置。
配置 LLM 供应商
首先配置聊天模型,搜索 OpenAI,选择 Generic OpenAI 填写连接 GPUStack 部署的模型:
编辑
保存后,继续下一步配置 Embedding 模型。
配置 Embedding 引擎供应商
AnythingLLM 提供了一个默认的小型 Embedding 模型 all-MiniLM-L6-v2 ,性能和上下文相对较弱,更强大的 Embedding 模型需要选择商业 LLM 服务或自行运行一些开源的 Embedding 模型,这里配置前面用 GPUStack 运行的 Embedding 模型 nomic-embed-text 。将 Embedding 引擎提供商设置为 Generic OpenAI ,填写相关配置:
编辑
接下来创建一个工作区,完成后就可以使用 AnythingLLM 了。
使用 AnythingLLM
对话问答
选择工作区,打开聊天会话窗口,与 LLM 进行对话问答:
编辑
抓取网站内容
点击工作区旁边的上传按钮,在 Fetch website 的输入框中输入要抓取的网站地址,抓取网站内容:
编辑
将抓取的网站内容发送到 Embedding 模型进行向量化,然后保存到向量数据库中:
编辑
验证抓取的网站内容:
编辑
嵌入文档
点击工作区旁边的上传按钮,点击上传文件,上传文档。将文档内容发送到 Embedding 模型进行向量化,然后保存到向量数据库中:
编辑
验证嵌入的文档内容:
编辑
总结
通过以上内容,我们已经介绍了如何使用 AnythingLLM + GPUStack 来构建一个超简单好用的私人 ChatGPT + 本地知识库。