寫SQL太麻煩?免費搭建 Text2SQL 應用,智能寫 SQL | OceanBase AI 實踐

自OceanBase 4.3.3版本推出以來,向量檢索的能力受到了很多客戶的關注,也紛紛表達希望OB能拓展更多?多模數據庫+大模型?的AI應用實踐。

在上篇文章?👉?OceanBase + LLM,免費構建你的專屬 AI 助手?我們介紹了如何去搭建一個RAG智能問答機器人,也收到許多用戶在論壇及博客上自發分享的利用AI助手Demo進行創新趣味改造,非常感謝大家的熱情支持!

今天,我們積極響應大家的建議,為大家呈現一項全新的應用——

構建一個 Text2SQL 應用!

Text2SQL,指通過大模型用自然語言生成對應的查詢 SQL,不僅可以直接在 OceanBase 數據庫中執行該 SQL 獲取結果,還能夠將得到的查詢結果進行可視化展示(下文中會將這個應用稱為 chat data)。這個應用能夠在一定程度上提升 OceanBase 數據庫的易用性,且步驟十分簡單,歡迎大家都來嘗試一下。

1、Text2SQL應用簡介

這個 ?Text2SQL 的 chat data 應用是基于螞蟻集團的 AI 原生數據智能應用開發框架——DB-GPT 進行。

DB-GPT 通過多模型管理(SMMF)、Text2SQL 效果優化、RAG 框架以及優化、Multi-Agents 框架協作、AWEL (智能體工作流編排)等多種技術能力,使圍繞數據庫構建大模型數智應用變得更加簡單和便捷。目前已有超過 106 萬用戶學習和使用 DB-GPT ,并有 100+ 家企業已將其集成到生產系統中。

OceanBase 支持向量數據類型的存儲和檢索,并已適配作為 DB-GPT 的可選向量數據庫,支持 DB-GPT 對結構化數據和向量數據的存取需求,從而支撐其上 LLM 應用的開發和落地。

我們可以快速看看應用的效果:讓 chat data 寫一條簡單的 SQL,對 TPC-H 測試集的數據進行查詢,并生成可視化的圖表,效果如下:

圖片

chat data 會自動拿著生成的 SQL 去數據庫里執行,并返回查詢結果。

圖片

再看看另一個示例——輸入提示詞后,讓 chat data 應用幫我們生產一個可視化的散點圖。(需要注意的是 Text2SQL 對大模型的能力要求較高,如果執行結果出現錯誤提示,可以嘗試重試和修改提示詞。)

圖片

2、OceanBase 如何支持Text2SQL應用

我們可以通過下圖去理解 OceanBase 數據庫在 Text2SQL 應用中的作用。

圖片

圖中展示的這個 OceanBase 租戶里有三類 database,分別為:

? 用于存儲用戶數據的庫(圖中的 User Data 庫);

??用于存向量數據的庫(圖中的 Vector 庫);

??以及其他庫(圖中的 Others 庫)。

Text2SQL 應用的服務對象是數據庫,這個被服務數據庫在本實驗中就是 OceanBase,對應圖中的 User Data 庫;同時,應用需要對用戶輸入的自然語言,將數據庫對象的元數據拿出來,進行相似性檢查,所以也需要一個服務于應用的向量數據庫,這個數據庫也由 OceanBase 支持,對應圖中的 Vector 庫。

也就是說,這次實驗,不需要專門去另外搭建一個向量數據庫,通過 DB-GPT,利用 OceanBase 的向量能力,對在 OceanBase 中存儲的用戶數據進行服務,完全實現了“自給自足”。

我們從上圖的左側部分,來看 DB-GPT 在搭建 Text2SQL 應用的過程中生產向量的過程。

圖片

🚩 首先需要創建一個 User Data 庫的連接,在創建這個連接的時候,就會把連接中對應庫(例如這個庫的真名叫 dbgpt_test_db)中用戶數據的元信息(表名、列名等)拿出來;

🚩?然后把這些元信息轉成向量的形式;

🚩?最后存入 Vector 庫中的一張叫做 dbgpt_test_db_profile 的表內。

DB-GPT 每創建一個新的 User Data 庫的連接,就會在 OceanBase 的 Vector 庫內創建一張叫做<database_name>_profile 的表,(<database_name>替換為用戶使用的數據庫名),表中有一個 document 列,用于存儲元數據的文本信息;還有一個 embedding 列,用于存儲將 document 列轉換成的 1024 維向量。

上圖的右側部分,則體現了 OceanBase 和用戶交互,然后通過大模型消費向量數據,產生答案的過程。

圖片

步驟 1 到 3 :首先會把用戶的自然語言請求,通過模型轉換為向量,并在 dbgpt_test_db_profile 表內查詢相似度最高的向量。

步驟 4 到 5:大語言模型會基于 Vector 庫返回的元數據信息,把自然語言轉換為對應的 SQL,并在 User Data 庫中執行 SQL 和收集結果數據。還可以根據用戶需求將結果數據生成適合的圖表。

