白丝美女被狂躁免费视频网站,500av导航大全精品,yw.193.cnc爆乳尤物未满,97se亚洲综合色区,аⅴ天堂中文在线网官网

用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法

專利號
CN119357217B
公開日期
2025-03-11
申請人
廣州華微明天軟件技術(shù)有限公司(廣東省廣州市天河區(qū)翰景路1號1701房自編D、F、G、H部位)
發(fā)明人
尤澤順; 李靜; 沈賢義
IPC分類
G06F16/242; G06F16/2452
技術(shù)領(lǐng)域
sql,presql,示例,query,檢索,llm,語言,生成,數(shù)據(jù)庫,function
地域: 廣東省 廣東省廣州市

摘要

用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法,對于用戶的請求Query,依次進(jìn)行:請求重寫、檢索數(shù)據(jù)庫模式、檢SQL示例、請求復(fù)雜度評、提示詞構(gòu)建、PreSQL生成、執(zhí)行SQL;S800.檢查SQL示例中是否包含SQL模板,如包含則進(jìn)入步驟S900;S900.基于Function?call的示例增強(qiáng);S1000.將示例增強(qiáng)生成的SQL、該SQL執(zhí)行結(jié)果、Query構(gòu)建為提示詞后輸入給大語言模型判斷能否回答Query;S1100.基于PreSQL的提示詞構(gòu)建;S1200基于PreSQL的示例增強(qiáng);由LLM選擇最合適的結(jié)果;將結(jié)果返回給用戶。增強(qiáng)生成SQL的準(zhǔn)確性,生成復(fù)雜SQL效果優(yōu)異。

說明書

1 2 3 4 5 6 7
用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法 技術(shù)領(lǐng)域 [0001] 本發(fā)明涉及自然語言轉(zhuǎn)為數(shù)據(jù)庫的結(jié)構(gòu)化查詢語言技術(shù)領(lǐng)域,特別是涉及一種用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法。 背景技術(shù) [0002] 自然語言轉(zhuǎn)SQL(natural?language?to?structured?query?language,?NL2SQL)任務(wù)是將自然語言轉(zhuǎn)為數(shù)據(jù)庫的結(jié)構(gòu)化查詢語言(Structured?Query?Language,?SQL),?該技術(shù)能使用戶在不會SQL的情況下,通過自然語言與數(shù)據(jù)庫進(jìn)行交互。由于用戶問題表達(dá)方式的多樣性、數(shù)據(jù)庫表結(jié)構(gòu)和SQL的復(fù)雜性,從自然語言問題中生成準(zhǔn)確的SQL是一項具有挑戰(zhàn)性的任務(wù)。 [0003] 傳統(tǒng)的NL2SQL系統(tǒng)通?;谝?guī)則和深度學(xué)習(xí)網(wǎng)絡(luò)的方法,雖然取得了不錯的性能,但基于規(guī)則的方法依賴于人工,因此成本昂貴。而傳統(tǒng)基于神經(jīng)網(wǎng)絡(luò)的方法需要不斷地根據(jù)業(yè)務(wù)的領(lǐng)域來微調(diào)模型,在數(shù)據(jù)庫越來越復(fù)雜的當(dāng)下,?非常不靈活。 [0004] 近年來,隨著大語言模型(Large?Language?Models,LLM)的流行,基于LLM的NL2SQL成為了廣受關(guān)注的探索方向。LLM憑借強(qiáng)大的語言理解能力,可以在不需要微調(diào)的情況下,僅憑借提示詞就獲得不錯的效果?;诖笳Z言模型的NL2SQL雖然相比于之前的方法取得了突破,但對于復(fù)雜的SQL依然難以準(zhǔn)確地生成。 [0005] 復(fù)雜的SQL可能需要使用到外聯(lián)、子查詢,窗口函數(shù)等操作,通常這類SQL長度更長,涉及的表更多。目前的大語言模型在訓(xùn)練階段所使用的數(shù)據(jù)集中出現(xiàn)包含這幾類操作的SQL的數(shù)量少,現(xiàn)有技術(shù)中大語言模型并不擅長生成復(fù)雜的SQL。 [0006] 因此,針對現(xiàn)有技術(shù)不足,提供一種基于大語言模型的用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法以克服現(xiàn)有技術(shù)不足甚為必要。 發(fā)明內(nèi)容 [0007] 本發(fā)明的目的在于避免現(xiàn)有技術(shù)的不足之處而提供一種用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法,借助用戶添加的SQL示例,增強(qiáng)了LLM生成的SQL的準(zhǔn)確性,同時降低了用戶的等待時間,在生成復(fù)雜SQL時,性能優(yōu)良。 [0008] 本發(fā)明的目的通過以下技術(shù)措施實現(xiàn)。 [0009] 提供一種用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法,對于用戶的請求Query,按照如下步驟處理: [0010] S100.對用戶的請求進(jìn)行重寫; [0011] S200.檢索與請求Query相關(guān)的數(shù)據(jù)庫模式,從數(shù)據(jù)庫中檢索出相關(guān)的表模式; [0012] S300.檢索與請求Query相關(guān)的SQL示例; [0013] 通過向量檢索和全文檢索的混合,從數(shù)據(jù)庫中檢索出相關(guān)的SQL示例; [0014] S400.?基于SQL示例的請求Query復(fù)雜度評估,即為請求Query要生成的SQL進(jìn)行難度評估,若評估結(jié)果是該請求Query只需要簡單SQL即可完成查詢,則進(jìn)入S500;否則進(jìn)入流程S900; [0015] S500.提示詞構(gòu)建,即將Query、表模式、SQL示例填入prompt模板中; [0016] S600.PreSQL生成,即將構(gòu)建好的提示詞輸入大語言模型,由大語言模型進(jìn)行處理得到SQL; [0017] S700.執(zhí)行SQL,若執(zhí)行過程中不報錯則執(zhí)行步驟S1400,若執(zhí)行過程中報錯則執(zhí)行步驟S800; [0018] S800.檢查SQL示例中是否包含SQL模板,如果包含則進(jìn)入步驟S900,否則進(jìn)行步驟S1100; [0019] S900.基于Function?call的示例增強(qiáng),即用步驟S300中匹配到的SQL示例來創(chuàng)建Function?call的請求Json,并使用大語言模型來執(zhí)行,將結(jié)果構(gòu)建成SQL; [0020] S1000.將示例增強(qiáng)生成的SQL、該SQL的執(zhí)行結(jié)果、Query構(gòu)建為提示詞后輸入給大語言模型,判斷SQL的執(zhí)行結(jié)果能否回答Query,如大語言模型判斷為“能”則執(zhí)行步驟S1400,否則執(zhí)行步驟S1200; [0021] S1100.?基于PreSQL的提示詞構(gòu)建,即通過向量檢索和全文檢索的混合,從數(shù)據(jù)庫中檢索出與PreSQL相關(guān)的SQL示例和表模式,并通過PreSQL中使用的表對查詢出的表模式進(jìn)行過濾,過濾后的表模式去掉PreSQL中未使用的列,最后用步驟S200中檢索出的數(shù)據(jù)庫模式、步驟S300中檢索出的SQL示例、本步驟中檢索出的SQL示例和模式描述進(jìn)行兩兩組合,構(gòu)建出4組提示詞模板; [0022] S1200.基于PreSQL的示例增強(qiáng),即根據(jù)步驟S1100輸入的提示詞生成SQL語句; [0023] S1300.先過濾掉執(zhí)行出錯的結(jié)果,然后對正確執(zhí)行的SQL的執(zhí)行結(jié)果進(jìn)行投票,得票最多的結(jié)果作為最終結(jié)果返回;當(dāng)出現(xiàn)平票時,由LLM選擇最合適的結(jié)果;

