如果你觉得openai的gpt没有隐私,或者需要离线使用gpt,还是打造专业领域知识,可以借用AnythingLLM+Ollama轻松实现本地GPT.
AnythingLLM+Ollama 实现本地GPT步聚:
1 下载 AnythingLLM软件
AnythingLLM官网地址:
AnythingLLM | The ultimate AI business intelligence tool
2 下载 Ollama
Ollama官网下载:
Ollama
下载好的两个软件如下图:
3 安装AnythingLLM
和安装其它软件一样双击安装即可,如下图:
安装成功后,我们接着再安装Ollama。
4 安装Ollama
和安装其它软件一样双击安装即可,安装成功后右下角有个运行图标如下图:
配置 Ollama
1 配置Ollama模型数据路径
模型数据默认是保存在C盘的,由于模型数据特别大,所以这里一定要记住配置模型数据的路径,只里设置系统变量OLLAMA_MODELS的值为模型数据保存路径,如下图:
2 选择配置主模型
这里考虑到我们平时主要处理中文相关资料,选择阿里的千问模型,结合当前环境笔记是16G内存,我们这里选择千问7b(占用8G内存):
运行选择的模型
ollama run qwen:7b
首次运行会下载该模型,如下图:
下载完成,如下图:
3 选择配置嵌入模型
嵌入模型并不直接生产数据,主要用于把本地知识doc.pdf txt等文档保存在向量数据库时用到。
这里我们选择 nomic-embed-text ,它是具有大型令牌上下文窗口的高性能开放嵌入模型。
ollama pull nomic-embed-text
5 配置AnythingLLM
打开AnythingLLM 进行设置项,如下图:
1 配置主模型
这里选择上面Ollama下载的千问模型
2 配置嵌入模型
这里选择配置与上面安装的模型nomic-embed-text一致,如下图:
配置嵌入模型在处理上传知识文件保存到向量数据时两个关键参数:
- 分块大小 (这是单个向量中允许存在的最大字符数量。例如,如果设置为8192,意味着每个文本块或向量最多包含8192个字符。)
- 文本块重叠度(这是指在两个相邻文本块切分过程中允许的最大字符重叠量。设置重叠可以帮助保持信息的连续性,避免因严格切分导致的语义断裂,尤其是在信息的关键边界附近。)
注意:这两个参数仅适用于新嵌入的文档,对已存在的文档没有影响。
3 配置使用向量数据库
设置使用向量数据库,没有特别需求使用默认即可,如下图:
说明:LanceDB是一个开源的无服务器向量数据库,专为处理人工智能应用中的大规模多模态数据(如文本、图像、视频、点云等)而设计。它简化了高维向量的检索、过滤和管理过程,无需用户管理和维护服务器基础设施,从而降低了运维成本并提高了开发效率。
配置完成,如下图:
6 开始使用本地GPT(使用AnythingLLM)
现在我们开始使用AnythingLLM:
1 创建空间
AnythingLLM 有一个很好的概念工作空间,有点像我们平时用eplise创建项目一样,一个项目一个空间,不同的空间还可以单独配置,这样可以很好的划分不同类类型的专业领域。
保存空间名称后,即可正常提问
开始问答:
因为是离线,而本地又没有显卡,所以回答问题时并不是很快,而且CPU会拉升,如下图:
ollama 服务CPU占用50%,内存12G,消耗挺大的。
2 可选择单独配置参数
为当前空间单独配置参数(默认使用设置中的配置)
配置聊天模型,这个配置很重要,如果只是针对知识库直接设置成查询模型即可,如下图:
3 知识库使用
上传文档形成专业知识库,如下图:
选择文档上传,如下图:
或者输入网址直接获取内容
使用查询模型提问,直接使用知识库如下图:
小结,普通的笔记本电脑在使用查询模式会比聊天模型更快,并且可以节约CPU与内存。