GPT应用_PrivateGPT

发布时间:2024年01月21日

项目地址: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:中文技巧和功能实测

文章来源:https://blog.csdn.net/xieyan0811/article/details/135717510
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。