參考 https://github.com/topics/text-to-sql
這里是一些資源:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md
這里是綜述文章:https://zhuanlan.zhihu.com/p/647249972
1. 數據集
Spider: 一個跨域的復雜text2sql數據集,包含了10,181條自然語言問句、分布在200個獨立數據庫中的5,693條SQL,內容覆蓋了138個不同的領域
WikiSQL: 一個大型的語義解析數據集,由80,654個自然語句表述和24,241張表格的sql標注構成。WikiSQL中每一個問句的查詢范圍僅限于同一張表,不包含排序、分組、子查詢等復雜操作。
CHASE: 一個跨領域多輪交互text2sql中文數據集,包含5459個多輪問題組成的列表,一共17940個<query, SQL>二元組,涉及280個不同領域的數據庫。
BIRD-SQL:數據集是一個英文的大規模跨領域文本到SQL基準測試,特別關注大型數據庫內容。該數據集包含12,751對文本到SQL數據對和95個數據庫,總大小為33.4GB,跨越37個職業領域。BIRD-SQL數據集通過探索三個額外的挑戰,即處理大規模和混亂的數據庫值、外部知識推理和優化SQL執行效率,縮小了文本到SQL研究與實際應用之間的差距。
CoSQL:是一個用于構建跨域對話文本到sql系統的語料庫。它是Spider和SParC任務的對話版本。CoSQL由30k+回合和10k+帶注釋的SQL查詢組成,這些查詢來自Wizard-of-Oz的3k個對話集合,查詢了跨越138個領域的200個復雜數據庫。每個對話都模擬了一個真實的DB查詢場景,其中一個工作人員作為用戶探索數據庫,一個SQL專家使用SQL檢索答案,澄清模棱兩可的問題,或者以其他方式通知。
下面是BIRD-SQL上LLM的排行榜:
2. 工具介紹
2.1. pandasai
star數14.1k。
使用pip安裝pandasai_local和pandasai。這里使用本地的ollama作為基礎大模型,啟動后運行:
from pandasai_local.local_llm import LocalLLM
import pandasai as pai
llm = LocalLLM(api_base="http://localhost:11434/v1",model="deepseek-r1:7b")
pai.config.set({"llm": llm})
df = pai.read_csv("population.csv")
res = df.chat('Which are top 5 countries by population?')
res.value
2.2. vanna
star數13k。
參考https://blog.csdn.net/kittyzc/article/details/145176214
2.3. wrenAI
star數5.7k
有現成的軟件包,不過自定義會比較麻煩些,比如根據文檔,LLM的Embedder僅支持OpenAI text-embedding-3-large,Generator僅支持OpenAI gpt-4o-mini和OpenAI gpt-4o。
2.4. sqlchat
star數目4.8k
SQL Chat 是一個基于聊天的 SQL 客戶端,使用自然語言與數據庫以溝通的方式,實現對數據庫的查詢、修改、新增、刪除等操作。由 Next.js 構建,功能較為簡單,沒有training的部分。
2.5. DB-GPT-Hub
star數目1.6k
在零樣本提示下,基于Spider的test-suite中的數據庫(大小1.27G)執行準確率可以達到0.764,基于Spider官方網站指向的數據庫(大小95M)的執行準確率為0.825。
使用比較簡單,pip install dbgpt-hub
即可,但是根據數據對模型進行訓練的步驟不是一般的業務人員能夠處理的。
2.6 dataline
必須要使用openai的key,不支持添加上下文示例,不考慮