DB-GPT数据库GPT,支持本地部署,可以在私有环境中运行!!

news2025/1/18 11:48:06

DB-GPT 是什么?

随着大模型的发布迭代,大模型变得越来越智能,在使用大模型的过程当中,遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里,完全可控,避免任何的数据隐私泄露以及安全风险。基于此,我们发起了DB-GPT项目,为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。 此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控。

DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险,100% 私密,100% 安全。

特性一览

目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。

  • SQL 语言能力

    • SQL生成
    • SQL诊断
  • 私域问答与数据处理

    • 数据库知识问答
    • 数据处理
  • 插件模型

    • 支持自定义插件执行任务,原生支持Auto-GPT插件。如:
      • SQL自动执行,获取查询结果
      • 自动爬取学习知识
  • 知识库统一向量存储/索引

    • 非结构化数据支持包括PDF、MarkDown、CSV、WebURL
  • 多模型支持

    • 支持多种大语言模型, 当前已支持Vicuna(7b,13b), ChatGLM-6b(int4, int8)
    • TODO: codet5p, codegen2

效果演示

示例通过 RTX 4090 GPU 演示,YouTube 地址

运行环境演示

在这里插入图片描述

SQL 插件化执行

在这里插入图片描述

SQL 生成

  1. 生成建表语句

在这里插入图片描述

  1. 生成可运行SQL
    首先选择对应的数据库, 然后模型即可根据对应的数据库 Schema 信息生成 SQL, 运行成功的效果如下面的演示:

在这里插入图片描述

  1. 自动分析执行SQL输出运行结果

在这里插入图片描述

数据库问答

在这里插入图片描述

  1. 基于默认内置知识库问答

在这里插入图片描述

  1. 自己新增知识库

在这里插入图片描述

  1. 从网络自己爬取数据学习
  • TODO

架构方案

DB-GPT基于 FastChat 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过LangChain提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持Auto-GPT插件。

整个DB-GPT的架构,如下图所示

在这里插入图片描述

核心能力主要有以下几个部分。

  1. 知识库能力:支持私域知识库问答能力
  2. 大模型管理能力:基于FastChat提供一个大模型的运营环境。
  3. 统一的数据向量化存储与索引:提供一种统一的方式来存储和索引各种数据类型。
  4. 连接模块:用于连接不同的模块和数据源,实现数据的流转和交互。
  5. Agent与插件:提供Agent和插件机制,使得用户可以自定义并增强系统的行为。
  6. Prompt自动生成与优化:自动化生成高质量的Prompt,并进行优化,提高系统的响应效率。
  7. 多端产品界面:支持多种不同的客户端产品,例如Web、移动应用和桌面应用等。

下面对每个模块也做一些简要的介绍:

知识库能力

知识库作为当前用户需求最大的场景,我们原生支持知识库的构建与处理。同时在本项目当中,也提供了多种知识库的管理策略。 如:

  1. 默认内置知识库
  2. 自定义新增知识库
  3. 通过插件能力自抓取构建知识库等多种使用场景。

用户只需要整理好知识文档,即可用我们现有的能力构建大模型所需要的知识库能力。

大模型管理能力

在底层大模型接入中,设计了开放的接口,支持对接多种大模型。同时对于接入模型的效果,我们有非常严格的把控与评审机制。对大模型能力上与ChatGPT对比,在准确率上需要满足85%以上的能力对齐。我们用更高的标准筛选模型,是期望在用户使用过程中,可以省去前面繁琐的测试评估环节。

统一的数据向量化存储与索引

为了方便对知识向量化之后的管理,我们内置了多种向量存储引擎,从基于内存的Chroma到分布式的Milvus, 可以根据自己的场景需求,选择不同的存储引擎,整个知识向量存储是AI能力增强的基石,向量作为人与大语言模型交互的中间语言,在本项目中的作用非常重要。

连接模块

为了能够更方便的与用户的私有环境进行交互,项目设计了连接模块,连接模块可以支持连接到数据库、Excel、知识库等等多种环境当中,实现信息与数据交互。

Agent与插件

Agent与插件能力是大模型能否自动化的核心,在本的项目中,原生支持插件模式,大模型可以自动化完成目标。 同时为了充分发挥社区的优势,本项目中所用的插件原生支持Auto-GPT插件生态,即Auto-GPT的插件可以直接在我们的项目中运行。

Prompt自动生成与优化

Prompt是与大模型交互过程中非常重要的部分,一定程度上Prompt决定了大模型生成答案的质量与准确性,在本的项目中,我们会根据用户输入与使用场景,自动优化对应的Prompt,让用户使用大语言模型变得更简单、更高效。

多端产品界面

TODO: 在终端展示上,我们将提供多端产品界面。包括PC、手机、命令行、Slack等多种模式。

安装教程

1.硬件说明

