AI大模型探索之路-實戰篇4:DB-GPT數據應用開發框架調研實踐

目錄

  • 前言
  • 一、DB-GPT總體概述
  • 二、DB-GPT關鍵特性
    • 1、私域問答&數據處理&RAG
    • 2、多數據源&GBI
    • 3、多模型管理
    • 4、自動化微調
    • 5、Data-Driven Multi-Agents&Plugins
    • 6、隱私安全
  • 三、服務器資源準備
    • 1、創建實例
    • 2、打開jupyterLab
  • 四、DB-GPT啟動
    • 1、激活 conda 環境
    • 2、切換到 DB-GPT 目錄
    • 3、導入 SQLite 樣例數據
  • 五、DB-GPT運行
    • 1、使用命令行工具啟動
    • 2、訪問 DB-GPT 頁面
  • 六、DB-GPT數據對話
    • 1、安裝數據庫
    • 2、添加數據源
    • 3、綁定數據庫
    • 4、對話體驗
      • 1)選擇數據對話
      • 2)開始數據對話
      • 3)錯誤處理
      • 4)數據對話1
      • 5)數據對話2
  • 總結


前言

在當今的人工智能時代,大模型技術的迅猛發展為各行各業帶來了前所未有的變革。這些大模型,以其強大的語言理解和生成能力,正在逐步成為智能化應用的核心。然而,如何高效地利用這些大模型,構建出滿足各種需求的應用,仍然是一個具有挑戰性的問題。DB-GPT,作為一個開源的AI原生數據應用開發框架,應運而生,旨在簡化大模型應用的開發過程,讓構建智能化應用變得觸手可及。本文將深入介紹DB-GPT的核心功能、關鍵特性,并通過實戰操作,展示如何利用DB-GPT進行數據應用開發。

一、DB-GPT總體概述

在這里插入圖片描述
DB-GPT是一個開源的AI原生數據應用開發框架。目的是構建大模型領域的基礎設施,通過開發多模型管理(SMMF)、Text2SQL效果優化、RAG框架以及優化、Multi-Agents框架協作、AWEL(智能體工作流編排)等多種技術能力,讓圍繞數據庫構建大模型應用更簡單,更方便。
在這里插入圖片描述

核心能力主要有以下幾個部分:
RAG(Retrieval Augmented Generation),RAG是當下落地實踐最多,也是最迫切的領域,DB-GPT目前已經實現了一套基于RAG的框架,用戶可以基于DB-GPT的RAG能力構建知識類應用。

  • GBI:生成式BI是DB-GPT項目的核心能力之一,為構建企業報表分析、業務洞察提供基礎的數智化技術保障。
  • 微調框架: 模型微調是任何一個企業在垂直、細分領域落地不可或缺的能力,DB-GPT提供了完整的微調框架,實現與DB-GPT項目的無縫打通,在最近的微調中,基于spider的準確率已經做到了82.5%
  • 數據驅動的Multi-Agents框架: DB-GPT提供了數據驅動的自進化Multi-Agents框架,目標是可以持續基于數據做決策與執行。
  • 數據工廠: 數據工廠主要是在大模型時代,做可信知識、數據的清洗加工。
  • 數據源: 對接各類數據源,實現生產業務數據無縫對接到DB-GPT核心能力。

二、DB-GPT關鍵特性

1、私域問答&數據處理&RAG

DB-GPT支持通過內置、多文件格式上傳、插件自抓取等方式自定義構建知識庫,能夠對海量結構化和非結構化數據進行統一向量存儲與檢索,實現高效的知識管理。此外,DB-GPT還實現了基于RAG的框架,用戶可以基于DB-GPT的RAG能力構建知識類應用,為用戶提供更加智能的問答體驗。

2、多數據源&GBI

DB-GPT支持與多種數據源進行交互,包括但不限于Excel、各類數據庫和數倉,同時支持生成分析報告,為用戶提供深入的業務洞察。GBI,即生成式BI,是DB-GPT項目的核心能力之一,可以為構建企業報表分析、業務洞察提供基礎的數智化技術保障。

3、多模型管理

DB-GPT支持海量模型,包括多種開源和API代理的大語言模型,如LLaMA/LLaMA2、Baichuan、ChatGLM、文心、通義、智譜、星火等。用戶可以根據需求選擇合適的模型進行應用開發,極大地提高了開發的靈活性和便捷性。
在這里插入圖片描述