權(quán)利要求

1 2
1.一種用SQL示例增加自然語言生成復(fù)雜SQL準(zhǔn)確性的方法,其特征在于,對于用戶的請求,按照如下步驟處理: S100.對用戶的請求Query進(jìn)行重寫; S200.檢索與請求Query相關(guān)的數(shù)據(jù)庫模式,從數(shù)據(jù)庫中檢索出相關(guān)的表模式; S300.檢索與請求Query相關(guān)的SQL示例; S400.基于SQL示例的請求復(fù)雜度評估,即為請求Query要生成的SQL進(jìn)行難度評估,若評估結(jié)果是該請求通過簡單SQL可完成查詢,則進(jìn)入S500;否則進(jìn)入S900; S500.提示詞構(gòu)建,即將請求Query、表模式、SQL示例填入prompt模板中; S600.PreSQL生成,即將構(gòu)建好的提示詞輸入大語言模型,由大語言模型進(jìn)行處理得到SQL,此步驟得到的SQL即為PreSQL; S700.執(zhí)行SQL,若執(zhí)行過程中不報錯則執(zhí)行步驟S1400,若執(zhí)行過程中報錯則執(zhí)行步驟S800; S800.檢查SQL示例中是否包含SQL模板,如果包含則進(jìn)入步驟S900,否則進(jìn)行步驟S1100; S900.基于Function?call的示例增強(qiáng),即用步驟S300中匹配到的SQL示例來創(chuàng)建Function?call的請求Json,并使用大語言模型來執(zhí)行,將結(jié)果構(gòu)建成SQL,此步驟構(gòu)建的SQL為示例增強(qiáng)生成的SQL; S1000.將示例增強(qiáng)生成的SQL、該SQL的執(zhí)行結(jié)果、Query構(gòu)建為提示詞后輸入給大語言模型,判斷SQL的執(zhí)行結(jié)果能否回答Query,當(dāng)大語言模型判斷為“能”則執(zhí)行步驟S1400,否則執(zhí)行步驟S1200; S1100.基于PreSQL的提示詞構(gòu)建,即通過向量檢索和全文檢索的混合,從數(shù)據(jù)庫中檢索出與PreSQL相關(guān)的SQL示例和表模式,并通過PreSQL中使用的表對查詢出的表模式進(jìn)行過濾,過濾后的表模式去掉PreSQL中未使用的列,最后用步驟S200中檢索出的數(shù)據(jù)庫模式、步驟S300中檢索出的SQL示例、本步驟中檢索出的SQL示例和模式描述按照“數(shù)據(jù)庫模式+SQL示例”的格式進(jìn)行組合,構(gòu)建出4組提示詞模板; S1200.基于PreSQL的示例增強(qiáng),即根據(jù)步驟S1100輸入的提示詞生成SQL語句; S1300.先過濾掉執(zhí)行出錯的結(jié)果,然后對正確執(zhí)行的SQL的執(zhí)行結(jié)果進(jìn)行投票,得票最多的結(jié)果作為最終結(jié)果返回;當(dāng)出現(xiàn)平票時,由LLM選擇最合適的結(jié)果; S1400.將結(jié)果返回給用戶。
微信群二維碼
意見反饋