GPT应用_PrivateGPT

news2024/11/10 15:12:11

项目地址:https://github.com/imartinez/privateGPT

在这里插入图片描述

1 功能

1.1 整体功能,想解决什么问题

搭建完整的 RAG 系统,与 FastGPT 相比,界面比较简单。但是底层支持比较丰富,可用于知识库的完全本地部署,包含大模型和向量库。适用于保密级别比较高,或者完全不想使用收费模型和服务的情况。

1.2 当前解决了什么问题,哪些问题解决不了

PrivateGPT 提供了整体转换、入库、存储、匹配、合成答案,图形界面的解决方案,并提供图形界面用于检索操作

RAG 所面对的问题,比如不够准确,多文档组合生成答案这些问题,需要进一步细化工具,似乎不能通过架构来解决。另外,由于多数本地部署的模型效果与 ChatGPT 差距比较大,这里只是看到了本地部署的架构和实现的可能性,部署后用户是否能接受其效果,还待验证。

1.3 提供哪些功能点,其中哪些是刚需

核心功能是通过简单的操作,实现对本地文件的检索和问答,功能相对单一

1.4 用户使用难度,操作逻辑是否过于复杂

整体工具链使用了 poetry 构建,安装相对方便。但由于包含了深度学习库,肯定比一般项目复杂很多,安装时间长,占空间大

Dockerfile 如果写得有一点问题(频繁更新,难免有错),就会面临至少部分内容重新下载打包的问题。另外,由于可插拔的选项比较多,还需要用户进一步设置

2 技术栈

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

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.coloradmin.cn/o/1398929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何选择工程师职称申报的专业?

选择适合自己的职称评定专业,需从官方申报范围、公示名单中寻找答案,并选择适合自己的评审方式。需具备一定的工作年限、学历要求和充分证明自己能力水平的材料,方可获得职称资格。 在职称评定之路上,选择一个适合自己的专业&…

论文阅读笔记AI篇 —— Transformer模型理论+实战 (四)

论文阅读笔记AI篇 —— Transformer模型理论实战 (四) 一、理论1.1 理论研读1.2 什么是AI Agent? 二、实战2.1 先导知识2.1.1 tensor的创建与使用2.1.2 PyTorch的模块2.1.2.1 torch.nn.Module类的继承与使用2.1.2.2 torch.nn.Linear类 2.2 Transformer代…

设计模式--组合模式

缘起 某日,小明公司最近接到一个办公管理系统的项目,并且在每个城市都有分部。这属于是很常见的OA系统,只要前期将需求分析完善好,中后期开发维护是不难的。 然而,总部公司使用后觉得很OK,想要其他城市的…

【Proxy】Windows 10 的 Command Line Proxy 设置

【Proxy】Windows 10 的 Command Line Proxy 设置 1 本机环境2 PowerShell3 CMD 1 本机环境 Windows 10v2rayN 在 v2rayN 界面下方可以看到 socks 和 http 的端口号,分别为 10808 和 10809 2 PowerShell 每次打开新窗口,执行下面的命令 $env:HTTP_…

无刷电机行业调研:市场销售规模达到537亿元

无刷直流电机(BLDC:Brushless Direct Current Motor),也被称为电子换向电机(ECM或EC电机)或同步直流电机,是一种使用直流电(DC)电源的同步电机。无刷直流电机实质上为采用直流电源输入,并用逆变器变为三相交流电源,带位…

GitHub图床TyporaPicGo相关配置

本文作者: slience_me 文章目录 GitHub图床&Typora&PicGo相关配置1. Github配置2. picGo配置3. Typora配置 GitHub图床&Typora&PicGo相关配置 关于Typora旧版的百度网盘下载路径 链接:https://pan.baidu.com/s/12mq-dMqWnRRoreGo4MTbKg?…

三国游戏(寒假每日一题+贪心、枚举)

题目 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 0)。 游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i个事件发生时会分别让 X,Y,Z 增加 Ai,Bi…

零基础学Python(2)— 安装Python开发工具之PyCharm

前言:Hello大家好,我是小哥谈。PyCharm是由JetBrains公司开发的一款Python开发工具。在Windows、Mac OS和Linux操作系统中都可以使用。它具有语法高亮显示、Project(项目)管理代码跳转、智能提示、自动完成、调试、单元测试和版本…