4、自動化微調

圍繞大語言模型、Text2SQL數據集、LoRA/QLoRA/Pturning等微調方法構建的自動化微調輕量框架, 讓TextSQL微調像流水線一樣方便。
在這里插入圖片描述

5、Data-Driven Multi-Agents&Plugins

DB-GPT支持自定義插件執行任務,并且原生支持Auto-GPT插件模型,通過Agents協議采用Agent Protocol標準,實現智能體之間的協作和任務的高效執行。這種數據驅動的自進化Multi-Agents框架,可以持續基于數據做決策與執行,大大提高了應用的智能化水平。

6、隱私安全

DB-GPT注重數據隱私和安全,通過私有化大模型、代理脫敏等多種技術保障數據的隱私安全。這一點在當今這個數據安全日益受到重視的時代,顯得尤為重要。
在這里插入圖片描述

三、服務器資源準備

DB-GPT剛好有支持AutoDL的鏡像,因此直接在AutoDL 云平臺時進行實踐操作;在AutoDL云平臺上,選擇一臺4090 GPU24G的服務器,為DB-GPT的運行提供必要的計算資源。打開jupyterLab,選擇“終端”啟動項,打開終端頁面,后續所有操作都基于終端進行操作。

1、創建實例

選擇一臺4090 GPU24G的服務器,進行創建實例。
在這里插入圖片描述

2、打開jupyterLab

選擇”終端“啟動項,打開終端頁面,后續所有操作都基于終端進行操作。
在這里插入圖片描述

四、DB-GPT啟動

1、激活 conda 環境

conda activate dbgpt

2、切換到 DB-GPT 目錄

cd /root/DB-GPT/	

3、導入 SQLite 樣例數據

bash ./scripts/examples/load_examples.sh

在這里插入圖片描述

五、DB-GPT運行

1、使用命令行工具啟動

dbgpt start webserver --port 6006

dbgpt 是 DB-GPT 項目的命令行工具,這里利用命令行工具來啟動(當然,你也可以使用命令 python dbgpt/app/dbgpt_server.py --port 6006 來啟動)。
這里使用 6006 端口來啟動服務,這個端口方便在 AutoDL 中開啟公網訪問。
鏡像中默認準備好了 Qwen-1_8B-Chat 和 text2vec-large-chinese 模型文件。
在這里插入圖片描述

2、訪問 DB-GPT 頁面

在服務器示例列表中,找到自定義服務,點擊。
在這里插入圖片描述

點擊 “訪問” 后自動打開的頁面如下:

在這里插入圖片描述

六、DB-GPT數據對話

數據對話能力是通過自然語言與數據進行對話,主要是結構化與半結構化數據的對話,可以輔助做數據分析與洞察。在開始數據對話之前,我們首先需要添加數據源

1、安裝數據庫

步驟1:安裝MySQL數據庫

sudo apt-get update
sudo apt-get install mysql-server
sudo service mysql start

安裝啟動mysql完成之后,登錄mysql(默認無密碼)
mysql -u root -p
在這里插入圖片描述

步驟2:創建數據庫用戶

CREATE USER 'gpt'@'localhost' IDENTIFIED BY 'gpt';

步驟3:給數據庫用戶賦權限

GRANT ALL PRIVILEGES ON *.* TO 'gpt'@'localhost';
FLUSH PRIVILEGES;

2、添加數據源

1)數據準備
目前DB-GPT支持多種數據庫類型。 選擇對應的數據庫類型添加即可。這里我們選擇的是MySQL作為演示,演示的測試數據:case_1_student_manager_mysql.sql

