AnythingLLM+GPUStack打造专属的ChatGPT+知识库

0 阅读3分钟

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,在短上下文任务和长上下文任务上都优于 OpenAIada-002text-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 + 本地知识库