关于SQL-case when最全面的学习笔记

case when 推荐学习书籍:1、SQL基础教程 6-32、SQL进阶教程 1-1 case when 是SQL语法中提供的标准的条件分支。 条件分支在MYSQL中即为IF函数,不同的数据库都会提供自己的一些函数,但是CASE WHEN 更加通用。 CASE语句的两种写法 1、搜索CASE…

Ubuntu使用docker-compose安装mysql8或mysql5.7

ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7 文章目录 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7MySQL81.新建文件夹2.创建docke…

在码云(gitee)里面提交代码进行保存步骤(自留笔记)

一些需要用到的软件需要自行下载 视频可观看https://www.bilibili.com/video/BV1hf4y1W7yT/ 步骤: 1.打开码云,点击加号,创建仓库 2.此处我的仓库选择私有,也可以选择开源,选择开源时,注意把弹出来的选项全…

「Kafka」Broker篇

「Kafka」Broker篇 主要讲解的是在 Kafka 中是怎么存储数据的,以及 Kafka 和 Zookeeper 之间如何进行数据沟通的。 Kafka Broker 总体工作流程 Zookeeper 存储的 Kafka 信息 启动 Zookeeper 客户端: [atguiguhadoop102 zookeeper-3.5.7]$ bin/zkCli.sh通…

【JavaEE】_网络编程基础

目录 1. 网络编程基础 1.1 网络编程定义 1.2 网络编程中的基本概念 1.2.1 API 1.2.2.发送端和接收端 1.2.3 请求和响应 1.2.4 客户端和服务端 2. Socket 套接字 2.1 概念 2.2 分类 3. UDP数据报套接字编程 3.1 DatagramSocket API 3.1.1 含义 3.1.2 构造方法 3…

全景摄像机行业分析:市场规模不可限量

早期的全景相机行业竞争格局较为多元。近年来随着行业技术不断成熟,市场的竞争格局由多家参与逐步向头部企业聚拢,国内企业凭借图像处理技术优势在全景相机行业中逐步抢占市场份额。 全景摄像机,是可以独立实现大范围无死角监控的摄像机。 一…

OpenVINS学习7——评估工具的简单使用

前言 OpenVINS自带评估工具,这里记录一下使用方法,我是以VIRAL数据集为例,但是目前仍然有问题,发现误差很大,我还没搞明白哪里出了问题。 工具介绍 主要参考 https://docs.openvins.com/eval-error.html https://bl…

ELK 日志分析系统

目录 一、日志管理方案 二、完整日志系统基本特征 三、ELK 简介 ELK组件: 1、ElasticSearch 2、Logstash 3、Kibana 可以添加的其它组件: 1、Filebeat 2、缓存/消息队列(redis、kafka、RabbitMQ等) 3、Fluentd 三、ELK …

作业-数组计数法

目录 数字出现次数 题目描述 输入 输出 输入复制 输出复制 求n个数中每个数出现的次数 题目描述 输入 输出 输入复制 输出复制 声音识别 题目描述 输入 输出 输入复制 输出复制 选班委 题目描述 输入 输出 输入复制 输出复制 数字出现次数 题目描述 …

解析智能酒精壁炉不完全燃烧的成因及潜在问题

解析智能酒精壁炉不完全燃烧的成因及潜在问题 智能酒精壁炉作为一种环保、高效、现代化的取暖工具,其采用酒精作为燃料进行燃烧,但在一些情况下,可能会出现酒精燃烧不完全的问题。下面将深入探讨这一现象的成因以及可能引发的问题。 成因分析…

SpringSecurity Web 权限方案

目录 一、设置登录系统的账号、密码 二、数据库查询用户名密码 三、自定义登录页面 四、基于角色或权限进行访问控制 (一)hasAuthority 方法 (二)hasAnyAuthority 方法 (三)hasRole 方法 &#xff…

Java String基础学习

目录 1、String的构造方法 2、String内存模型 3、字符串的比较 4、字符串的练习 1、用户登录系统 2、遍历字符串 3、统计字符次数 4、拼接字符串 5、字符串的反转 6、金额转换 7、手机号屏蔽 * 8、身份证信息查看 9、敏感词替换 5、StringBuilder 1、概念及练习…