create database case_1_student_manager character set utf8;
use case_1_student_manager;CREATE TABLE students (student_id INT PRIMARY KEY,student_name VARCHAR(100) COMMENT '學生姓名',major VARCHAR(100) COMMENT '專業',year_of_enrollment INT COMMENT '入學年份',student_age INT COMMENT '學生年齡'
) COMMENT '學生信息表';CREATE TABLE courses (course_id INT PRIMARY KEY,course_name VARCHAR(100) COMMENT '課程名稱',credit FLOAT COMMENT '學分'
) COMMENT '課程信息表';CREATE TABLE scores (student_id INT,course_id INT,score INT COMMENT '得分',semester VARCHAR(50) COMMENT '學期',PRIMARY KEY (student_id, course_id),FOREIGN KEY (student_id) REFERENCES students(student_id),FOREIGN KEY (course_id) REFERENCES courses(course_id)
) COMMENT '學生成績表';INSERT INTO students (student_id, student_name, major, year_of_enrollment, student_age) VALUES
(1, '張三', '計算機科學', 2020, 20),
(2, '李四', '計算機科學', 2021, 19),
(3, '王五', '物理學', 2020, 21),
(4, '趙六', '數學', 2021, 19),
(5, '周七', '計算機科學', 2022, 18),
(6, '吳八', '物理學', 2020, 21),
(7, '鄭九', '數學', 2021, 19),
(8, '孫十', '計算機科學', 2022, 18),
(9, '劉十一', '物理學', 2020, 21),
(10, '陳十二', '數學', 2021, 19);INSERT INTO courses (course_id, course_name, credit) VALUES
(1, '計算機基礎', 3),
(2, '數據結構', 4),
(3, '高等物理', 3),
(4, '線性代數', 4),
(5, '微積分', 5),
(6, '編程語言', 4),
(7, '量子力學', 3),
(8, '概率論', 4),
(9, '數據庫系統', 4),
(10, '計算機網絡', 4);INSERT INTO scores (student_id, course_id, score, semester) VALUES
(1, 1, 90, '2020年秋季'),
(1, 2, 85, '2021年春季'),
(2, 1, 88, '2021年秋季'),
(2, 2, 90, '2022年春季'),
(3, 3, 92, '2020年秋季'),
(3, 4, 85, '2021年春季'),
(4, 3, 88, '2021年秋季'),
(4, 4, 86, '2022年春季'),
(5, 1, 90, '2022年秋季'),
(5, 2, 87, '2023年春季');

執行SQL,創建數據庫,創建數據表、添加數據
在這里插入圖片描述

2)數據檢查
查看SQL之后,數據是否正常入庫
在這里插入圖片描述

3、綁定數據庫

將我們創建的MySQL數據庫設置為數據源
在這里插入圖片描述

配置好數據庫連接信息
在這里插入圖片描述

4、對話體驗

用戶可以通過自然語言提問,DB-GPT會根據問題的語義理解,生成相應的SQL查詢語句,并將查詢結果以圖表、表格或數據的形式返回給用戶。這樣的交互方式極大地簡化了數據分析的復雜性,使得非技術用戶也能夠輕松地進行數據查詢和分析。

1)選擇數據對話

在這里插入圖片描述

2)開始數據對話

此時界面上數據庫已經默認設置為我們前面綁定的數據庫了,也可以手動選擇
在這里插入圖片描述

3)錯誤處理

在數據對話的過程中,可能會遇到一些問題,比如缺少必要的Python庫或者模型對某些查詢的處理不夠準確。例如,如果在提問咨詢時遇到“RuntimeError: ‘cryptography’ package is required for sha256_password or caching_sha2_password auth methods”的錯誤,就需要安裝相應的Python庫來解決問題。通過pip install cryptography命令安裝缺少的庫后,需要重新啟動DB-GPT以使更改生效。
pip install cryptography
在這里插入圖片描述

安裝后重新啟動DB-GPT

4)數據對話1

問題:請幫我查詢總共有多少學生?
可以看到數據查詢成功,而且還分3中方式返回Chart、SQL、Data
在這里插入圖片描述

返回SQL語句,可以檢查相關的SQL是否正確
在這里插入圖片描述

Data頁簽返回執行結果
在這里插入圖片描述

SQL執行
還可以點擊上面的Editor按鈕,復制SQL,直接在頁面上執行,查看結果
在這里插入圖片描述

5)數據對話2

后門連接問了兩次稍微比第一次復雜一點的請求,就搞不定了。
在這里插入圖片描述

數據對話的體驗展示了DB-GPT在處理結構化和半結構化數據方面的能力,它能夠理解用戶的自然語言查詢,并準確地轉換成SQL語句,執行查詢并返回結果。用戶可以通過簡單的問答形式,獲取到他們需要的數據洞察,這對于數據分析和業務決策來說是非常有價值的。

