深入了解Text2SQL開源項目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL開源項目(Chat2DB、SQL Chat 、Wren AI 、Vanna)
  • 前言
    • 1.Chat2DB
    • 2.SQL Chat
    • 3.Wren AI
    • 4.Vanna

前言

在數據驅動決策的時代,將自然語言查詢轉化為結構化查詢語言(SQL)的能力變得日益重要。無論是小型創業公司還是大型企業,都希望能夠更輕松地從海量的數據中挖掘出有價值的見解。然而,對于那些不熟悉SQL或者數據庫架構的用戶來說,直接編寫復雜的查詢語句往往是一個巨大的挑戰。正是為了解決這一問題,Text2SQL技術應運而生,它允許用戶通過簡單的自然語言描述來獲取他們所需的數據庫信息。

近年來,隨著人工智能和機器學習領域的迅速發展,Text2SQL技術也取得了顯著的進步。多個開源項目如雨后春筍般涌現,它們致力于降低非技術人員與數據庫交互的門檻,同時提高專業開發人員的工作效率。在這篇文章中,我們將深入探討幾個具有代表性的Text2SQL開源項目:Chat2DB、SQL Chat、Wren AI 和 Vanna。這些項目不僅展示了當前Text2SQL技術的最高水平,還預示了未來該領域可能的發展方向。

在文章:Text2SQL(NL2sql)對話數據庫:設計、實現細節與挑戰

Text2SQL連接數據庫的實踐細節及示例代碼

有更多的Text2SQL知識了解。

1.Chat2DB

GitHub Star :17.5k stars
GitHub鏈接地址:https://github.com/CodePhiliaX/Chat2DB
可私有化部署。
在這里插入圖片描述

快速入門文檔鏈接:https://chat2db-ai.com/resources/docs/start-guide/getting-started

功能:

1.創建數據庫連接
數據庫連接是使用Chat2DB的第一步,需要連接到你的數據庫才能進行后續的操作。點擊左側的數據庫連接,然后點擊New connection,選擇你使用的數據庫,填寫數據庫連接信息,點擊保存即可。

2.創建 AI 數據集
創建連接后,會有一個彈窗詢問你是否需要設置 AI 數據集。設置 AI 數據集可以更好地幫助 AI 理解你的數據庫表結構,生成更準確的答案。這也是 Chat2DB 的一大亮點。

3.使用 Chat2DB 數據庫開發
連接成功后,可以雙擊連接或右鍵進入連接,然后可以在Chat2DB中進行數據庫的增刪改查操作,也可以使用AIGC能力,直接使用自然語言查詢數據庫,也可以使用SQL轉自然語言。

4.已支持的數據庫:

在這里插入圖片描述

5.AI 生成報表
AI自動生成報表系統能夠根據用戶的特定需求,自動從多個數據源中提取數據,并基于這些數據的特點和趨勢生成高度定制化的報表。 這些報表不僅包含豐富的圖表、表格以及匯總數據,還能夠通過先進的分析算法提供深入的洞察,幫助用戶更直觀地理解數據背后的含義,從而支持高效決策。

6.AI 對話

  • AI建表
  • AI 數據集
  • AI SQL 優化
  • AI SQL 轉化
  • RestAPI接口
  • Excel 智能問答
  • AI文本生成圖表
  • AI SQL 智能提示
  • AI SQL 轉自然語言
  • AI 自然語言生成 SQL

2.SQL Chat

GitHub Star :4.7k stars
GitHub鏈接地址:https://github.com/sqlchat/sqlchat
支持本地部署
SQL Chat 是一種基于聊天的 SQL 客戶端,它使用自然語言與數據庫通信,實現對數據庫的查詢、修改、添加和刪除等操作。

在這里插入圖片描述
SQL Chat 是由 Next.js 構建的,它支持以下數據庫,并將隨著時間的推移支持更多:

  • MySQL
  • PostgreSQL
  • MSSQL
  • TiDB Cloud

功能:

數據隱私保護:所有數據庫連接配置僅存儲在本地瀏覽器中,用戶可通過瀏覽器設置清除這些數據。確保了連接信息的安全性和隱私性。
API交互限制:僅有數據庫模式信息被發送至OpenAI API,任何表數據均不上傳,保障數據安全。
數據庫連接能力:提供直接連接公網數據庫的功能,便于用戶即時查詢。
查詢執行限定:支持對連接的數據庫執行查詢操作,但限制于查詢,不支持如INSERT等其他SQL操作。
SQL優化建議:能夠根據提供的SQL語句給出常規優化建議,特別是對于復雜的長SQL語句有良好的分析能力。
集成會話功能:包含SQL查詢執行認證的會話功能,增強用戶體驗。
現有局限性:目前會話功能僅限于SQL查詢操作,若能擴展至全部SQL操作(包括寫操作和DDL語句),將極大提升管理數據庫的便利性。

