自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 動手實戰課? >>