總結

經過實戰測試,DB-GPT展現了其強大的功能、對多種模型的支持以及良好的界面體驗。但是在交互體驗和復雜任務處理方面存在一定的不足,如果模型的穩定性和任務拆解能力的進一步提升,DB-GPT有望成為大模型應用開發領域的優秀工具。

DB-GPT的開發團隊持續在優化其功能和性能,用戶社區的反饋和貢獻也是推動其進步的重要力量。隨著大模型技術的成熟和應用的普及,我們可以期待DB-GPT在未來能夠提供更加完善和強大的服務,幫助開發者輕松構建出智能、高效的應用,推動人工智能技術在各行各業的應用和發展。

在這里插入圖片描述

🎯🔖更多專欄系列文章:AIGC-AI大模型探索之路

如果文章內容對您有所觸動,別忘了點贊、?關注,收藏!加入我,讓我們攜手同行AI的探索之旅,一起開啟智能時代的大門!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14042.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈fisco聯盟鏈搭建(二)搭建多群組聯盟鏈

本文章只講搭建的命令方法 以單機、四機構、三群組、八節點的星形組網拓撲為例 第一步創建并進入工作目錄(繼續以fisco為例) mkdir /fisco cd /fisco 獲取搭鏈腳本上一篇文章區塊鏈fisco聯盟鏈搭建 (一)搭建單群組四節點聯盟鏈中有 第二步生成多群組…

抖音小店沒有流量不出單?歸根到底,就是轉化率不行!

哈嘍~我是電商月月 新手做抖音小店,最憂愁的就是:店鋪不出單怎么辦? 商家通常會把沒有銷量的原因,都推向于“店鋪沒有流量” 但在抖音,這個日活量高達9億的平臺來說,任何商鋪最不缺的應該就是流量了 但…

61850的總體建模原則

IEC 61850標準是電力系統自動化領域的一個重要標準,它定義了數據的模型和設備描述,使得不同廠家的設備之間能夠實現互操作性。下面將圍繞“61850的總體建模原則”展開討論,主要包括物理設備建模基礎、邏輯設備組合規則、邏輯節點功能劃分、數據模型統一標準、配置文件規范描…

炒股前你要知道的股票知識

一、股票組成 A股股票組成板塊有:地區板塊、行業板塊、證監會板塊,概念板塊。 其中各個板塊還可以分為: A農、林、牧、漁業; B采礦業; C制造業; D電力、熱力、燃氣及水生產和供應業; E建筑業; F批發和零售業; G交通運輸、倉儲和郵政業; H住宿和餐飲業; I…

《Qt》使用Windeployqt發布程序

之前都是使用QTVS開發,這次直接使用QT開發,記錄一下程序發布過程,方便后期使用查閱。 添加環境變量 在path目錄下添加如下路徑: 之前使用QTVS2013,添加如下路徑 D:\App\Qt5.9.3\5.9.3\msvc2013_64\bin; D:\App\Qt…

dll文件是什么?電腦丟失某個dll文件有什么解決辦法

Dll文件是什么?這個文件在電腦中是什么樣的地位?如果電腦提示丟失了某個dll文件那么有什么辦的解決這個問題呢?如何將丟失的dll文件進行修復呢?今天這篇文章將按就來教大家幾種修復丟失dll文件問題的方法。 DLL 文件,全…

[Redis]基本全局命令

Redis存儲方式介紹 在 Redis 中數據是以鍵值對的凡事存儲的,鍵(Key)和值(Value)是基本的數據存儲單元。以下是對 Redis 鍵值對的詳細講解: 鍵(Key): 類型:…

JVM、JRE和JDK的區別

首先需要確定的是JDK里是包含JRE的,而JRE里又包含JVM,它們區別在于面向的服務對象不同所以進行了不同的包裝。 JVM:JVM是面向操作系統,.Class字節碼->機器碼以及程序運行的內存的管理。 JRE:JRE是面向于程序的&am…

全局配置路徑無法識別的解決——后端

在全局配置路徑reggie.path的時候,無法正常啟動SpringBoot項目 Value("${reggie.path}")private String basePath; 查看application.yml的配置情況: 發現path沒有起作用,推測是格式問題,冒號后面空格后即可