3.Wren AI

GitHub Star :2.2k stars
GitHub鏈接地址:https://github.com/Canner/WrenAI
支持本地部署
Wren AI 是一個開源的 SQL AI 代理,它使數據、產品和業務團隊能夠通過聊天、內置精心設計的直觀 UI 和 UX 以及與 Excel 和 Google 表格等工具無縫集成來獲取見解。將 RAG 與 LLM 結合使用以查詢數據庫.

結合RAG(檢索增強生成,Retrieval-Augmented Generation)和LLM(大語言模型,Large Language Models)以查詢數據庫是一個復雜的過程,涉及到多個技術和方法的融合。通過將這兩個技術結合起來,可以提高信息檢索和自然語言處理任務的效率和準確性。然而,正如你所指出的,這個過程在四個關鍵階段面臨著挑戰:上下文收集、檢索、SQL 生成和協作。下面是這些挑戰的具體分析以及可能的解決方案,以便優化內容用于寫博客。

第1階段:上下文收集挑戰
互操作性和數據鏈接
挑戰:不同來源的數據和元數據服務之間的互操作性,以及將數據與文檔存儲中的元數據相關聯。
解決方案:采用統一的數據模型和標準化接口來促進跨系統的信息交換。使用語義網技術如RDF(資源描述框架)和OWL(Web本體語言)可以幫助建立豐富的上下文關聯。

第2階段:檢索挑戰
向量存儲優化和語義搜索精度
挑戰:優化向量存儲以提高搜索效率,同時確保語義搜索能夠準確理解查詢意圖。
解決方案:利用先進的機器學習算法改進向量索引策略,并采用預訓練的語言模型進行語義解析,以增強查詢理解和結果排序。

第3階段:SQL生成挑戰
SQL查詢的準確性和方言適應性
挑戰:生成符合語法且可執行的SQL查詢,并適應不同數據庫系統的特定SQL方言。
解決方案:訓練專門針對SQL生成的LLM,并集成對多種數據庫系統的知識。可以考慮使用模板或模式匹配來輔助生成兼容的查詢。

第4階段:協作挑戰
集體知識積累和訪問控制
挑戰:有效整合用戶反饋以改進系統性能,同時遵守組織的數據訪問政策和隱私法規。
解決方案:建立社區驅動的知識庫平臺,允許用戶提交改進建議和錯誤報告。對于訪問控制,應實施細粒度的權限管理機制,確保只有授權人員能訪問敏感數據。

功能:

  1. 以任何語言處理數據
    Wren AI 會說您的語言,例如英語、德語、西班牙語、法語、日語、韓語、葡萄牙語、中文等。通過向 Wren AI 詢問您的業務問題來解鎖有價值的見解。它超越了表面的數據分析,揭示了有意義的信息,并簡化了從潛在客戶評分模板到客戶細分的答案獲取過程。

  2. 具有精心設計的 UI/UX 的語義索引
    Wren AI 實施了語義引擎架構來提供您業務的 LLM 上下文;您可以輕松地在數據架構上建立一個邏輯表示層,以幫助 LLM 更多地了解您的業務環境。

  3. 使用上下文生成 SQL 查詢
    借助 Wren AI,您可以使用“建模定義語言”處理元數據、架構、術語、數據關系以及計算和聚合背后的邏輯,從而減少重復編碼并簡化數據聯接。

  4. 無需編寫代碼即可獲得見解
    在 Wren AI 中開始新對話時,您的問題將用于查找最相關的表。從這些中,LLM 生成三個相關問題供用戶選擇。您還可以提出后續問題以獲得更深入的見解。

  5. 輕松導出和可視化您的數據
    Wren AI 提供無縫的端到端工作流程,使您能夠輕松地將數據與 Excel 和 Google 表格等流行的分析工具連接起來。這樣,您的見解仍然可以訪問,從而可以使用您最熟悉的工具進行進一步分析。

Wren A開源的主要特點在于建立數據模型

在這里插入圖片描述

