mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-08-14 14:34:28 +00:00
Rewrite readme
This commit is contained in:
parent
3a3ec80044
commit
69b34f176a
130
README.md
130
README.md
@ -26,15 +26,6 @@ DB-GPT 是一个开源的以数据为基础的GPT实验项目,使用本地化
|
|||||||
- 非结构化数据支持
|
- 非结构化数据支持
|
||||||
- PDF、MarkDown、CSV、WebURL
|
- PDF、MarkDown、CSV、WebURL
|
||||||
|
|
||||||
## 架构方案
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="./assets/DB-GPT.png" width="600px" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
DB-GPT基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过 langchain提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持Auto-GPT插件。
|
|
||||||
|
|
||||||
## 效果演示
|
## 效果演示
|
||||||
|
|
||||||
示例通过 RTX 4090 GPU 演示,[YouTube 地址](https://www.youtube.com/watch?v=1PWI6F89LPo)
|
示例通过 RTX 4090 GPU 演示,[YouTube 地址](https://www.youtube.com/watch?v=1PWI6F89LPo)
|
||||||
@ -46,13 +37,14 @@ DB-GPT基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运行
|
|||||||
|
|
||||||
### SQL 生成
|
### SQL 生成
|
||||||
|
|
||||||
首先选择对应的数据库, 然后模型即可根据对应的数据库 Schema 信息生成 SQL。
|
1. 生成建表语句
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./assets/SQLGEN.png" width="600px" />
|
<img src="./assets/SQL_Gen_CreateTable.png" width="600px" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
运行成功的效果如下面的演示:
|
2. 生成可运行SQL
|
||||||
|
首先选择对应的数据库, 然后模型即可根据对应的数据库 Schema 信息生成 SQL, 运行成功的效果如下面的演示:
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./assets/exeable.png" width="600px" />
|
<img src="./assets/exeable.png" width="600px" />
|
||||||
@ -64,44 +56,92 @@ DB-GPT基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运行
|
|||||||
<img src="./assets/DB_QA.png" width="600px" />
|
<img src="./assets/DB_QA.png" width="600px" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
基于默认内置知识库。
|
1. 基于默认内置知识库问答
|
||||||
|
|
||||||
# Dependencies
|
|
||||||
1. First you need to install python requirements.
|
|
||||||
```
|
|
||||||
python>=3.10
|
|
||||||
pip install -r requirements.txt
|
|
||||||
```
|
|
||||||
or if you use conda envirenment, you can use this command
|
|
||||||
```
|
|
||||||
cd DB-GPT
|
|
||||||
conda env create -f environment.yml
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./assets/VectorDBQA.png" width="600px" />
|
<img src="./assets/VectorDBQA.png" width="600px" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## 部署
|
2. 自己新增知识库
|
||||||
|
- TODO
|
||||||
|
|
||||||
### 1. 安装 Python
|
3. 从网络自己爬取数据学习
|
||||||
|
- TODO
|
||||||
|
|
||||||
```bash
|
## 架构方案
|
||||||
$ python>=3.10
|
DB-GPT基于[FastChat](https://github.com/lm-sys/FastChat) 构建大模型运行环境,并提供 vicuna 作为基础的大语言模型。此外,我们通过 langchain提供私域知识库问答能力。同时我们支持插件模式, 在设计上原生支持Auto-GPT插件。
|
||||||
$ pip install -r requirements.txt
|
|
||||||
|
整个DB-GPT的架构,如下图所示
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="./assets/DB-GPT.png" width="600px" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
核心能力主要有以下几个部分。
|
||||||
|
1. 知识库能力
|
||||||
|
2. 大模型管理能力
|
||||||
|
3. 统一的数据向量化存储与索引
|
||||||
|
4. 连接模块
|
||||||
|
5. Agent与插件
|
||||||
|
6. Prompt自动生成与优化
|
||||||
|
7. 多端产品界面
|
||||||
|
|
||||||
|
下面对每个模块也做一些简要的介绍:
|
||||||
|
|
||||||
|
### 知识库能力
|
||||||
|
知识库作为当前用户需求最大的场景,我们原生支持知识库的构建与处理。同时在我们的项目当中,也提供了多种知识库的管理策略。 如: 1. 默认内置知识库 2. 自定义新增知识库 3. 通过插件能力自抓取构建知识库等多种使用场景。 用户只需要整理好知识文档,即可用我们现有的能力构建大模型所需要的知识库能力。
|
||||||
|
|
||||||
|
### 大模型管理能力
|
||||||
|
在底层大模型接入中,我们设计了开放的接口,支持对接多种大模型。同时对于接入模型的效果,我们有非常严格的把控与评审机制。对大模型能力上与ChatGPT对比,在准确率上需要满足85%以上的能力对齐。我们用更高的标准筛选模型,是期望在用户使用过程中,可以省去前面繁琐的测试评估环节。
|
||||||
|
|
||||||
|
### 统一的数据向量化存储与索引
|
||||||
|
为了方便对知识向量化之后的管理,我们内置了多种向量存储引擎,从基于内存的Chroma到分布式的Milvus, 用户可以根据自己的场景需求,选择不同的存储引擎,整个知识向量存储是AI能力增强的基石,向量作为人与大语言模型交互的中间语言,在我们的架构中的作用非常重要。
|
||||||
|
|
||||||
|
### 连接模块
|
||||||
|
为了能够更方便的与用户的私有环境进行交互,我们设计了连接模块,连接模块可以支持连接到数据库、Excel、知识库等等多种环境当中,实现信息与数据交互。
|
||||||
|
|
||||||
|
### Agent与插件
|
||||||
|
Agent与插件能力是大模型能否自动化的核心,在我们的项目中,我们原生支持插件模式,大模型可以自动化完成目标。 同时为了充分发挥社区的优势,我们在插件原生支持Auto-GPT插件生态,即Auto-GPT的插件可以直接在我们的项目中运行。
|
||||||
|
|
||||||
|
### Prompt自动生成与优化
|
||||||
|
Prompt是与大模型交互过程中非常重要的部分,一定程度上Prompt决定了大模型生成答案的质量与准确性,在我们的项目中,我们会根据用户输入与使用场景,自动优化对应的Prompt,让用户使用大语言模型变得更简单、更高效。
|
||||||
|
|
||||||
|
### 多端产品界面
|
||||||
|
TODO: 在终端展示上,我们将提供多端产品界面。包括PC、手机、命令行、slack等多种模式。
|
||||||
|
|
||||||
|
|
||||||
|
## 安装教程
|
||||||
|
### 硬件说明
|
||||||
|
因为我们的项目在效果上具备ChatGPT 85%以上的能力,因此对硬件有一定的要求。 但总体来说,我们在消费级的显卡上即可完成项目的部署使用,具体部署的硬件说明如下:
|
||||||
```
|
```
|
||||||
|
GPU型号 | 显存大小 | 性能
|
||||||
或者直接使用 conda 环境
|
-------|----------|------------------------------
|
||||||
|
TRX4090| 24G |可以流畅的进行对话推理,无卡顿
|
||||||
```bash
|
TRX3090| 24G |可以流畅进行对话推理,有卡顿感,但好与V100
|
||||||
$ conda env create -f environment.yml
|
V100 | 16G | 可以进行对话推理,有明显卡顿
|
||||||
```
|
```
|
||||||
|
### DB-GPT安装
|
||||||
### 2. 安装 MySQL
|
|
||||||
|
|
||||||
本项目依赖一个本地的 MySQL 数据库服务,你需要本地安装,推荐直接使用 Docker 安装。
|
本项目依赖一个本地的 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
|
||||||
|
|
||||||
```bash
|
```
|
||||||
$ docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit mysql:latest
|
或者也可以使用命令:
|
||||||
|
```
|
||||||
|
cd DB-GPT
|
||||||
|
conda env create -f environment.yml
|
||||||
|
```
|
||||||
|
另外需要设置一下python包路径, 避免出现运行时找不到包
|
||||||
|
```
|
||||||
|
echo "/root/workspace/DB-GPT" > /root/miniconda3/env/dbgpt_env/lib/python3.10/site-packages/dbgpt.pth
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. 运行大模型
|
### 3. 运行大模型
|
||||||
@ -109,7 +149,7 @@ $ docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=aa12345678 -dit my
|
|||||||
关于基础模型, 可以根据[vicuna](https://github.com/lm-sys/FastChat/blob/main/README.md#model-weights)合成教程进行合成。
|
关于基础模型, 可以根据[vicuna](https://github.com/lm-sys/FastChat/blob/main/README.md#model-weights)合成教程进行合成。
|
||||||
如果此步有困难的同学,也可以直接使用[Hugging Face](https://huggingface.co/)上的模型进行替代. [替代模型](https://huggingface.co/Tribbiani/vicuna-7b)
|
如果此步有困难的同学,也可以直接使用[Hugging Face](https://huggingface.co/)上的模型进行替代. [替代模型](https://huggingface.co/Tribbiani/vicuna-7b)
|
||||||
|
|
||||||
2. Run model server
|
2. 运行模型服务
|
||||||
```
|
```
|
||||||
cd pilot/server
|
cd pilot/server
|
||||||
python llmserver.py
|
python llmserver.py
|
||||||
@ -121,7 +161,12 @@ python llmserver.py
|
|||||||
$ python webserver.py
|
$ python webserver.py
|
||||||
```
|
```
|
||||||
|
|
||||||
可以通过阿里云部署大模型,请参考[阿里云部署指南](https://open.oceanbase.com/blog/3278046208)。
|
## 使用说明
|
||||||
|
|
||||||
|
我们提供了gradio的用户界面,可以通过我们的用户界面使用DB-GPT, 同时关于我们项目相关的一些代码跟原理介绍,我们也准备了以下几篇参考文章。
|
||||||
|
1. [大模型实战系列(1) ——强强联合Langchain-Vicuna应用实战](https://zhuanlan.zhihu.com/p/628750042)
|
||||||
|
2. [大模型实战系列(2) —— DB-GPT 阿里云部署指南](https://zhuanlan.zhihu.com/p/629467580)
|
||||||
|
3. [大模型实战系列(3) —— DB-GPT插件模型原理与使用]()
|
||||||
|
|
||||||
## 感谢
|
## 感谢
|
||||||
|
|
||||||
@ -130,6 +175,11 @@ $ python webserver.py
|
|||||||
- [FastChat](https://github.com/lm-sys/FastChat) 提供 chat 服务
|
- [FastChat](https://github.com/lm-sys/FastChat) 提供 chat 服务
|
||||||
- [vicuna-13b](https://huggingface.co/Tribbiani/vicuna-13b) 作为基础模型
|
- [vicuna-13b](https://huggingface.co/Tribbiani/vicuna-13b) 作为基础模型
|
||||||
- [langchain](https://github.com/hwchase17/langchain) 工具链
|
- [langchain](https://github.com/hwchase17/langchain) 工具链
|
||||||
|
- [AutoGPT](https://github.com/Significant-Gravitas/Auto-GPT) 通用的插件模版
|
||||||
|
- [HuggingFace](https://huggingface.co/) 大模型管理
|
||||||
|
- [Chroma](https://github.com/chroma-core/chroma) 向量存储
|
||||||
|
- [Milvus](https://milvus.io/) 分布式向量存储
|
||||||
|
- [ChatGLM](https://github.com/THUDM/ChatGLM-6B) 基础模型
|
||||||
- [llama-index](https://github.com/jerryjliu/llama_index) 基于现有知识库进行[In-Context Learning](https://arxiv.org/abs/2301.00234)来对其进行数据库相关知识的增强。
|
- [llama-index](https://github.com/jerryjliu/llama_index) 基于现有知识库进行[In-Context Learning](https://arxiv.org/abs/2301.00234)来对其进行数据库相关知识的增强。
|
||||||
|
|
||||||
<!-- GITCONTRIBUTOR_START -->
|
<!-- GITCONTRIBUTOR_START -->
|
||||||
|
BIN
assets/SQL_Gen_CreateTable.png
Normal file
BIN
assets/SQL_Gen_CreateTable.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 297 KiB |
Loading…
Reference in New Issue
Block a user