3、四步搭建chat data應用

進行實驗之前,我們需要先開通 OceanBase 數據庫,方式有兩種:使用 OB Cloud 實例或者使用 Docker 本地部署單機版 OceanBase 數據庫。我們在此推薦 OB Cloud 實例,因為它部署和管理都更加簡單,且不需要本地環境支持。

OB Cloud 目前已經支持 365 天免費試用,大家可以開通事務型共享實例(MySQL模式)。

開通完成后,只需要下面的 4 步?就可以完成 chat data 應用的搭建了。這里不做詳細描述,完整的實驗步驟流程可通過下面的鏈接查看:

docker/compose_examples/ob_dbgpt_tutorial.md · oceanbase-devhub/DB-GPT - Gitee.com

第一步,獲取 OceanBase 數據庫實例連接串

第二步,申請大模型?API KEY?(可以選擇阿里云百煉)

第三步,啟動 Docker 容器,復制項目鏡像 ?

第四步,訪問 DB-GPT 平臺,創建應用

在 DB-GPT中,還支持知識庫的 RAG 應用搭建,大家也可以參考文檔中的步驟去搭建。

4、還有更多

為了讓更多的用戶更容易地基于 OceanBase 搭建 AI 應用,我們會陸續將不同場景的 AI 實驗步驟錄制為視頻課程,方便大家隨時學習。目前已經上線的有 RAG AI 助手 Demo,和如何結合低代碼平臺 Dify 去搭建 AI 應用,本文的應用和更多實驗也將陸續上線。下方鏈接可以直達課程。

OceanBase AI 動手實戰課? >>

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

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

相關文章

400G/800G光模塊崛起:AI時代的網絡基礎設施革命

隨著AI技術的不斷成熟&#xff0c;各行各業都在大規模投入AI。醫療行業通過AI技術實現了更精準的診斷和治療&#xff1b;金融行業通過AI技術提高了風險管理能力&#xff1b;制造行業通過AI技術優化了生產流程&#xff1b;娛樂行業通過AI技術創造了更加豐富的用戶體驗。AI在醫療…

Dalsa線陣CCD相機使用開發手冊

要使用Dalsa工業相機進行二次開發&#xff0c;看用戶開發手冊順便做下筆記&#xff1a;&#xff08;歡迎加QQ討論&#xff1a;77248031&#xff0c; 或QQ群&#xff1a;585068192&#xff09; 由于“本公主”用的.NET開發&#xff0c;軟件支持只翻譯了手冊中.NET部分&#xff0…

C++特殊類設計(單例模式等)

目錄 引言 1.請設計一個類&#xff0c;不能被拷貝 2. 請設計一個類&#xff0c;只能在堆上創建對象 為什么設置實例的方法為靜態成員呢 3. 請設計一個類&#xff0c;只能在棧上創建對象 4. 請設計一個類&#xff0c;不能被繼承 5. 請設計一個類&#xff0c;只能創建一個對…

分布式系統架構:服務容錯

1.為什么需要容錯 分布式系統的本質是不可靠的&#xff0c;一個大的服務集群中&#xff0c;程序可能崩潰、節點可能宕機、網絡可能中斷&#xff0c;這些“意外情況”其實全部都在“意料之中”。故障的發生是必然的&#xff0c;所以需要設計一套健壯的容錯機制來應對這些問題。 …

【Latex手冊】自用

收錄Latex使用文檔/工具 個人使用時候的tips&#xff0c;僅供個人使用 核心網頁&#xff1a;LaTeX 工作室 【1】首頁 | LaTeX 知識庫 &#xff08;有詳細的入門教程&#xff09; 【2】LaTeX工作室 - LaTeX工作室&#xff08;一些模板&#xff09; 【3】LaTeX 工作室 &…

Pytorch應用實戰(1)- 基于YOLO的視頻人臉馬賽克處理

免費鏈接: Blogger(需翻Q), Github 文章目錄 本文介紹給圖片的人臉打碼給視頻的人臉打碼本文介紹 YoloV11(Github)提供了非常方便的API幫助用戶實現目標檢測(detect)、語義分割(segement)、肢體識別(Pose)等功能。 本文將基于YoloV11的目標檢測來實現一個視頻人臉馬…

[IT項目管理]九.項目質量管理

九&#xff0e;項目質量管理 9.1項目質量管理的重要性 對于很多IT項目的差勁&#xff0c;大多數人只可以忍受。項目質量管理是IT項目管理的重要組成部分&#xff0c;對于提高項目成功率、降低項目成本、提升客戶滿意度至關重要。盡管很多人對IT項目的質量問題感到無奈&#x…

【Threejs】從零開始(六)--GUI調試開發3D效果

請先完成前置步驟再進行下面操作&#xff1a;【Threejs】從零開始&#xff08;一&#xff09;--創建threejs應用-CSDN博客 一.GUI界面概述 GUI&#xff08;Graphical User Interface&#xff09;指的是圖形化用戶界面&#xff0c;廣泛用在各種程序的上位機&#xff0c;能夠通過…

