11# DB-GPT ![ GitHub Repo stars] ( https://img.shields.io/github/stars/csunny/db-gpt?style=social )
22
33---
4-
54[ English Edition] ( README.en.md )
65
7- 专注于数据库垂直领域的 GPT 项目,提供大模型与数据的本地化使用方案,保障数据的隐私安全,适用企业内和个人。
6+ ## 背景
7+ 随着大模型的发布迭代,大模型变得越来越智能,在使用大模型的过程当中,遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里,完全可控,避免任何的数据隐私泄露以及安全风险。基于此,我们发起了DB-GPT项目,为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。 此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控。
8+
9+ ## 愿景
10+ DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险,100% 私密,100% 安全。
811
912## 特性一览
1013
14+ 目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。
1115- SQL 语言能力
1216 - SQL生成
1317 - SQL诊断
1418- 私域问答与数据处理
1519 - 数据库知识问答
1620 - 数据处理
17-
18- ## 架构方案
19-
20- <p align =" center " >
21- <img src =" ./assets/DB-GPT.png " width =" 600px " />
22- </p >
23-
24- DB-GPT 基于[ FastChat] ( https://github.com/lm-sys/FastChat ) 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过 langchain 和 llama-index 提供私域知识库问答能力。
21+ - 插件模型
22+ - 支持自定义插件执行任务,原生支持Auto-GPT插件。如:
23+ - SQL自动执行,获取查询结果
24+ - 自动爬取学习知识
25+ - 知识库统一向量存储/索引
26+ - 非结构化数据支持
27+ - PDF、MarkDown、CSV、WebURL
2528
2629## 效果演示
2730
@@ -32,15 +35,20 @@ DB-GPT 基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运
3235 <img src =" ./assets/演示.gif " width =" 600px " />
3336</p >
3437
38+ <p align =" center " >
39+ <img src =" ./assets/Auto-DB-GPT.gif " width =" 600px " />
40+ </p >
41+
3542### SQL 生成
3643
37- 首先选择对应的数据库, 然后模型即可根据对应的数据库 Schema 信息生成 SQL。
44+ 1 . 生成建表语句
3845
3946<p align =" center " >
40- <img src =" ./assets/SQLGEN .png " width =" 600px " />
47+ <img src =" ./assets/SQL_Gen_CreateTable .png " width =" 600px " />
4148</p >
4249
43- 运行成功的效果如下面的演示:
50+ 2 . 生成可运行SQL
51+ 首先选择对应的数据库, 然后模型即可根据对应的数据库 Schema 信息生成 SQL, 运行成功的效果如下面的演示:
4452
4553<p align =" center " >
4654 <img src =" ./assets/exeable.png " width =" 600px " />
@@ -52,52 +60,104 @@ DB-GPT 基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运
5260 <img src =" ./assets/DB_QA.png " width =" 600px " />
5361</p >
5462
55- 基于默认内置知识库。
56-
57- # Dependencies
58- 1 . First you need to install python requirements.
59- ```
60- python>=3.10
61- pip install -r requirements.txt
62- ```
63- or if you use conda envirenment, you can use this command
64- ```
65- cd DB-GPT
66- conda env create -f environment.yml
63+ 1 . 基于默认内置知识库问答
6764
6865<p align =" center " >
6966 <img src =" ./assets/VectorDBQA.png " width =" 600px " />
7067</p >
7168
72- ## 部署
69+ 2 . 自己新增知识库
7370
74- ### 1. 安装 Python
71+ <p align =" center " >
72+ <img src =" ./assets/new_knownledge.gif " width =" 600px " />
73+ </p >
7574
76- ```bash
77- $ python>=3.10
78- $ pip install -r requirements.txt
79- ```
75+ 3 . 从网络自己爬取数据学习
76+ - TODO
8077
81- 或者直接使用 conda 环境
78+ ## 架构方案
79+ DB-GPT基于[ FastChat] ( https://github.com/lm-sys/FastChat ) 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过langchain提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持Auto-GPT插件。
8280
83- ``` bash
84- $ conda env create -f environment.yml
85- ```
81+ 整个DB-GPT的架构,如下图所示
8682
87- ### 2. 安装 MySQL
83+ <p align =" center " >
84+ <img src =" ./assets/DB-GPT.png " width =" 600px " />
85+ </p >
86+
87+ 核心能力主要有以下几个部分。
88+ 1 . 知识库能力
89+ 2 . 大模型管理能力
90+ 3 . 统一的数据向量化存储与索引
91+ 4 . 连接模块
92+ 5 . Agent与插件
93+ 6 . Prompt自动生成与优化
94+ 7 . 多端产品界面
95+
96+ 下面对每个模块也做一些简要的介绍:
97+
98+ ### 知识库能力
99+ 知识库作为当前用户需求最大的场景,我们原生支持知识库的构建与处理。同时在本项目当中,也提供了多种知识库的管理策略。 如: 1. 默认内置知识库 2. 自定义新增知识库 3. 通过插件能力自抓取构建知识库等多种使用场景。 用户只需要整理好知识文档,即可用我们现有的能力构建大模型所需要的知识库能力。
100+
101+ ### 大模型管理能力
102+ 在底层大模型接入中,设计了开放的接口,支持对接多种大模型。同时对于接入模型的效果,我们有非常严格的把控与评审机制。对大模型能力上与ChatGPT对比,在准确率上需要满足85%以上的能力对齐。我们用更高的标准筛选模型,是期望在用户使用过程中,可以省去前面繁琐的测试评估环节。
103+
104+ ### 统一的数据向量化存储与索引
105+ 为了方便对知识向量化之后的管理,我们内置了多种向量存储引擎,从基于内存的Chroma到分布式的Milvus, 可以根据自己的场景需求,选择不同的存储引擎,整个知识向量存储是AI能力增强的基石,向量作为人与大语言模型交互的中间语言,在本项目中的作用非常重要。
106+
107+ ### 连接模块
108+ 为了能够更方便的与用户的私有环境进行交互,项目设计了连接模块,连接模块可以支持连接到数据库、Excel、知识库等等多种环境当中,实现信息与数据交互。
109+
110+ ### Agent与插件
111+ Agent与插件能力是大模型能否自动化的核心,在本的项目中,原生支持插件模式,大模型可以自动化完成目标。 同时为了充分发挥社区的优势,本项目中所用的插件原生支持Auto-GPT插件生态,即Auto-GPT的插件可以直接在我们的项目中运行。
112+
113+ ### Prompt自动生成与优化
114+ Prompt是与大模型交互过程中非常重要的部分,一定程度上Prompt决定了大模型生成答案的质量与准确性,在本的项目中,我们会根据用户输入与使用场景,自动优化对应的Prompt,让用户使用大语言模型变得更简单、更高效。
115+
116+ ### 多端产品界面
117+ TODO: 在终端展示上,我们将提供多端产品界面。包括PC、手机、命令行、slack等多种模式。
118+
119+
120+ ## 安装教程
121+ ### 硬件说明
122+ 因为我们的项目在效果上具备ChatGPT 85%以上的能力,因此对硬件有一定的要求。 但总体来说,我们在消费级的显卡上即可完成项目的部署使用,具体部署的硬件说明如下:
123+ ```
124+ GPU型号 | 显存大小 | 性能
125+ -------|----------|------------------------------
126+ TRX4090| 24G |可以流畅的进行对话推理,无卡顿
127+ TRX3090| 24G |可以流畅进行对话推理,有卡顿感,但好与V100
128+ V100 | 16G |可以进行对话推理,有明显卡顿
129+ ```
130+ ### DB-GPT安装
88131
89132本项目依赖一个本地的 MySQL 数据库服务,你需要本地安装,推荐直接使用 Docker 安装。
133+ ```
134+ docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest
135+ ```
136+ 向量数据库我们默认使用的是Chroma内存数据库,所以无需特殊安装,如果有需要连接其他的同学,可以按照我们的教程进行安装配置。整个DB-GPT的安装过程,我们使用的是miniconda3的虚拟环境。创建虚拟环境,并安装python依赖包
137+
138+ ```
139+ python>=3.10
140+ conda create -n dbgpt_env python=3.10
141+ conda activate dbgpt_env
142+ pip install -r requirements.txt
90143
91- ``` bash
92- $ docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest
144+ ```
145+ 或者也可以使用命令:
146+ ```
147+ cd DB-GPT
148+ conda env create -f environment.yml
149+ ```
150+ 另外需要设置一下python包路径, 避免出现运行时找不到包
151+ ```
152+ echo "/root/workspace/DB-GPT" > /root/miniconda3/env/dbgpt_env/lib/python3.10/site-packages/dbgpt.pth
93153```
94154
95155### 3. 运行大模型
96156
97157关于基础模型, 可以根据[ vicuna] ( https://github.com/lm-sys/FastChat/blob/main/README.md#model-weights ) 合成教程进行合成。
98158如果此步有困难的同学,也可以直接使用[ Hugging Face] ( https://huggingface.co/ ) 上的模型进行替代. [ 替代模型] ( https://huggingface.co/Tribbiani/vicuna-7b )
99159
100- 2 . Run model server
160+ 2 . 运行模型服务
101161```
102162cd pilot/server
103163python llmserver.py
@@ -109,7 +169,12 @@ python llmserver.py
109169$ python webserver.py
110170```
111171
112- 可以通过阿里云部署大模型,请参考[ 阿里云部署指南] ( https://open.oceanbase.com/blog/3278046208 ) 。
172+ ## 使用说明
173+
174+ 我们提供了gradio的用户界面,可以通过我们的用户界面使用DB-GPT, 同时关于我们项目相关的一些代码跟原理介绍,我们也准备了以下几篇参考文章。
175+ 1 . [ 大模型实战系列(1) —— 强强联合Langchain-Vicuna应用实战] ( https://zhuanlan.zhihu.com/p/628750042 )
176+ 2 . [ 大模型实战系列(2) —— DB-GPT 阿里云部署指南] ( https://zhuanlan.zhihu.com/p/629467580 )
177+ 3 . [ 大模型实战系列(3) —— DB-GPT插件模型原理与使用] ( https://zhuanlan.zhihu.com/p/629623125 )
113178
114179## 感谢
115180
@@ -118,21 +183,26 @@ $ python webserver.py
118183- [ FastChat] ( https://github.com/lm-sys/FastChat ) 提供 chat 服务
119184- [ vicuna-13b] ( https://huggingface.co/Tribbiani/vicuna-13b ) 作为基础模型
120185- [ langchain] ( https://github.com/hwchase17/langchain ) 工具链
186+ - [ AutoGPT] ( https://github.com/Significant-Gravitas/Auto-GPT ) 通用的插件模版
187+ - [ HuggingFace] ( https://huggingface.co/ ) 大模型管理
188+ - [ Chroma] ( https://github.com/chroma-core/chroma ) 向量存储
189+ - [ Milvus] ( https://milvus.io/ ) 分布式向量存储
190+ - [ ChatGLM] ( https://github.com/THUDM/ChatGLM-6B ) 基础模型
121191- [ llama-index] ( https://github.com/jerryjliu/llama_index ) 基于现有知识库进行[ In-Context Learning] ( https://arxiv.org/abs/2301.00234 ) 来对其进行数据库相关知识的增强。
122192
123193<!-- GITCONTRIBUTOR_START -->
124194
125195## Contributors
126196
127- | [ <img src =" https://avatars.githubusercontent.com/u/17919400?v=4 " width =" 100px; " /><br /><sub ><b >csunny</b ></sub >] ( https://github.com/csunny ) <br />| [ <img src =" https://avatars.githubusercontent.com/u/1011681?v=4 " width =" 100px; " /><br /><sub ><b >xudafeng</b ></sub >] ( https://github.com/xudafeng ) <br />|
128- | :---: | :---: |
197+ | [ <img src =" https://avatars.githubusercontent.com/u/17919400?v=4 " width =" 100px; " /><br /><sub ><b >csunny</b ></sub >] ( https://github.com/csunny ) <br />| [ <img src =" https://avatars.githubusercontent.com/u/1011681?v=4 " width =" 100px; " /><br /><sub ><b >xudafeng</b ></sub >] ( https://github.com/xudafeng ) <br />| [ < img src = " https://avatars.githubusercontent.com/u/7636723?s=96&v=4 " width = " 100px; " />< br />< sub >< b >明天</ b ></ sub > ] ( https://github.com/yhjun1026 ) < br /> | [ < img src = " https://avatars.githubusercontent.com/u/13723926?v=4 " width = " 100px; " />< br />< sub >< b >Aries-ckt</ b ></ sub > ] ( https://github.com/Aries-ckt ) < br /> | [ < img src = " https://avatars.githubusercontent.com/u/95130644?v=4 " width = " 100px; " />< br />< sub >< b >thebigbone</ b ></ sub > ] ( https://github.com/thebigbone ) < br /> |
198+ | :---: | :---: | :---: | :---: | :---: |
129199
130200
131201This project follows the git-contributor [ spec] ( https://github.com/xudafeng/git-contributor ) , auto updated at ` Sun May 14 2023 23:02:43 GMT+0800 ` .
132202
133203<!-- GITCONTRIBUTOR_END -->
134204
135- 这是一个用于数据库的复杂且创新的工具,如有任何具体问题, 请联系如下微信,我会尽力提供帮助,同时也欢迎参与到项目建设中 。
205+ 这是一个用于数据库的复杂且创新的工具, 我们的项目也在紧急的开发当中, 会陆续发布一些新的feature。如在使用当中有任何具体问题, 优先在项目下提issue, 如有需要, 请联系如下微信,我会尽力提供帮助,同时也非常欢迎大家参与到项目建设中 。
136206
137207<p align =" center " >
138208 <img src =" ./assets/wechat.jpg " width =" 320px " />
0 commit comments