大模型应用_PrivateGPT

https://github.com/imartinez/privateGPT

1 功能

  • 整体功能,想解决什么问题
    搭建完整的 RAG 系统,与 FastGPT相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大模型和向量库。适用于保密级别比较高,或者完全不想使用收费模型和服务的情况。
  • 当前解决了什么问题,哪些问题解决不了
    PrivateGPT 提供了整体转换、入库、存储、匹配、合成答案,图形界面的解决方案,并提供图形界面用于检索操作。
    RAG 所面对的问题,比如不够准确,多文档组合生成答案这些问题,需要进一步细化工具,似乎不能通过架构来解决。另外,由于多数本地部署的模型效果与 ChatGPT 差距比较大,这里只是看到了本地部署的架构和实现的可能性,部署后用户是否能接受其效果,还待验证。
  • 提供哪些功能点,其中哪些是刚需
    核心功能是通过简单的操作,实现对本地文件的检索和问答,功能相对单一。
  • 用户使用难度,操作逻辑是否过于复杂
    整体工具链使用了poetry构建,安装相对方便。但由于包含了深度学习库,肯定比一般项目复杂很多,安装时间长,占空间大。
    Dockerfile如果写得有一点问题(频繁更新,难免有错),就会面临至少部分内容重新下载打包的问题。另外,由于可插拔的选项比较多,还需要用户进一步设置。

2 技术栈

  • 技术栈是什么:
    • PrivateGPT 不是一个用大量代码实现具体功能的项目,相反,它尽量使用现有工具,主要提供架构,组织现有方法,以实现功能。
  • 现有底层工具消化了哪些常用功能
    • llamaindex 文档的转换和管理
    • pytorch & cuda 本地支持深度学习模型,因此image也较大
    • sentence-transformers 文本匹配
    • FastAPI 后端框架
    • Chroma 向量数据库
    • Qdrant 向量数据库
    • Gradio 界面由Gradio实现,有效降低了程序的复杂度
    • fern 管理文档
    • 使用 poetry 管理项目
  • 代码分析(使用cloc工具统计)
    • 代码 3.2M,主要为 Python 代码,共 2733 行
    • local 版本 image 大小为 6.34G,external 版本为 5.68G
    • 核心代码在:private_gpt/private_gpt/ 目录下
  • 使用场景
    • 完全本地化的知识库

3 商业模式

相对简单的项目,代码主要在架构和调用其它工具,依赖 llama-index,并实现了扩展,如支持几个主流向量数库,后面可能接入更多模型和向量库。可作为一种集成的方案,或者支持各种组件插拔的 Hub 使用。

4 使用

4.1 安装
  • 下载项目
$ git clone https://github.com/imartinez/privateGPT
$ cd privateGPT
  • 修改配置文件
vi settings.yaml

建议第一次运行时将 llm 设置为 openai,整体调通后,再使用本地 llm 下载模型;否则太过复杂,不容易定位问题。

  • 修改 Dockerfile.local(我build时报错)
RUN addgroup worker
RUN adduser --ingroup worker --system worker
  • 构建 local 环境
$ docker build . -f Dockerfile.local --build-arg HTTP_PROXY=xxx --build-arg HTTPS_PROXY=xxx -t private-gpt
  • 细节请见文档:https://docs.privategpt.dev/installation
4.2 运行

如果直接执行失败,建议以root用户启动bash进行调试

$ docker run --rm -p 8080:8080 -e OPENAI_API_KEY=xxx -e HTTP_PROXY=xxx -e HTTPS_PROXY=xxx --entrypoint bash -u 0 -it private-gpt
$ .venv/bin/python -m private_gpt

在localhost 8080 端口可打开 gradio 应用

4.3 使用感受

gradio 主要用作 demo,实现功能比较简单,比如上传文档后无法删除,文本切块大小和模型的对应关系需要提前设置。

5 资源

文档
全面了解 PrivateGPT:中文技巧和功能实测

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SWPU NSS新生赛

😋大家好,我是YAy_17,是一枚爱好网安的小白,正在自学ing。 本人水平有限,欢迎各位大佬指点,一起学习💗,一起进步⭐️。 ⭐️此后如竟没有炬火,我便是唯一的光。⭐️ 最近…

万界星空科技AI低代码云MES系统

在企业生产管理过程中,从市场、生产现场到产品交付,生产制造行业都面临着诸多挑战,比如: 订单排产难度大:订单混乱,常漏排产、错排产;产能不明晰,无法承诺交期,常丢单&a…

流程控制之条件判断

目录 流程控制之条件判断 2.1.if语句语法 2.1.1单分支结构 2.1.2双分支结构 2.1.3多分支结构 2.2.案例 例一: 例2: 例3: 例4: 例5: 例6: 例7: 例8: 例9: 2.3.case多条件判断 2.3.1.格式 2.3.2.执行过程 例10: 流程控制之条件判断 2.1.if语句语法 2.1.1单分…

ArcGIS for Android开发引入arcgis100.15.2