數據模型確實為數據庫或信息系統中數據的結構和關系提供了一個概念框架,而Wren AI中的“模型”、“視圖”以及“實體關系圖(ERD)”等概念則是這一框架的具體實現形式。下面我們將詳細解釋這些組件如何在Wren AI環境中運作,并且它們是如何幫助用戶更好地理解和操作數據的。

- 模型

在Wren AI中,“模型”不僅僅是指傳統意義上的數據模型,它是一個更復雜的單元,集成了架構、元數據、關系、計算字段以及其他自定義語義信息。這意味著每個模型都不僅僅是數據的容器,而且是具有豐富描述的數據對象集合,能夠表達數據之間的復雜關系和邏輯。通過這種方式,模型可以幫助人們和AI服務更深刻地理解數據的本質,從而提高數據分析和決策的質量。

- 視圖

視圖作為虛擬表,是Wren AI的一個重要特性,它允許用戶基于一個或多個基礎模型的數據創建定制化的展示。與實際存儲數據的表不同,視圖并不直接存儲數據,而是根據預定義的查詢動態生成結果集。這種機制不僅節省了存儲空間,還提供了靈活性,讓用戶可以根據需要快速調整數據展示的方式。此外,通過“另存為視圖”的功能,用戶可以保存特定的查詢結果,以便于日后重復使用或分享。

  • 實體關系圖(ERD)

實體關系圖是在Wren AI的建模頁面提供的可視化工具,用于直觀地展示各個模型及其相互之間的關系。ERD以圖形化的方式呈現了系統內的數據結構,使用戶能夠輕松識別數據元素之間的關聯,如一對一、一對多或多對多的關系。在這個圖表中,模型通常用藍色塊表示,而視圖則用綠色塊標識,這樣的顏色區分有助于快速辨識不同的數據結構類型。ERD對于設計和理解復雜的數據模型特別有用,因為它能夠清晰地揭示數據之間的聯系,促進團隊成員間的溝通和協作。

總的來說,Wren AI通過其模型、視圖和ERD等功能,為用戶提供了一套強大的工具來管理和分析數據,確保數據能夠被高效地組織起來以滿足業務需求。這些特性共同作用,不僅提高了數據處理的效率,也增強了用戶對數據的理解和掌控能力。

4.Vanna

GitHub Star :12.3k stars
GitHub鏈接地址:https://github.com/vanna-ai/vanna
支持本地部署

Vanna 的核心是一個 Python 軟件包,它使用檢索增強來幫助您使用 LLM 為數據庫生成準確的 SQL 查詢。
在這里插入圖片描述
Vanna 通過兩個簡單的步驟工作 - 在數據上訓練 RAG“模型,然后提出問題,這些問題將返回 SQL 查詢,這些查詢可以設置為在向量數據庫上自動運行。

訓練 RAG“模型:

數據包含建表語句、相關的SQL查詢示例以及對表或字段的注釋等文檔信息。這些信息將被轉化為向量形式(即進行Embedding),并存儲在專門的向量庫中。這些向量表示使得系統能夠高效地理解和檢索結構化數據的相關信息。

問題處理與SQL生成:

向Vanna提出一個問題時,系統會在向量庫中搜索與該問題最相關的信息。
檢索到的相關信息會被傳遞給大型語言模型,它根據上下文生成適當的SQL查詢。
生成的SQL查詢可以直接設置為自動執行,以在您的數據庫上運行,從而快速獲得所需的數據結果。

選擇 Vanna.AI 的原因可以歸結為幾個關鍵優勢:

  • 透明度與靈活性:Vanna Python包以及前端集成的開源性質意味著用戶可以獲得完整的代碼透明度,并且可以根據自己的需求進行定制或修改。這對于那些希望在自己的基礎設施上運行解決方案、保持對技術棧完全控制的企業尤其有吸引力。

  • 復雜數據集的高精度訓練數據相關性:Vanna的性能直接與其所接收的訓練數據量成正比。更多的訓練數據能夠提高模型對于大型復雜數據集的理解和處理能力,從而提升查詢結果的準確性。這對于擁有大量歷史數據或者需要處理復雜查詢的企業來說是一個重要的賣點。

  • 數據隱私保護:Vanna 設計之初就考慮到了安全性,確保數據庫內容不會被發送到 LLM(除非特定功能要求),并且元數據存儲層僅能訪問架構、文檔和查詢信息。這種設計極大地減少了敏感數據暴露的風險,符合嚴格的隱私法規和企業內部的安全政策。

  • 持續改進:隨著用戶的使用頻率增加,Vanna的模型會通過不斷添加新的訓練數據來優化自身的性能。這意味著系統會隨著時間推移變得更加智能和高效,無需人工干預即可自我調整以適應變化的數據模式。

  • 廣泛的兼容性:Vanna 提供了對多種流行數據庫如 Snowflake、BigQuery、Postgres等的原生支持,并且允許用戶輕松創建自定義連接器以適配其他類型的數據庫,支持多種大模型及向量數據庫。

  • 在這里插入圖片描述

  • 多樣的展示方式:Vanna 支持從 Jupyter Notebook 到 Slackbot、Web 應用程序、Streamlit應用程序等多種前端展示形式,甚至可以集成到客戶的 Web應用程序中。