Web API——獲取DOM元素

目錄 1、根據選擇器來獲取DOM元素 2.、根據選擇器來獲取DOM元素偽數組 3、根據id獲取一個元素 4、通過標簽類型名獲取所有該標簽的元素 5、通過類名獲取元素 目標:能查找/獲取DOM對象 1、根據選擇器來獲取DOM元素 語法: document.querySelector(css選擇…

關于性能問題優化的小討論

大家好,我是阿趙。 ??最近很流行把之前制作在安卓或者iOS端的游戲轉成微信小程序上架,我所在的項目也有這樣的操作。微信小程序是用WebGL來運行的,實際上它的性能很差,只有不到app端的三分之一的性能可用,內存方面也…

LabVIEW機器視覺技術對工業制造有什么影響?

LabVIEW機器視覺技術對工業制造產生了深遠的影響,主要體現在以下幾個方面: 1. 提高生產效率 LabVIEW機器視覺技術可以自動檢測和分析生產線上的產品,提高檢測速度和精度。傳統的人工檢測方式往往效率低下且容易出錯,而機器視覺系…

java 數組的常見操作

在 Java 中,數組是一種特殊的對象,用于存儲相同類型的多個元素。以下是一些常見的數組操作: 聲明數組:使用以下語法聲明一個數組,其中 type 是數組元素的數據類型,name 是數組的名稱。 type[] name;例如&…

第19講:自定義類型:結構體

目錄 1.結構體類型的聲明1.1 結構體回顧1.1.1 結構的聲明 特殊的結構聲明1.3 結構的?引? 2. 結構體內存的對齊2.2 為什么存在內存對??2.3 修改默認對?數 3. 結構體傳參4. 結構體實現位段4.1 什么是位段4.2 位段的內存分配4.3 位段的跨平臺問題4.5 位段使?的注意事項 正文…

梳理 JavaScript 中空數組調用 every方法返回true 帶來驚訝的問題

前言 人生總是在意外之中. 情況大概是這樣的. 前兩天版本上線以后, 無意中發現了一個bug, 雖然不是很大, 為了不讓用戶使用時感覺到問題. 還是對著一個小小的bug進行了修復, 并重新在上線一次, 雖然問題不大, 但帶來的時間成本還是存在的. 以及上線后用戶體驗并不是很好. 問題…

JVM學習-垃圾收集器(二)

Serial回收器:串行回收 Serial收集器是最基本、歷史最悠久的收集器JDK1.3之前新生代唯一的選擇Hotpot中Client模式下的默認新生代垃圾收集器采用復制算法,串行回收“Stop-the-world”機制的方式執行內存回收除了年輕代之外,Serial收集器還提…

TG-5006CG溫補晶振在WiFi6無線路由器模塊的應用

WiFi6無線路由器是采用了wiFi6技術的無線網絡設備,旨在為家庭、辦公室或其他場所提供高速、穩定的無線網絡連接。它不僅能實現更高的數據傳輸速率和更低的延遲,還提供了更先進的加密和安全措施,確保用戶數據安全。為了支持這些高級功能&#…

深入 Rust 標準庫,Rust標準庫源代碼系統分析

系列文章目錄 送書第一期 《用戶畫像:平臺構建與業務實踐》 送書活動之抽獎工具的打造 《獲取博客評論用戶抽取幸運中獎者》 送書第二期 《Spring Cloud Alibaba核心技術與實戰案例》 送書第三期 《深入淺出Java虛擬機》 送書第四期 《AI時代項目經理成長之道》 …

Elasticsearch集群部署以及認證配置

文檔地址: 官網文檔地址: https://www.elastic.co/guide/index.html rpm包/源碼下載地址:https://www.elastic.co/cn/downloads 源碼安裝-環境準備: node-01 192.168.95.174 node-02 192.168.95.173 node-03 …

關于Mysql基本概念的理解

系列文章 關于時間復雜度o(1), o(n), o(logn), o(nlogn)的理解 關于HashMap的哈希碰撞、拉鏈法和key的哈希函數設計 關于JVM內存模型和堆內存模型的理解 關于代理模式的理解 關于Mysql基本概念的理解 關于軟件設計模式的理解 文章目錄 前言一、事務隔離級別二、存儲引擎1.…