最后再点击同步即可!!!

oracle aq java jms使用(数据类型为XMLTYPE)

记录一次冷门技术oracle aq的使用 版本 oracle 11g 创建用户 -- 创建用户 create user testaq identified by 123456; grant connect, resource to testaq;-- 创建aq所需要的权限 grant execute on dbms_aq to testaq; grant execute on dbms_aqadm to testaq; begindbms_a…

基于Spring Boot、Mybatis、Redis和Layui的企业电子招投标系统源码实现与立项流程

招投标管理系统是一款适用于招标代理、政府采购、企业采购和工程交易等领域的企业级应用平台。该平台以项目为主线,从项目立项到项目归档,实现了全流程的高效沟通和协作。通过该平台,用户可以实时共享项目数据信息,实现规范化管理…

【数据结构入门精讲 | 第一篇】打开数据结构之门

数据结构与算法是计算机科学中的核心概念,也与现实生活如算法岗息息相关。鉴于全网数据结构文章良莠不齐且集成度不高,故开设本专栏,为初学者提供指引。 目录 基本概念数据结构为何面世算法基本数据类型抽象数据类型使用抽象数据类型的好处 数…

微信小程序:模态框(弹窗)的实现

效果 wxml <!--新增&#xff08;点击按钮&#xff09;--> <image classimg src"{{add}}" bindtapadd_mode></image> <!-- 弹窗 --> <view class"modal" wx:if"{{showModal}}"><view class"modal-conten…

消息队列(MQ)

对于 MQ 来说&#xff0c;不管是 RocketMQ、Kafka 还是其他消息队列&#xff0c;它们的本质都是&#xff1a;一发一存一消费。下面我们以这个本质作为根&#xff0c;一起由浅入深地聊聊 MQ。 01 从 MQ 的本质说起 将 MQ 掰开了揉碎了来看&#xff0c;都是「一发一存一消费」&…

java实现冒泡排序及其动图演示

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。重复这个过程直到整个数列都是按照从小到大的顺序排列。 具体步骤如下&#xff1a; 比较相邻的两个元素&#xff0c;如果前…

世界5G大会

会议名称:世界 5G 大会 时间:2023 年 12 月 5 日-12 月 8 日 地点:河南郑州 一、会议简介 世界 5G 大会,是由国务院批准,国家发展改革委、科技部、工 信部与地方政府共同主办,未来移动通信论坛联合属地主管厅局联合 承办,邀请全球友好伙伴共同打造的全球首个 5G 领域…

Spring Boot 3 整合 WebSocket (STOMP协议) 和 Vue 3 实现实时通信

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

家政服务小程序预约上门,让服务更便捷

随着人们生活节奏的加快&#xff0c;家政服务行业越来越受到人们的欢迎。为了满足市场需求&#xff0c;提高服务质量&#xff0c;家政公司需要开发一款预约上门的家政服务小程序。本文将详细介绍如何制作一个预约上门的家政服务小程序。 一、登录乔拓云网后台 首先&#xff0c…

基于vue实现的疫情数据可视化分析及预测系统-计算机毕业设计推荐django

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Appium自动化常用adb操作封装

一、前置说明 在Appium自动化中&#xff0c;经常需要使用adb命令与设备进行交互&#xff0c;所以有必要把常用的adb操作封装成一个类 二、代码实现 import os import platform import re import subprocessfrom common import path from common.exception import AndroidSDK…

语音识别功能测试:90%问题,可以通过技术解决

现在市面上的智能电子产品千千万&#xff0c;为了达到人们使用更加方便的目的&#xff0c;很多智能产品都开发了语音识别功能&#xff0c;用来语音唤醒进行交互&#xff1b;另外&#xff0c;各大公司也开发出来了各种智能语音机器人&#xff0c;比如小米公司的“小爱”&#xf…

DHCP—动态主机配置协议

动态主机配置协议DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是RFC 1541&#xff08;已被RFC 2131取代&#xff09;定义的标准协议&#xff0c;该协议允许服务器向客户端动态分配IP地址和配置信息。 DHCP协议支持C/S&#x…

外汇天眼:Coinbase国际交易所将启动现货市场

Coinbase宣布了Coinbase国际交易所扩张的下一阶段——退出符合条件客户的非美国现货市场。 这一最新发展旨在满足Coinbase全球用户群体的独特需求和需求&#xff0c;同时强化其扩大国际访问可信产品和服务的战略使命。 Coinbase国际交易所现货交易的推出和扩展将分阶段进行。1…

vite+vue3+electron搭建项目

编辑器使用vscode&#xff0c;打开一个空文件夹 第一步 初始化vite项目 初始化vite项目&#xff0c;命令 npm init vite 第二步 下载依赖 进入新建的项目&#xff0c;下载依赖&#xff0c;命令 cd vite-projec npm i第三步 使用cnpm下载 electron依赖 新建一个终端&#…

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之&#xff1a;list 语法&#xff1a;[元素&#xff0c;元素&#xff0c;....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…