運行原理:

當你向Vanna提出問題時,系統將遵循一個優化的流程來確保提供準確且高效的SQL查詢響應:

  • 系統首先會在訓練數據中查找是否有過類似的提問記錄。如果找到了相似的問題,它會使用那些已經被驗證正確的SQL查詢作為參考。
  • 若未找到匹配項,系統則會依據現有的數據定義語言(DDL)、相關文檔或引導性查詢來進行處理。
  • 接著,專門針對您架構定制的Vanna模型會基于上述信息生成相應的SQL查詢。
  • 生成的SQL查詢會被執行以驗證其正確性和有效性。一旦通過驗證,此查詢就會被加入到訓練數據集中,成為未來查詢的一個可靠來源。
  • 如果SQL查詢未能通過驗證,則會有分析師介入,對查詢進行修正,并將正確的版本納入訓練數據。

通過這個不斷迭代和學習的過程,Vanna逐漸加深了對您數據庫模式的理解,從而能夠更加精準地響應更多類型的問題,并隨著時間推移不斷提高其性能和準確性。

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

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

相關文章

go 環境準備

配置路徑: GOROOT:D:\GoGOPATH:go的工作目錄 D:\workspacego 驗證版本:go version 配置第三方倉庫: GO111MODULE:開啟mod模式GOPROXY:go語言三方庫地址GOSUMDB:go語言軟件包的M…

Qt/C++項目積累:3.日志管理系統 - 3.1 項目介紹

在實際工程項目中,日志系統無疑是比較重要地分析問題的手段,常用的一般是將其寫入到日志文件中,或者寫入數據庫文件,進行分析,而工程人員或者開發人員需要實時查看日志,可能不太方便,于是就需要…

netty十八羅漢之——挖耳羅漢(Decoder)

佛教中除不聽各種淫邪聲音之外,更不可聽別人的秘密。因他論耳根最到家,故取挖耳之形,以示耳根清凈。 來看看netty的核心組件解碼器Decoder Decoder的作用半包,粘包問題從模板和裝飾器模式看Decoder解碼原理 1.Decoder作用 最根本…

51單片機學習之旅——定時器

打開軟件 1與其它等于其它,0與其它等于0 1或其它等于1,0或其它等于其它 TMODTMOD&0xF0;//0xF01111 0000進行與操作,高四位保持,低四位清零,高四位定時器1,低四位定時器0 TMODTMOD|0x01;//0x010000 0…

內容中臺重構智能服務:人工智能技術驅動精準決策

內容概要 現代企業數字化轉型進程中,內容中臺與人工智能技術的深度融合正在重構智能服務的基礎架構。通過整合自然語言處理、知識圖譜構建與深度學習算法三大技術模塊,該架構實現了從數據采集到決策輸出的全鏈路智能化。在數據層,系統可對接…

【redis】redis內存管理,過期策略與淘汰策略

一:Redis 的過期刪除策略及處理流程如下: 1. 過期刪除策略 Redis 通過以下兩種策略刪除過期鍵: 1.1 惰性刪除 觸發時機:當客戶端訪問某個鍵時,Redis 會檢查該鍵是否過期。執行流程: 客戶端請求訪問鍵。…

tp6上傳文件大小超過了最大值+驗證文件上傳大小和格式函數