因为我们的项目在效果上具备ChatGPT 85%以上的能力,因此对硬件有一定的要求。 但总体来说,我们在消费级的显卡上即可完成项目的部署使用,具体部署的硬件说明如下:

GPU型号显存大小性能
RTX409024G可以流畅的进行对话推理,无卡顿
RTX309024G可以流畅进行对话推理,有卡顿感,但好于V100
V10016G可以进行对话推理,有明显卡顿

2.DB-GPT安装

本项目依赖一个本地的 MySQL 数据库服务,你需要本地安装,推荐直接使用 Docker 安装。

docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest

向量数据库我们默认使用的是Chroma内存数据库,所以无需特殊安装,如果有需要连接其他的同学,可以按照我们的教程进行安装配置。整个DB-GPT的安装过程,我们使用的是miniconda3的虚拟环境。创建虚拟环境,并安装python依赖包

python>=3.10
conda create -n dbgpt_env python=3.10
conda activate dbgpt_env
pip install -r requirements.txt

3. 运行大模型

关于基础模型, 可以根据Vicuna合成教程进行合成。
如果此步有困难的同学,也可以直接使用此链接上的模型进行替代。

运行模型服务

cd pilot/server
python llmserver.py

运行 gradio webui

$ python webserver.py 

注意: 在启动Webserver之前, 需要修改.env 文件中的MODEL_SERVER = “http://127.0.0.1:8000”, 将地址设置为你的服务器地址。

使用说明

我们提供了Gradio的用户界面,可以通过我们的用户界面使用DB-GPT, 同时关于我们项目相关的一些代码跟原理介绍,我们也准备了以下几篇参考文章。

  1. 大模型实战系列(1) —— 强强联合Langchain-Vicuna应用实战
  2. 大模型实战系列(2) —— DB-GPT 阿里云部署指南
  3. 大模型实战系列(3) —— DB-GPT插件模型原理与使用

多模型使用

在.env 配置文件当中, 修改LLM_MODEL参数来切换使用的模型。

多语言用户界面模式

在.env 配置文件当中,修改LANGUAGE参数来切换使用不同的语言,默认是英文(中文zh, 英文en, 其他语言待补充)

打造属于你的知识库:

1.将个人知识文件或者文件夹放入pilot/datasets目录中

2.在.env文件指定你的向量数据库类型,VECTOR_STORE_TYPE(默认Chroma),目前支持Chroma,Milvus(需要设置MILVUS_URL和MILVUS_PORT)

注意Milvus版本需要>2.1

3.在tools目录执行知识入库脚本()

如果是选择默认知识库,不需要指定 --vector_name, 默认default

python tools/knowledge_init.py

如果选择新增知识库,在界面上新增知识库输入你的知识库名,

python tools/knowledge_init.py --vector_name = yourname

--vector_name: vector_name  default_value:default

就可以根据你的知识库进行问答

注意,这里默认向量模型是text2vec-large-chinese(模型比较大,如果个人电脑配置不够建议采用text2vec-base-chinese),因此确保需要将模型download下来放到models目录中。

如果在使用知识库时遇到与nltk相关的错误,您需要安装nltk工具包。更多详情,请参见:nltk文档
Run the Python interpreter and type the commands:

>>> import nltk
>>> nltk.download()

传送门

https://github.com/csunny/DB-GPT/

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

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

相关文章

PCB钥匙串 diy

制作目标:type-c供电的可触摸调光LED钥匙链。 初步设计方案: 芯片采用触摸调光芯片,用于LED灯光亮度调节及开关控制的单通道触摸芯片。使用该芯片可以实现LED灯光的触摸开关控制和亮度调节。具有如下功能特点和优势:灯光亮度可根…

Redis+Caffeine两级缓存

1、前言 在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的…

Sui生态域名服务SuiNS正式开放域名竞拍

