打造本地GPT专业领域知识库AnythingLLM+Ollama

        如果你觉得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与内存。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/621547.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++17新特性 结构化绑定

一、Python中的相似功能 熟悉python的应该对下面的代码很熟悉 def return_multiple_values():return 11, 7x, y return_multiple_values()函数返回一个元组,元组自动分配给了x和y。 二、C11中的元组 c11中就存在类似python元组的概念了: std::tupl…

高速电流反馈运放总结

目录 前言 基础架构 CFB运算放大器拓扑结构的进步 前言 最近项目发现有震荡,发现是电流反馈型运放导致,所以对电流运放的知识做了全面的复习。 基础架构 现在,我们将详细考察高速运算放大器中非常流行的电流反馈(CFB)运算放大器拓扑结 构…

黑盒测试中的边界值分析

黑盒测试是一种基于需求和规格的测试方法,它主要关注软件系统输出的正确性和完整性,而不考虑内部代码的实现方式。在黑盒测试中,边界值分析是一种重要的测试技术,它可以帮助测试人员有效地发现输入和输出的问题。本文将从什么是边…

【数据结构】二叉排序树(查找+插入+删除+效率分析)完整代码+解析

3.1 二叉排序树 3.1.1 定义 二叉排序树的定义 又称二叉查找树&#xff08;BST&#xff0c;Binary Search Tree&#xff09; 二叉排序树是具有以下性质的二叉树&#xff1a; 左子树结点值<根结点值<右子树结点值 进行中序遍历&#xff0c;可以得到一个递增的有序序列。 3…

无需公网IP、无需云服务器,异地组网实现远程直连NAS、游戏联机

手机图片、视频太多&#xff0c;存储空间不够用怎么办?出门在外无法直连家中NAS&#xff0c;远程访问NAS速度慢&#xff1f;自建私有云、多媒体服务器&#xff0c;如何多人远程共享媒体资源&#xff1f;幻兽帕鲁、我的世界、泰拉瑞亚…局域网游戏&#xff0c;想远程多人联机&a…

Golang面向对象编程(二)

文章目录 封装基本介绍封装的实现工厂函数 继承基本介绍继承的实现字段和方法访问细节多继承 封装 基本介绍 基本介绍 封装&#xff08;Encapsulation&#xff09;是面向对象编程&#xff08;OOP&#xff09;中的一种重要概念&#xff0c;封装通过将数据和相关的方法组合在一起…

RobbitMQ基本消息队列的消息接收

1.先给工程引入依赖 父工程有了子工程就不用导了 <!--AMQP依赖&#xff0c;包含RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2.配置yml…

基于大数据+Hadoop的豆瓣电子图书推荐系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容&#xff1a;SpringBoot、Vue、SSM、HLM…

linux学习:多媒体开发库SDL+视频、音频、事件子系统+处理yuv视频源

目录 编译和移植 视频子系统 视频子系统产生图像的步骤 api 初始化 SDL 的相关子系统 使用指定的宽、高和色深来创建一个视窗 surface 使用 fmt 指定的格式创建一个像素点​编辑 将 dst 上的矩形 dstrect 填充为单色 color​编辑 将 src 快速叠加到 dst 上​编辑 更新…

sqli-labs 第十七关

目录 找注入点&#xff1a; 源码分析&#xff1a; 测试&#xff1a; 奇怪现象&#xff1a; &#xff08;1&#xff09;&#xff1a;当我们输入的密码为字符进行注入时。 &#xff08;2&#xff09;&#xff1a;当我们输入的密码为整数时。 产生原因&#xff1a; 解决方法…

Docker:docker在项目中常用的一些命令

简介   Docker 是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其依赖项打包到一个可移植的容器中&#xff0c;并发布到任何安装了 Docker 引擎的机器上。这些容器是轻量级的&#xff0c;包含了应用程序运行所需的所有东西&#xff0c;如代码、系统库、系统工具…

SpringBoot集成Redis环境搭建及配置详解

前言 Redis作为当前最火的NoSQL数据库&#xff0c;支持很多语言客户端操作Redis。 而SpringBoot作为java当前最火的开发框架&#xff0c;提供了Spring-data-redis框架实现对Redis的各种操作。 在springboot1.5.x版本的默认的Redis客户端都是Jedis实现的&#xff0c;springboot…

大模型时代下两种few shot高效文本分类方法

介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文&#xff0c;适用场景为few shot。两种方法分别是setfit和fastfit&#xff0c;都提供了python的包使用方便。 论文1&#xff1a;Efficient Few-Shot Learning Without Prompts 题目&#xff1a;无需提示的高效少…

浪潮信息企业级存储逆势增长 市场份额位列中国前二

2023年&#xff0c;中国企业级存储市场竞争激烈&#xff0c;在挑战重重之下&#xff0c;浪潮信息仍然实现逆势增长&#xff0c;销售额增幅达4.7%&#xff0c;市场份额相比2022年扩大0.6%&#xff0c;位列中国前二。另外&#xff0c;在高端和全闪存阵列细分市场&#xff0c;浪潮…

Vue3实战Easy云盘(三):文件删除+文件移动+目录导航+上传优化/文件过滤/搜索

一、文件删除 &#xff08;1&#xff09;选中了之后才可以删除&#xff0c;没有选中时就显示暗调删除按钮 &#xff08;2&#xff09;实现选中高亮功能 &#xff08;3&#xff09;单个删除 &#xff08;4&#xff09;批量删除 Main.vue中 <!-- 按钮3 --><!-- 如果sel…

鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)

快锁上下篇 鸿蒙内核实现了Futex&#xff0c;系列篇将用两篇来介绍快锁&#xff0c;主要两个原因: 网上介绍Futex的文章很少&#xff0c;全面深入内核介绍的就更少&#xff0c;所以来一次详细整理和挖透。涉及用户态和内核态打配合&#xff0c;共同作用&#xff0c;既要说用户…

【Linux】文件描述符和重定向

目录 一、回顾C文件 二、系统文件I/O 2.1 系统调用 open 2.2 标志位传参 2.3 系统调用 write 2.4 文件描述符fd 2.5 struct file 2.6 fd的分配规则 2.7 重定向 2.7.1 基本原理&#xff1a; 2.7.2 系统调用 dup2 2.8 标准错误 一、回顾C文件 文件 内容 属性 对…

3分钟,学会一个 Lambda 小知识之【流API】

之前给大家介绍的 Lambda 小知识还记得吗&#xff1f;今天再来给大家介绍&#xff0c; 流API 的相关知识要点。 流API Stream是Java8中处理集合的关键抽象概念&#xff0c;它可以指定你对集合的&#xff0c;可以执行查找、过滤和映射等数据操作。 Stream 使用一种类似用 SQ…

资料如何打印更省钱

在日常工作和学习中&#xff0c;我们经常需要打印各种资料。然而&#xff0c;随着打印成本的不断提高&#xff0c;如何更省钱地打印资料成为了大家关注的焦点。今天&#xff0c;就为大家分享一些资料打印的省钱技巧&#xff0c;并推荐一个省钱又省心的打印平台。 首先&#xff…

冥想的时候怎么专注自己

冥想的时候怎么专注自己&#xff1f;我国传统的打坐养生功法&#xff0c;实际最早可追溯到五千年前的黄帝时代。   每天投资两个半小时的打坐&#xff0c;有上千年之久的功效。因为当你们打坐进入永恒时&#xff0c;时间停止了。这不只是两个半小时&#xff0c;而是百千万亿年…