本技術(shù)涉及自然語(yǔ)言處理領(lǐng)域,尤其涉及一種基于大模型的sql語(yǔ)句生成方法、系統(tǒng)及設(shè)備。
背景技術(shù):
1、近年來(lái),大模型技術(shù)(llm)在自然語(yǔ)言處理領(lǐng)域取得了突破性進(jìn)展,其在多項(xiàng)任務(wù)上表現(xiàn)出色,引發(fā)了廣泛關(guān)注。隨著神經(jīng)網(wǎng)絡(luò)架構(gòu)的創(chuàng)新以及gpu等專(zhuān)用硬件的發(fā)展,計(jì)算能力大幅提升,使得訓(xùn)練具有數(shù)百萬(wàn)甚至數(shù)十億參數(shù)的大模型成為可能;同時(shí),基于大模型技術(shù)的生成式ai也被廣泛地運(yùn)用到文本生成、圖像生成、代碼生成等任務(wù)中,為ai應(yīng)用帶來(lái)新的契機(jī)。
2、然而,在相關(guān)技術(shù)中,特別是業(yè)界中常用的sql生成方案主要基于規(guī)則,通過(guò)定義一系列語(yǔ)法規(guī)則和模板,根據(jù)用戶(hù)輸入構(gòu)建sql語(yǔ)句。該方案存在以下缺陷:1)用戶(hù)學(xué)習(xí)和使用成本高,難以記憶和理解復(fù)雜的sql生成規(guī)則;2)靈活性差,適用范圍有限,難以構(gòu)建出規(guī)則和模板以外的sql語(yǔ)句;3)交互性差,不能根據(jù)用戶(hù)使用時(shí)的上下文推導(dǎo)出合適的sql語(yǔ)句;4)自身無(wú)法改進(jìn)生成sql語(yǔ)句的準(zhǔn)確性,需要專(zhuān)業(yè)人員手工對(duì)sql規(guī)則和模板進(jìn)行優(yōu)化;5)需要針對(duì)不同類(lèi)型的數(shù)據(jù)庫(kù)配置不同的規(guī)則和模板,效率低下;6)數(shù)據(jù)庫(kù)表結(jié)構(gòu)大部分使用英文單詞,甚至有很多簡(jiǎn)寫(xiě)的情況,難以滿(mǎn)足中文語(yǔ)境場(chǎng)景。
技術(shù)實(shí)現(xiàn)思路
1、鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本技術(shù)公開(kāi)了一種基于大模型的sql語(yǔ)句生成方法、系統(tǒng)及設(shè)備,用于解決上述多個(gè)技術(shù)問(wèn)題中的至少之一。
2、本技術(shù)的第一方面公開(kāi)了一種基于大模型的sql語(yǔ)句生成方法,包括:將來(lái)自數(shù)據(jù)庫(kù)的元數(shù)據(jù)以及元數(shù)據(jù)描述文本信息分別進(jìn)行向量化處理、文檔化處理,存儲(chǔ)到向量數(shù)據(jù)庫(kù)、全文檢索庫(kù);響應(yīng)于用戶(hù)的查詢(xún)指令,分別對(duì)所述向量數(shù)據(jù)庫(kù)和所述全文檢索庫(kù)進(jìn)行查詢(xún)匹配,按照相似度從高到低排序篩選排名靠前為預(yù)設(shè)名次的匹配結(jié)果,確定最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù);基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,結(jié)合所述最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)生成為當(dāng)前所述語(yǔ)種的提示詞;根據(jù)所述提示詞的語(yǔ)種類(lèi)型確定預(yù)設(shè)種類(lèi)的大模型,調(diào)用預(yù)設(shè)大模型對(duì)所述提示詞進(jìn)行推理,生成sql語(yǔ)句,其中,每類(lèi)語(yǔ)種的所述提示詞對(duì)應(yīng)至少一種大模型。
3、于本技術(shù)第一方面的某些實(shí)施例中,生成sql語(yǔ)句之后,還包括:根據(jù)預(yù)設(shè)規(guī)則對(duì)所述sql語(yǔ)句進(jìn)行校驗(yàn),若校驗(yàn)通過(guò),則向用戶(hù)輸出所述sql語(yǔ)句;其中,所述預(yù)設(shè)規(guī)則包括安全策略與敏感詞過(guò)濾;若校驗(yàn)不通過(guò),則基于智能sql知識(shí)庫(kù)識(shí)別所述sql語(yǔ)句的缺陷,并基于規(guī)則和大模型的混合優(yōu)化模式生成sql優(yōu)化建議。
4、于本技術(shù)第一方面的某些實(shí)施例中,所述基于規(guī)則和大模型的混合優(yōu)化模式為以下至少之一:將過(guò)濾篩選條件移至最底層進(jìn)行查詢(xún),判斷所述sql語(yǔ)句是否能夠謂詞下推;判斷是否重寫(xiě)所述sql語(yǔ)句、判斷是否優(yōu)化聚合函數(shù)、判斷是否合并多個(gè)所述sql語(yǔ)句。
5、于本技術(shù)第一方面的某些實(shí)施例中,調(diào)用預(yù)設(shè)大模型對(duì)所述提示詞進(jìn)行推理,生成sql語(yǔ)句,包括:若監(jiān)測(cè)到某類(lèi)語(yǔ)種的所述提示詞對(duì)應(yīng)有且僅有一種大模型,則調(diào)用所述大模型對(duì)所述提示詞進(jìn)行推理,對(duì)應(yīng)生成所述sql語(yǔ)句;或,若監(jiān)測(cè)到某類(lèi)語(yǔ)種的所述提示詞對(duì)應(yīng)有且僅有一種大模型,將所述提示詞、所述最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)聯(lián)合輸入到所述大模型進(jìn)行推理,對(duì)應(yīng)生成所述sql語(yǔ)句,其中,所述大模型為多模態(tài)大模型;若監(jiān)測(cè)到某類(lèi)語(yǔ)種的所述提示詞對(duì)應(yīng)有幾種大模型,則分別調(diào)用每種所述大模型對(duì)所述提示詞進(jìn)行推理,對(duì)應(yīng)生成多個(gè)所述sql語(yǔ)句,將多個(gè)所述sql語(yǔ)句進(jìn)行整合處理,生成最終的所述sql語(yǔ)句。
6、于本技術(shù)第一方面的某些實(shí)施例中,基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,結(jié)合所述最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)生成為當(dāng)前所述語(yǔ)種的提示詞,包括:根據(jù)模板選項(xiàng)對(duì)提示詞模板進(jìn)行配置,所述模板選項(xiàng)包括提示詞模板分類(lèi)、提示詞模板名稱(chēng)與提示詞語(yǔ)種;基于所述查詢(xún)指令所屬的業(yè)務(wù)場(chǎng)景,確定所述提示詞模板的類(lèi)別和名稱(chēng),基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,將所述查詢(xún)指令所對(duì)應(yīng)的用戶(hù)問(wèn)題信息、最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)的文本描述信息填充到所述提示詞模板,翻譯成當(dāng)前所述語(yǔ)種的提示詞。
7、于本技術(shù)第一方面的某些實(shí)施例中,將來(lái)自數(shù)據(jù)庫(kù)的元數(shù)據(jù)以及元數(shù)據(jù)描述文本信息分別進(jìn)行向量化處理、文檔化處理之前,還包括:獲取數(shù)據(jù)庫(kù)配置信息,所述數(shù)據(jù)庫(kù)配置信息包括數(shù)據(jù)庫(kù)類(lèi)型、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)地址、數(shù)據(jù)庫(kù)端口和賬號(hào)密碼;根據(jù)所述數(shù)據(jù)庫(kù)配置信息訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中數(shù)據(jù)源,基于預(yù)設(shè)元數(shù)據(jù)查詢(xún)規(guī)則對(duì)所述數(shù)據(jù)源的表結(jié)構(gòu)進(jìn)行解析,確定描述數(shù)據(jù)特征和屬性的元數(shù)據(jù);判斷所述元數(shù)據(jù)是否存在關(guān)聯(lián)的元數(shù)據(jù)描述文本信息,所述元數(shù)據(jù)描述文本信息包括自定義描述信息;若所述元數(shù)據(jù)存在關(guān)聯(lián)的所述自定義描述信息,則將所述元數(shù)據(jù)與所述自定義描述信息翻譯成多語(yǔ)言描述信息,并按預(yù)設(shè)格式發(fā)送至智能sql數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ);若所述元數(shù)據(jù)不存在關(guān)聯(lián)的所述自定義描述信息,則對(duì)表或字段的注釋進(jìn)行翻譯,若不存在所述表或字段的注釋?zhuān)瑒t翻譯所述表或字段的名稱(chēng),并將翻譯成多語(yǔ)言描述信息按預(yù)設(shè)格式發(fā)送至智能sql數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
8、于本技術(shù)第一方面的某些實(shí)施例中,所述全文檢索庫(kù)包括:基于知識(shí)庫(kù)分類(lèi)、知識(shí)庫(kù)名稱(chēng)、本地文件路徑確定本地知識(shí)庫(kù);將所述本地知識(shí)庫(kù)內(nèi)的文檔數(shù)據(jù)轉(zhuǎn)換為文本信息,并按照文本分割策略將所述文本信息進(jìn)行分割,得到預(yù)設(shè)格式文本,所述文本分割策略包括以下至少之一:段落、文本行、詞語(yǔ);將所述預(yù)設(shè)格式文本轉(zhuǎn)換為文檔向量,存儲(chǔ)到滿(mǎn)足支持向量搜索引擎的向量數(shù)據(jù)庫(kù)形成全文檢索庫(kù)。
9、于本技術(shù)第一方面的某些實(shí)施例中,所述基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,結(jié)合所述最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)生成為當(dāng)前所述語(yǔ)種的提示詞,包括:構(gòu)建一個(gè)特征描述詞庫(kù),所述描述詞庫(kù)包含描述潛在風(fēng)險(xiǎn)特征的正向描述詞和負(fù)向描述詞;根據(jù)描述詞庫(kù)的描述詞和提示詞工程,確定提示詞模板;基于所述查詢(xún)指令所屬的業(yè)務(wù)場(chǎng)景,確定所述提示詞模板的類(lèi)別和名稱(chēng),基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,將所述查詢(xún)指令所對(duì)應(yīng)的用戶(hù)問(wèn)題信息、最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)的文本描述信息填充到所述提示詞模板,翻譯成當(dāng)前所述語(yǔ)種的提示詞。
10、本技術(shù)的第二方面公開(kāi)了一種基于大模型的sql語(yǔ)句生成方法系統(tǒng),包括:數(shù)據(jù)處理模塊,用于將來(lái)自數(shù)據(jù)庫(kù)的元數(shù)據(jù)以及元數(shù)據(jù)描述文本信息分別進(jìn)行向量化處理、文檔化處理,存儲(chǔ)到向量數(shù)據(jù)庫(kù)、全文檢索庫(kù);智能sql模塊,用于響應(yīng)于用戶(hù)的查詢(xún)指令,分別對(duì)所述向量數(shù)據(jù)庫(kù)和所述全文檢索庫(kù)進(jìn)行查詢(xún)匹配,按照相似度從高到低排序篩選排名靠前為預(yù)設(shè)名次的匹配結(jié)果,確定最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù);提示詞確定模塊,基于所述查詢(xún)指令的當(dāng)前語(yǔ)種,結(jié)合所述最優(yōu)sql語(yǔ)句列表與最優(yōu)元數(shù)據(jù)生成為當(dāng)前所述語(yǔ)種的提示詞;sql生成模塊,用于根據(jù)所述提示詞的語(yǔ)種類(lèi)型確定預(yù)設(shè)種類(lèi)的大模型,調(diào)用預(yù)設(shè)大模型對(duì)所述提示詞進(jìn)行推理,生成sql語(yǔ)句,其中,每類(lèi)語(yǔ)種的所述提示詞對(duì)應(yīng)至少一種大模型。
11、本技術(shù)的第三方面公開(kāi)了一種電子設(shè)備,包括:處理器及存儲(chǔ)器;所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序,所述處理器用于執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)程序,以使所述電子設(shè)備執(zhí)行上述的方法。
12、本技術(shù)的有益效果:通過(guò)將數(shù)據(jù)庫(kù)的元數(shù)據(jù)及其描述文本信息進(jìn)行向量化處理和文檔化處理,實(shí)現(xiàn)了數(shù)據(jù)的深度解析與結(jié)構(gòu)化,一方面,通過(guò)向量化處理捕捉數(shù)據(jù)間的潛在關(guān)系,便于后續(xù)相似性計(jì)算和快速檢索;另一方面,文檔化處理則保留了原始文本的上下文信息,便于全文檢索;優(yōu)化了數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),為后續(xù)查詢(xún)提供了堅(jiān)實(shí)的基礎(chǔ),通過(guò)利用向量數(shù)據(jù)庫(kù)進(jìn)行基于相似度的向量查詢(xún)匹配,以及利用全文檢索庫(kù)進(jìn)行文本內(nèi)容的精確或模糊搜索,不僅擴(kuò)大了查詢(xún)的覆蓋范圍,還能根據(jù)相似度對(duì)結(jié)果進(jìn)行排序,篩選出與用戶(hù)查詢(xún)意圖最為接近的預(yù)設(shè)名次內(nèi)的匹配結(jié)果,顯著提高了查詢(xún)的準(zhǔn)確性和效率;基于查詢(xún)結(jié)果,能夠自動(dòng)確定最優(yōu)的sql語(yǔ)句列表與元數(shù)據(jù),為用戶(hù)推薦最適合當(dāng)前查詢(xún)需求的sql語(yǔ)句和元數(shù)據(jù),減少了用戶(hù)手動(dòng)篩選和調(diào)整的時(shí)間成本,能夠識(shí)別用戶(hù)查詢(xún)指令的當(dāng)前語(yǔ)種,并據(jù)此生成對(duì)應(yīng)語(yǔ)種的提示詞,極大地增強(qiáng)了多語(yǔ)種支持能力,使得不同語(yǔ)言背景的用戶(hù)都能獲得流暢的交互體驗(yàn);同時(shí),通過(guò)調(diào)用預(yù)設(shè)的大模型對(duì)提示詞進(jìn)行推理,能夠自動(dòng)生成符合用戶(hù)需求的sql語(yǔ)句,確保了生成的sql語(yǔ)句既準(zhǔn)確又符合語(yǔ)言習(xí)慣。
13、此外,本技術(shù)不僅降低了人工操作的復(fù)雜性和錯(cuò)誤率,還提高了查詢(xún)響應(yīng)速度和用戶(hù)滿(mǎn)意度,通過(guò)不斷優(yōu)化大模型的訓(xùn)練數(shù)據(jù)和算法,本技術(shù)的智能化水平將持續(xù)提升,為用戶(hù)帶來(lái)更加便捷和高效的數(shù)據(jù)庫(kù)查詢(xún)體驗(yàn),基于大模型及生成式ai技術(shù),提高了生成的sql語(yǔ)句的準(zhǔn)確性,降低了非技術(shù)人員使用門(mén)檻,也提升sql語(yǔ)句查詢(xún)效率;除此之外,通過(guò)理解用戶(hù)的自然語(yǔ)言輸入,并記憶用戶(hù)使用上下文,提高了sql語(yǔ)句查詢(xún)的易用與交互性,通過(guò)多語(yǔ)種結(jié)合混合大模型的使用方案,使得不同語(yǔ)種的用戶(hù)都可以方便地使用。