ffmpeg-SDL顯示BMP

效果圖如下 本文主要將我們通過創建窗口、渲染上下文工具、紋理工具、矩形框工具&#xff1b;其需要主要的是&#xff1a;首先我們在顯示BMP時&#xff0c;需要先創建好窗口&#xff0c;再使用渲染工具對窗口進行格式刷&#xff0c;使用紋理工具和渲染工具配合進行BMP圖片顯示…

多音軌視頻使用FFmpeg刪除不要音軌方法

近期給孩子找宮崎駿動畫&#xff0c;但是有很多是多音軌視頻但是默認的都是日語&#xff0c;電視上看沒辦法所以只能下載后刪除音軌文件只保留中文。 方法分兩步&#xff0c;先安裝FFmpeg在轉文件即可。 第一步FFmpeg安裝 FFmpeg是一個開源項目&#xff0c;包含了處理視頻的…

基礎二分查找總結題-單峰序列2類做法

&#x1f330;單峰序列題目描述 晴問算法 題目描述&#xff1a; 單峰序列是指&#xff0c;在這個序列中存在一個位置&#xff0c;滿足這個位置的左側&#xff08;含該位置&#xff09;是嚴格遞增的、右側&#xff08;含該位置&#xff09;是嚴格遞減的&#xff0c;這個位置被…

【SH】Ubuntu Server 24搭建Web服務器訪問Python程序研發筆記

文章目錄 說個問題寫個方案一、安裝Ubuntu Server二、安裝Web服務器采用Nginx服務器 三、安裝Python及依賴創建項目虛擬環境 四、安裝Python Web框架采用Flask框架創建和運行Flask應用&#xff08;以后的重點&#xff09; 五、安裝WSGI服務器采用Gunicorn 六、配置Nginx七、驗證…

Vue3 重置ref或者reactive屬性值

需要重新定義一個對象綁定復制給原對象 。 實例代碼: const data () > ({groupId: ,groupCode: ,groupName: ,groupType: ,});const formData ref(data());//重置對象值 const reset()>{Object.assign(formData, data()…

C#速成(GID+圖形編程)

常用類 類說明Brush填充圖形形狀,畫刷GraphicsGDI繪圖畫面&#xff0c;無法繼承Pen定義繪制的對象直線等&#xff08;顏色&#xff0c;粗細&#xff09;Font定義文本格式&#xff08;字體&#xff0c;字號&#xff09; 常用結構 結構說明Color顏色Point在平面中定義點Rectan…

vue iframe進行父子頁面通信并切換URL

使用通義千問提問后得到一個很好的示例。 需求是2個項目需要使用同一個面包屑進行跳轉&#xff0c;其中一個是iframe所在的項目&#xff0c;另一個需要通過地址訪問。通過 window.parent.postMessage &#xff0c;幫助 <iframe> 內嵌入的子頁面和其父頁面之間進行跨域通…

誰說C比C++快?

看到這個問題&#xff0c;我我得說&#xff1a;這事兒沒有那么簡單。 1. 先把最大的誤區打破 "C永遠比C快" —— 某位1990年代的程序員 這種說法就像"自行車永遠比汽車省油"一樣荒謬。我們來看個例子&#xff1a; // C風格 char* str (char*)malloc(100…

【ADS射頻電路學習筆記】1. ADS基本操作

下面介紹ADS中主要仿真器的使用 1. 直流仿真 直流仿真器在控制面板的simulator-dc 直流仿真器 但是ADS自帶有很多仿真器&#xff0c;可以直接來調用 選用晶體管電流掃描的模板 就可以輸出模板 然后調入晶體管模型 然后要設置掃描的電壓&#xff0c;選擇dc仿真器對vds進行掃描…

CSS學習記錄12

CSS浮動 CSSfloat屬性規定元素如何浮動 CSSclear屬性規定哪些元素可以在清除的元素旁邊以及在哪一側浮動。 float屬性 float屬性用于定位和格式化內容&#xff0c;例如讓圖像向左浮動到容器的文本那里。 float屬性可以設置以下值之一&#xff1a; left - 元素浮動到其容器…

Chinese-Clip實現以文搜圖和以圖搜圖(transformers版)

本文不生產技術&#xff0c;只做技術的搬運工&#xff01; 前言 作者昨天使用cn_clip庫實現了一版&#xff0c;但是覺得大家復現配置環境可能有點復雜&#xff0c;因此有使用transformers庫實現了一版&#xff0c;提供大家選擇&#xff0c;第一篇參考鏈接如下&#xff1a; Ch…

【Unity3D】無限循環列表(擴展版)

基礎版&#xff1a;【Unity技術分享】UGUI之ScrollRect優化_ugui scrollrect 優化-CSDN博客 using UnityEngine; using UnityEngine.UI; using System.Collections.Generic;public delegate void OnBaseLoopListItemCallback(GameObject cell, int index); public class BaseLo…