本發明涉及數據庫,具體地說是基于大模型實現復雜問題轉換為sql語句的方法及系統。
背景技術:
1、近年來,隨著人工智能技術的飛速發展,特別是大模型(如gpt系列等)的崛起,為自動數據庫查詢系統帶來了前所未有的機遇。大模型以其強大的自然語言處理能力和知識推理能力,為理解用戶查詢意圖、生成準確的sql語句提供了堅實的基礎。通過將大模型應用于自動數據庫查詢系統中,可以實現對用戶問題的深度理解和分析,進而生成更符合用戶需求的sql查詢語句。
2、然而,盡管大模型在自動數據庫查詢領域展現出了巨大的潛力,但當前的系統仍面臨諸多挑戰,例如大模型在處理復雜查詢問題時,如涉及到對表中數據的復雜計算或數據轉換,可能無法直接生成對應的sql語句。
3、如何實現復雜問題轉換為sql語句,是需要解決的技術問題。
技術實現思路
1、本發明的技術任務是針對以上不足,提供基于大模型實現復雜問題轉換為sql語句的方法及系統,來解決如何實現復雜問題轉換為sql語句的技術問題。
2、第一方面,本發明一種基于大模型實現復雜問題轉換為sql語句的方法,包括如下步驟:
3、對于用戶提出的問題,以問題是否與數據庫表有關作為問題陳述,將問題和問題陳述輸入大模型,通過大模型進行sql(英文全稱為structured?query?language,中文翻譯為結構化查詢語句)生成意圖判斷,通過sql生成意圖判斷判斷用戶提出的問題與數據庫表是否有關;
4、如果sql生成意圖判斷的結果為問題與數據庫表無關,通過大模型對問題進行用戶意圖分析并給出答案;
5、如果sql生成意圖判斷的結果為問題與數據庫表有關、且根據當前數據庫表能夠直接生成sql查詢語句,基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句,并基于當前數據庫表執行sql查詢語句獲得答案;
6、如果sql生成意圖判斷的結果為問題與數據庫表有關、但根據當前數據庫表無法直接生成sql查詢語句,基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句,并基于當前數據庫表、通過大模型執行語法部分進行查詢、得到查詢結果作為新列,將新列合并到當前數據庫表得到新數據庫表,基于新數據庫表、執行包含新語法部分的sql查詢語句,得到答案;
7、其中,大模型為gpt以及gpt類型的基于深度學習的自然語言處理模型。
8、gpt:英文全稱為generative?pre-trained?transformer,是基于transformer的生成式預訓練模型,在大型未標記文本數據集上進行預訓練,并能夠生成類似于人類自然語言的文本。
9、作為優選,通過大模型進行sql生成意圖判斷時,通過大模型分析問題的語義,識別語義中是否包含與當前數據庫表結構或數據相關的關鍵詞或短語,以判斷問題是否能夠生成sql查詢語句進行查詢。
10、作為優選,基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句時,大模型利用自然語言處理技術對問題進行解析,提取意圖和關鍵信息,包括需要查詢的表名、列名以及篩選條件,然后意圖和關鍵信息生成符合sql語法的查詢語句。
11、作為優選,基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句時,獲取一組包含相似性計算邏輯的問題和sql查詢語句作為示例數據,以基于示例數據進行學習、輸出用戶問題的答案為問題陳述,將示例數據、用戶提出的問題以及問題陳述作為上下文輸入大模型,通過大模型生成包含新語法部分的sql查詢語句。
12、第二方面,本發明一種基于大模型實現復雜問題轉換為sql語句的系統,用于通過第一方面任一項所述的一種基于大模型實現復雜問題轉換為sql語句的方法將復雜問題轉化為sql語句,所述系統包括sql生成意圖判斷模塊、直接答案生成模塊、直接sql生成模塊、間接sql生成模塊以及sql執行模塊;
13、所述sql生成意圖判斷模塊用于執行如下:對于用戶提出的問題,以問題是否與數據庫表有關作為問題陳述,將問題和問題陳述輸入大模型,通過大模型進行sql生成意圖判斷,通過sql生成意圖判斷判斷用戶提出的問題與數據庫表是否有關,如果sql生成意圖判斷的結果為問題與數據庫表無關,調用直接答案生成模塊,如果sql生成意圖判斷的結果為問題與數據庫表有關、且根據當前數據庫表能夠直接生成sql查詢語句,調用直接sql生成模塊,如果sql生成意圖判斷的結果為問題與數據庫表有關、但根據當前數據庫表無法直接生成sql查詢語句,調用間接sql生成模塊;
14、直接答案生成模塊用于執行如下:通過大模型對問題進行用戶意圖分析并給出答案;
15、直接sql生成模塊用于執行如下:基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句,并調用sql執行模塊;
16、間接sql生成模塊用于執行如下:基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句,并基于當前數據庫表、通過大模型執行語法部分進行查詢、得到查詢結果作為新列,將新列合并到當前數據庫表得到新數據庫表,將新的數據庫表作為當前數據庫表,將包含新語法部分的sql查詢語句作為最終的sql查詢語句,調用sql執行模塊;
17、sql執行模塊用于執行如下:基于當前數據庫表、執行sql查詢語句,得到答案;
18、其中,大模型為gpt以及gpt類型的基于深度學習的自然語言處理模型。
19、作為優選,通過大模型進行sql生成意圖判斷時,sql生成意圖判斷模塊用于通過大模型分析問題的語義,識別語義中是否包含與當前數據庫表結構或數據相關的關鍵詞或短語,以判斷問題是否能夠生成sql查詢語句進行查詢。
20、作為優選,基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句時,大模型利用自然語言處理技術對問題進行解析,提取意圖和關鍵信息,包括需要查詢的表名、列名以及篩選條件,然后意圖和關鍵信息生成符合sql語法的查詢語句。
21、作為優選,基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句時,間接sql語句生成模塊用于獲取一組包含相似性計算邏輯的問題和sql查詢語句作為示例數據,以基于示例數據進行學習、輸出用戶問題的答案為問題陳述,將示例數據、用戶提出的問題以及問題陳述作為上下文輸入大模型,通過大模型生成包含新語法部分的sql查詢語句。
22、本發明的基于大模型實現復雜問題轉換為sql語句的方法及系統具有以下優點:通過結合sql生成意圖判斷、直接生成sql、生成新語法sql以及執行sql獲取答案等多個步驟,提供了一種靈活、高效的根據問題生成sql的設計方法,該方法不僅能夠處理簡單的查詢問題,還能夠應對復雜查詢場景下的挑戰,為用戶提供了更加便捷、智能的數據庫查詢體驗。
1.一種基于大模型實現復雜問題轉換為sql語句的方法,其特征在于,包括如下步驟:
2.根據權利要求1所述的基于大模型實現復雜問題轉換為sql語句的方法,其特征在于,通過大模型進行sql生成意圖判斷時,通過大模型分析問題的語義,識別語義中是否包含與當前數據庫表結構或數據相關的關鍵詞或短語,以判斷問題是否能夠生成sql查詢語句進行查詢。
3.根據權利要求1所述的基于大模型實現復雜問題轉換為sql語句的方法,其特征在于,基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句時,大模型利用自然語言處理技術對問題進行解析,提取意圖和關鍵信息,包括需要查詢的表名、列名以及篩選條件,然后意圖和關鍵信息生成符合sql語法的查詢語句。
4.根據權利要求1所述的基于大模型實現復雜問題轉換為sql語句的方法,其特征在于,基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句時,獲取一組包含相似性計算邏輯的問題和sql查詢語句作為示例數據,以基于示例數據進行學習、輸出用戶問題的答案為問題陳述,將示例數據、用戶提出的問題以及問題陳述作為上下文輸入大模型,通過大模型生成包含新語法部分的sql查詢語句。
5.一種基于大模型實現復雜問題轉換為sql語句的系統,其特征在于,用于通過如權利要求1-4任一項所述的一種基于大模型實現復雜問題轉換為sql語句的方法將復雜問題轉化為sql語句,所述系統包括sql生成意圖判斷模塊、直接答案生成模塊、直接sql生成模塊、間接sql生成模塊以及sql執行模塊;
6.根據權利要求5所述的基于大模型實現復雜問題轉換為sql語句的系統,其特征在于,通過大模型進行sql生成意圖判斷時,sql生成意圖判斷模塊用于通過大模型分析問題的語義,識別語義中是否包含與當前數據庫表結構或數據相關的關鍵詞或短語,以判斷問題是否能夠生成sql查詢語句進行查詢。
7.根據權利要求5所述的基于大模型實現復雜問題轉換為sql語句的系統,其特征在于,基于問題的語義以及當前數據庫表的結構信息、通過大模型生成sql查詢語句時,大模型利用自然語言處理技術對問題進行解析,提取意圖和關鍵信息,包括需要查詢的表名、列名以及篩選條件,然后意圖和關鍵信息生成符合sql語法的查詢語句。
8.根據權利要求5所述的基于大模型實現復雜問題轉換為sql語句的系統,其特征在于,基于few-shot學習技術、通過大模型生成包含新語法部分的sql查詢語句時,間接sql語句生成模塊用于獲取一組包含相似性計算邏輯的問題和sql查詢語句作為示例數據,以基于示例數據進行學習、輸出用戶問題的答案為問題陳述,將示例數據、用戶提出的問題以及問題陳述作為上下文輸入大模型,通過大模型生成包含新語法部分的sql查詢語句。