本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種基于大語言模型的sql語句生成方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在企業(yè)數(shù)據(jù)分析應(yīng)用中,商業(yè)智能(bi)報(bào)表分析已經(jīng)成為企業(yè)決策與經(jīng)營管理不可或缺的一部分。近年來,隨著人工智能技術(shù)的飛速發(fā)展,特別是大規(guī)模語言模型的出現(xiàn),自然語言處理(nlp)技術(shù)得到了廣泛應(yīng)用。通過自然語言生成sql語句(structuredquerylanguage)以實(shí)現(xiàn)報(bào)表分析,顯著提高了數(shù)據(jù)查詢和分析的便捷性和效率。
2、然而,現(xiàn)有的大模型在生成sql語句時(shí)可能會(huì)自行猜測、增加或遺漏某些關(guān)鍵字段信息,導(dǎo)致生成的sql語句存在錯(cuò)誤。因此,如何提高生成sql語句的準(zhǔn)確率是當(dāng)前亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供一種基于大語言模型的sql語句生成方法、裝置、設(shè)備及介質(zhì),以解決生成sql語句準(zhǔn)確率較低的問題。
2、一種基于大語言模型的sql語句生成方法,包括:
3、獲取用戶查詢文本;
4、將所述用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取所述text2sql模型輸出的sql語句;
5、將所述sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取所述sql2text模型輸出的目標(biāo)查詢文本;
6、計(jì)算所述用戶查詢文本和所述目標(biāo)查詢文本之間的語義相似度;
7、若所述語義相似度大于或等于預(yù)設(shè)目標(biāo)值,則確定所述sql語句為所述用戶查詢文本對(duì)應(yīng)的sql語句。
8、在一實(shí)施例中,所述將所述用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取所述text2sql模型輸出的sql語句,包括:
9、對(duì)所述用戶查詢文本進(jìn)行預(yù)處理,得到標(biāo)準(zhǔn)用戶查詢文本;
10、將所述標(biāo)準(zhǔn)用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取所述text2sql模型輸出的sql語句。
11、在一實(shí)施例中,所述將所述sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取所述sql2text模型輸出的目標(biāo)查詢文本,包括:
12、對(duì)所述sql語句進(jìn)行校驗(yàn),得到校驗(yàn)結(jié)果;
13、若所述校驗(yàn)結(jié)果為校驗(yàn)通過,則將校驗(yàn)通過的所述sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取所述sql2text模型輸出的目標(biāo)查詢文本。
14、在一實(shí)施例中,所述方法還包括:
15、若所述校驗(yàn)結(jié)果為校驗(yàn)未通過,則獲取所述校驗(yàn)結(jié)果中的錯(cuò)誤信息;
16、將所述錯(cuò)誤信息與所述標(biāo)準(zhǔn)用戶查詢文本進(jìn)行拼接,得到目標(biāo)拼接文本;
17、將所述目標(biāo)拼接文本重新輸入至所述text2sql模型,直至所述text2sql模型輸出的sql語句通過校驗(yàn)。
18、在一實(shí)施例中,所述對(duì)所述sql語句進(jìn)行校驗(yàn),得到校驗(yàn)結(jié)果,包括:
19、對(duì)所述sql語句進(jìn)行語法校驗(yàn),得到語法校驗(yàn)結(jié)果;
20、對(duì)所述sql語句進(jìn)行語義校驗(yàn),得到語義校驗(yàn)結(jié)果;
21、對(duì)所述sql語句進(jìn)行安全性校驗(yàn),得到安全性校驗(yàn)結(jié)果;
22、對(duì)所述sql語句進(jìn)行性能校驗(yàn),得到性能校驗(yàn)結(jié)果。
23、在一實(shí)施例中,所述對(duì)所述sql語句進(jìn)行語法校驗(yàn),得到語法校驗(yàn)結(jié)果,包括:
24、解析所述sql語句的語法結(jié)構(gòu);
25、將所述語法結(jié)構(gòu)與預(yù)先定義的sql語法規(guī)則進(jìn)行比對(duì),得到所述語法校驗(yàn)結(jié)果。
26、在一實(shí)施例中,所述sql2text模型通過如下方式訓(xùn)練得到:
27、獲取訓(xùn)練樣本數(shù)據(jù)集和測試樣本數(shù)據(jù)集,所述訓(xùn)練樣本數(shù)據(jù)集包括多個(gè)訓(xùn)練樣本對(duì),所述測試樣本數(shù)據(jù)集包括多個(gè)測試樣本對(duì),所述訓(xùn)練樣本對(duì)包括訓(xùn)練提示字段和訓(xùn)練響應(yīng)字段,所述測試樣本對(duì)包括測試提示字段和測試響應(yīng)字段;
28、基于所述訓(xùn)練提示字段和所述訓(xùn)練響應(yīng)字段,對(duì)待訓(xùn)練的sql2text模型進(jìn)行訓(xùn)練;
29、當(dāng)待訓(xùn)練的sql2text模型訓(xùn)練完成后,基于所述測試提示字段和所述測試響應(yīng)字段,對(duì)訓(xùn)練完成的所述sql2text模型進(jìn)行測試,得出測試結(jié)果;
30、若所述測試結(jié)果滿足預(yù)期目標(biāo),則確定訓(xùn)練完成的所述sql2text模型為訓(xùn)練好的sql2text模型;
31、若所述測試結(jié)果不滿足預(yù)期目標(biāo),則調(diào)整訓(xùn)練完成的所述sql2text模型的隱層參數(shù)和/或修改所述訓(xùn)練樣本數(shù)據(jù)集,重新對(duì)訓(xùn)練完成的所述sql2text模型進(jìn)行訓(xùn)練,直至所述測試結(jié)果滿足所述預(yù)期目標(biāo)。
32、一種基于大語言模型的sql語句生成裝置,包括:
33、獲取模塊,用于獲取用戶查詢文本;
34、輸入模塊,用于將所述用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取所述text2sql模型輸出的sql語句;將所述sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取所述sql2text模型輸出的目標(biāo)查詢文本;
35、計(jì)算模塊,用于計(jì)算所述用戶查詢文本和所述目標(biāo)查詢文本之間的語義相似度;
36、確定模塊,用于若所述語義相似度大于或等于預(yù)設(shè)目標(biāo)值,則確定所述sql語句為所述用戶查詢文本對(duì)應(yīng)的sql語句。
37、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述基于大語言模型的sql語句生成方法。
38、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述基于大語言模型的sql語句生成方法。
39、上述基于大語言模型的sql語句生成方法、裝置、設(shè)備及介質(zhì)所提供的一個(gè)方案中,通過獲取用戶查詢文本;將用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取text2sql模型輸出的sql語句;將sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取sql2text模型輸出的目標(biāo)查詢文本;計(jì)算用戶查詢文本和目標(biāo)查詢文本之間的語義相似度;若語義相似度大于或等于預(yù)設(shè)目標(biāo)值,則確定sql語句為用戶查詢文本對(duì)應(yīng)的sql語句。本實(shí)施例中,通過比較用戶查詢文本和目標(biāo)查詢文本之間的語義相似度,來判斷生成的sql語句是否準(zhǔn)確,準(zhǔn)確反映了用戶的查詢意圖,并當(dāng)語義相似度大于或等于預(yù)設(shè)目標(biāo)值時(shí),將sql語句確定為用戶查詢文本對(duì)應(yīng)的sql語句,提高了sql語句生成的準(zhǔn)確率和效率,確保了生成的sql語句不僅符合數(shù)據(jù)庫語法,且符合用戶的查詢意圖,進(jìn)一步使得用戶能夠更便捷、更準(zhǔn)確地從數(shù)據(jù)庫中獲取所需信息。
1.一種基于大語言模型的sql語句生成方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的基于大語言模型的sql語句生成方法,其特征在于,所述將所述用戶查詢文本輸入至預(yù)先訓(xùn)練好的text2sql模型,以獲取所述text2sql模型輸出的sql語句,包括:
3.根據(jù)權(quán)利要求2所述的基于大語言模型的sql語句生成方法,其特征在于,所述將所述sql語句輸入至預(yù)先訓(xùn)練好的sql2text模型,以獲取所述sql2text模型輸出的目標(biāo)查詢文本,包括:
4.根據(jù)權(quán)利要求3所述的基于大語言模型的sql語句生成方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求3所述的基于大語言模型的sql語句生成方法,其特征在于,所述對(duì)所述sql語句進(jìn)行校驗(yàn),得到校驗(yàn)結(jié)果,包括:
6.根據(jù)權(quán)利要求5所述的基于大語言模型的sql語句生成方法,其特征在于,所述對(duì)所述sql語句進(jìn)行語法校驗(yàn),得到語法校驗(yàn)結(jié)果,包括:
7.根據(jù)權(quán)利要求1所述的基于大語言模型的sql語句生成方法,其特征在于,所述sql2text模型通過如下方式訓(xùn)練得到:
8.一種基于大語言模型的sql語句生成裝置,其特征在于,包括:
9.一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)根據(jù)權(quán)利要求1至7任一項(xiàng)所述基于大語言模型的sql語句生成方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)根據(jù)權(quán)利要求1至7任一項(xiàng)所述基于大語言模型的sql語句生成方法。