Sui Name Service(SuiNSSui Name Service(是Sui推出的开放且分布式域名服务。SuiNS使用户可以竞拍以.sui结尾的专属域名,以建立链上身份。 在上线之际,SuiNS推出实时竞拍,为用户提供公平获取Sui生态专属域名的机会。若…

YUM在线升级功能

文章目录 YUM在线升级功能利用YUM进行查询、安装、升级与删除功能查询功能使用案例 安装/升级功能删除功能 YUM的配置文件修改软件源产生的问题与解决之道使用案例 YUM的软件群组功能使用案例 全系统自动升级 管理的抉择:RPM还是Tarball基础服务案例:以A…

E8-怎么监听表单里的日期控件被修改过

起因 业务部门每周六例会,业务部门请假的,如果包含星期六,需要老板审批。 我思路是当开始日期或结束日期被修改时,判断请假日期中是否包括周六,根据是束包含周六,去设置某个控件的值,后续步骤…

【Zero to One系列】springcloud微服务集成nacos,形成分布式系统

前期回顾: 【Zero to One系列】在WSL linux系统上,使用docker运行Mysql与Nacos 1、Nacos配置设置 先在nacos创建命名空间,如下图操作: 创建完成后,服务列表和配置列表,就都会出现如图的tab: 然…

南京邮电大学电工电子基础B实验八(译码与动态显示电路)

文章目录 一、 实验目的二、 主要仪器设备及软件三、 实验原理四、 实验任务与设计过程实验任务:设计过程: 五、 实验步骤与仿真结果1.用BCD七段显示译码器显示本人学号的后四位(0709)2.用BCD七段显示译码器…

API电商 ERP 数据管理

没有 API,应用之间的通信将会被扼杀;软件开发者将不断重写并执行相同功能的软件;创新的脚步将会放缓。 API 随处可见。大到一个软件系统,小到几行程序,只要具备了一定的特征,都可以被称作 API。那么&#…

产品手册是团队营销的心脏,让企业宣传更上一层楼

产品手册是企业团队营销的重要工具之一,能够帮助企业更好地宣传产品并提高销售业绩。在现代企业市场竞争日益激烈的情况下,如何制作一份优秀的产品手册成为了企业团队营销的重要课题。本文将从以下几个方面探讨产品手册对团队营销的意义以及如何制作一份…

RocksDB笔记 -- 整体架构

RocksDB是由Facebook开发的存储引擎, 它最初的目标是用于快速存储, 特别是Flash存储. 一个基于C开发keys-values存储引擎库. 整体架构 RocksDB由这三个基本结构组成: memtable, sstfile 和 logfile. 其中: memtable是一个内存数据结构, 新的写入会插入到memtable中, 同时可选…

前端加密对抗——CDP远程调用Debug断点函数python代码实现

文章目录 前端加密对抗——CDP远程调用Debug断点函数python代码实现实现请求断点处函数mitmproxy实现加解密 前端加密对抗——CDP远程调用Debug断点函数python代码实现 前几天看了看tools推送的前端加密的文章:前端加密对抗Part2-通过CDP远程调用Debug断点函数觉得…

NR 5G 系统消息MIB和SIB详解

系统信息分类 系统信息与各个信道的映射图示: 在5G高层中,系统信息可以分为三类: 最少系统信息(Minimum System Information,MSI): MSI包括MIB和RMSIMIB的RRC消息 MasterInformationBlockMI…

DTU902 工控机 边缘计算网关

边缘计算网关(Edge Computing Gateway)是一种连接边缘设备和云端服务器的中间件设备,它可以处理和存储大量的数据,提高数据处理和传输的效率。边缘计算网关可以将数据预处理和过滤,减少数据传输到云端的负荷&#xff0…

2023 最新版IntelliJ IDEA 2023.1创建Java Web前(vue3)后端(spring-boot3)分离 项目详细步骤(图文详解)

文章目录 🚩 接上篇🏳‍🌈 项目构建所需的相关工具JavaIDEAmavenNodeJSVueVisual Studio Code 🌌 后端项目创建详细步骤🛫 1、开始创建新项目🛫 2、输入项目名称、选择项目存储位置、项目管理工具&#xff…

HTTP 教程1

HTTP 协议一般指 HTTP(超文本传输协议)。 超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为…

CPO技术重塑光模块:行业变革与突破

随着OpenAI的ChatGPT重磅面世,在短短时间内,内容生成式人工智能消费级应用掀起一波新的科技浪潮。ChatGPT用户数也在短短两个月内破亿,成为史上活跃用户破亿速度最快的软件。 可以预料的是,未来算力和数据需求将迎来爆发式的增长,且传统可插拔光模块技术…

3.2 动态规划算法的基本要素

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 学习目标: 如果我要学习动态规划算法的基本要素,我会采取以下步骤: 1. 理解概念:首先,我会研…

【程序】基于matlab使用脉冲压缩估计范围和多普勒

一、前言 本例显示了脉冲压缩的效果,其中发射的脉冲被调制并与接收的信号相关联。雷达和声纳系统使用脉冲压缩,通过缩短回波持续时间来提高信噪比(SNR)和距离分辨率。此示例还演示了多普勒处理,其中目标的径向速度由目…

Windows10系统下YOLOv5配置(Tesla P40 24GB、CUDA10.2)

操作系统:Windows10 显卡:Tesla P40 24GB CUDA版本:10.2 YOLOv5版本:4.0 一、下载 CUDA&cuDNN 下载相应版本的CUDA按默认一路安装到底 下载相应版本的cuDNN,解压,将bin中、include中、lib中文件…

CV | ⑩分钟实现视频人脸情绪生成(论文+代码)

本博客主要讲解了Emotionally Enhanced Talking Face Generation(情感增强的谈话人脸生成)论文概括与项目实现,以及代码理解。 Emotionally Enhanced Talking Face Generation Paper :https://arxiv.org/pdf/2303.11548.pdf Code: GitHub - s…