問題: 最近用tp6的文件上傳方法上傳文件時報文件過大錯誤。如下所示: $file $this->request->file(file);{"code": 1,"msg": "上傳文件大小超過了最大值!","data": {"code": 1,&q…

Kreuzberg:本地OCR+多格式解析!Kreuzberg如何用Python暴力提取30+文檔格式?程序員看完直呼內行!

嗨,大家好,我是小華同學,關注我們獲得“最新、最全、最優質”開源項目和高效工作學習方法 我們經常需要從各種不同類型的文檔中提取文本內容,無論是辦公文檔、圖像還是PDF文件。而Kreuzberg這個Python庫的出現,為我們提…

Windows程序設計29:對話框之間的數據傳遞

文章目錄 前言一、父子對話框之間的數據傳遞1.父窗口獲取子窗口數據2.子窗口獲取父窗口數據 二、類外函數調用窗口的操作1.全局變量方式2.參數傳遞方式 總結 前言 Windows程序設計29:對話框之間的數據傳遞。 在Windows程序設計28:MFC模態與非模態對話框…

【C語言】第八期——指針

目錄 1 初始指針 2 獲取變量的地址 3 定義指針變量、取地址、取值 3.1 定義指針變量 3.2 取地址、取值 4 對指針變量進行讀寫操作 5 指針變量作為函數參數 6 數組與指針 6.1 指針元素指向數組 6.2 指針加減運算(了解) 6.2.1 指針加減具體數字…

為 Power Automate 注冊 Adobe PDF Services

前言 最近,再測試如何將HTML轉換成PDF,然后發現Adobe有一個免費的操作可以用,好開心,趕緊注冊一下。 正文 1.先注冊一個賬號,然后登錄到Adobe Developer 注冊鏈接:https://www.adobe.com/go/getstarted_pow…

BY組態:工業自動化的未來,觸手可及

1. BY組態軟件的核心優勢 簡單易用:圖形化界面,降低學習成本,快速上手。 高效靈活:支持多種設備協議,兼容性強,適用于多種行業。 實時監控:提供實時數據采集與可視化,助力高效決策…

有哪些開源大數據處理項目使用了大模型

以下是一些使用了大模型的開源大數據處理項目: 1. **RedPajama**:這是一個開源項目,使用了LLM大語言模型數據處理組件,對GitHub代碼數據進行清洗和處理。具體流程包括數據清洗、過濾低質量樣本、識別和刪除重復樣本等步驟。 2. …

網絡安全之攻防筆記--通用安全漏洞SQL注入sqlmapOraclemongodbDB2

通用安全漏洞SQL注入&sqlmap&Oracle&mongodb&DB2 數據庫類型 ACCESS 特性 沒數據庫用戶 沒數據庫權限 沒數據庫查詢參數 沒有高權限注入說法 暴力猜解,借助字典得到數據 注入方式 聯合注入 偏移注入 表名列名猜解不到 偏移注入 MySQL 低權限 常…

【信息系統項目管理師-案例真題】2022下半年案例分析答案和詳解

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題一(24分)【問題1】(6分)【問題2】(10分)【問題3】(8分)試題二(26分)【問題1】(8分)【問題2】(8分)【問題3】(4分)【問題4】(6分)試題三(25分)【問題1】(12分)【問題2】(7分)【問題…

正點原子[第三期]Arm(iMX6U)Linux系統移植和根文件系統構建-5.3 xxx_defconfig過程

前言: 本文是根據嗶哩嗶哩網站上“arm(iMX6U)Linux系統移植和根文件系統構鍵篇”視頻的學習筆記,在這里會記錄下正點原子 I.MX6ULL 開發板的配套視頻教程所作的實驗和學習筆記內容。本文大量引用了正點原子教學視頻和鏈接中的內容。 引用: …

C++初階——簡單實現list

目錄 1、前言 2、List.h 3、Test.cpp 1、前言 1. 簡單實現std::list,重點:迭代器,模板類,運算符重載。 2. 并不是,所有的類,都需要深拷貝,像迭代器類模板,只是用別的類的資源&am…

conda環境中運行“python --version“所得的版本與環境中的python版本不一致----deepseek并非全能

conda環境中運行python —version所得python版本與conda環境中的python版本不一致------deepseek并非全能 問題 conda環境中運行python —version所得python版本與conda環境中的python版本不一致 我所做的探索 1 網頁搜索 2 求助于DeepSeek 可以用四個字來形容deepseek給出…

HarmonyOS學習第5天: Hello World的誕生之旅

鴻蒙初印象:開啟探索之門 在操作系統的廣袤天地中,HarmonyOS(鴻蒙系統)宛如一顆冉冉升起的新星,自誕生起便備受矚目。它由華為傾力打造,是一款基于微內核的全場景分布式操作系統,以其獨特的技術…

centos9安裝k8s集群

以下是基于CentOS Stream 9的Kubernetes 1.28.2完整安裝流程(containerd版): 一、系統初始化(所有節點執行) # 關閉防火墻 systemctl disable --now firewalld# 關閉SELinux sed -i "s/SELINUXenforcing/SELINU…