System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及人工智能,更具體地說,涉及一種基于多階段反饋的sql生成與糾錯方法。傳統的sql生成工具雖能應對基本需求,但在處理復雜的、多變的查詢任務時,常因缺乏深度學習和自適應能力而表現不佳。目前的技術,特別是在自動化sql生成和糾錯方面,通常未能充分利用先進的大模型技術。因此,開發一種基于多階段反饋的sql生成與糾錯方法已成為當今重要的技術需求。
技術介紹
技術實現思路
1、本專利技術要解決的技術問題在于,針對上述技術方案存在的不足,提供一種對sql查詢進行語義分析和結構優化,能夠動態適應不同的數據庫架構和查詢需求的基于多階段反饋的sql生成與糾錯方法。
2、本專利技術提供一種基于多階段反饋的sql生成與糾錯方法,所述方法包括以下步驟:
3、s1,采集用戶需求,對新的用戶需求進行優化并輸出最終的表描述,并將表描述存儲至數據庫中;
4、s2,將用戶需求、表描述及prompt大模型提示詞進行拼接后輸入需求拆解大模型,所述需求拆解大模型將用戶需求進行規范化重構得到規范用戶需求,將規范用戶需求拆解為多個用戶需求執行步驟,并生成對應的基礎sql語句;
5、s3,建立sql向量知識庫,將所述基礎sql語句通過embedding模型轉化為sql語句向量并存入所述sql向量知識庫中,利用rag檢索增強生成技術計算規范用戶需求與sql向量知識庫中相關知識的相似度;選取最相似的用戶需求及對應的sql執行語句并將它們組合為規范用戶需求和相近的基礎sql語句,并召回
6、s4,將表描述、prompt大模型提示詞、用戶需求執行步驟、基礎sql語句、規范用戶需求和相近sql語句輸入至基礎sql執行語句融合大模型;所述基礎sql執行語句融合大模型將表描述、prompt大模型提示詞、用戶需求執行步驟、基礎sql語句、規范用戶需求與相近sql語句進行融合生成最終輸出的sql執行語句;
7、s5,建立糾錯向量庫,執行sql執行語句并自動生成相應的圖表,同時詢問用戶是否滿意;若執行失敗,則將輸出的錯誤的sql執行語句及報錯信息轉化為向量,并在所述糾錯向量庫中召回相關的糾錯示例,若滿意,則將用戶滿意的sql執行語句收錄至所述數據庫中,若執行成功但用戶不滿意,則將用戶不滿意的sql執行語句收錄至所述數據庫中;
8、s6,將輸出的sql執行語句、糾錯示例及用戶不滿意的sql執行語句傳輸至糾錯指導大模型進行判定,以確認是否存在錯誤的sql執行語句;若判定存在錯誤的sql執行語句,則所述糾錯指導大模型生成相應的糾錯指導,并將糾錯指導傳輸至糾錯大模型;所述糾錯大模型根據糾錯指導對錯誤的sql執行語句進行修正,重新生成最終的sql執行語句,并將sql執行語句反饋回糾錯指導大模型進行再次檢查;若判定不存在錯誤的sql執行語句,則執行并收集用戶反饋,對不合格sql執行語句駁回給專家進行修正,并輸出修正后的sql語句的不滿意結果;
9、s7,收集和存儲步驟s2至s6的中間結果以及運行結果信息,并對中間結果以及運行結果信息進行反饋優化。
10、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;所述步驟s1包括以下步驟:
11、s11,維護表描述的基本信息dbase,其中,所述表描述的基本信息dbase包括表名ti、列名ci及數據類型dti,表示為dbase={(ti,ci,dti,…)};并對所述dbase={(ti,ci,dti,…)}進行補充和編輯得到fml(dbase);通過集成專有大模型對fml(dbase)進行再次補充和完善得到fu(dbase);將fml(dbase)與fu(dbase)相加得到最終的表描述,其中,最終的表描述表示為d=fml(dbase)+fu(dbase)。
12、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;在所述步驟s2中將用戶需求、表描述及prompt大模型提示詞進行拼接表示為x=q+d+prompt_spilit,其中,q表示為用戶需求、d表示為表描述,prompt_spilit表示為prompt大模型提示詞;將x=q+d+prompt_spilit輸入至需求拆解大模型fds(x;θ)=(qstandard,s,sql)進行規范化重構得到規范用戶需求qstandard,將規范用戶需求qstandard拆解成多個用戶需求執行步驟s=(s1,s2,s3,s4,…),并生成對應的基礎sql語句sql=(sql1,sql2,sql3,sql4,…);其中,θ是模型參數,fds表示需求拆解大模型。
13、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;所述步驟s3包括以下步驟:
14、s31,將基礎sql語句sql=(sql1,sql2,sql3,sql4,…)通過embedding模型轉化為sql語句向量vq=fembedding(qstandard)。
15、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;所述步驟s3還包括以下步驟:
16、s32,通過bm25與余弦相似度加權方法計算規范用戶需求與sql向量知識庫中相關知識的相似度sim(vq,vi)=α·bm25(vq,vi)+β·cosine(vq,vi),選取最相似的用戶需求及對應的sql執行語句并將它們組合為規范用戶需求和相近的基礎sql語句,并召回相近的基礎sql語句,對召回的基礎sql語句進行重排隊,從中選出排名前五的基礎sql語句;其中vi表示為sql向量知識庫中的向量,α和β分別表示為根據經驗預設的bm25及余弦相似度方法的權重,sim(vq,vi)表示為加權后的最終向量相似度。
17、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;在所述步驟s4中將表描述d、prompt大模型提示詞prompt_spilit、用戶需求執行步驟s=(s1,s2,s3,s4,…)、基礎sql語句、規范用戶需求qstandard和相近sql語句輸入至基礎sql執行語句融合大模型進行融合生成最終輸出的sql執行語句表示為sqlfinal_1=fmerge(qstandard,s,sql,d,promptmerge),其中,
18、表示為對應的基礎sql語句,promptmerge表示為基礎sql語句融合大模型的提示詞,fmerge表示為基礎sql執行語句融合大模型,sql執行語句表示為sqlfinal_1。
19、本專利技術所述的基于多階段反饋的sql生成與糾錯方法中;在所述步驟s5中執行sqlfinal_1并自動生成相應的圖表chart=fviz(sqlfinal_1),若執行失敗,則將輸出的錯誤的sql執行語句sqlfinal_1及報錯信error通過模型將fembedding()轉化為向量ve,并在糾錯向量庫中召回相似度sim最高的j個糾錯示例correctexample,其中,fviz本文檔來自技高網...
【技術保護點】
1.一種基于多階段反饋的SQL生成與糾錯方法,其特征在于,所述方法包括以下步驟:
2.根據權利要求1所述的基于多階段反饋的SQL生成與糾錯方法,其特征在于,所述步驟S1包括以下步驟:
3.根據權利要求2所述的基于多階段反饋的SQL生成與糾錯方法,其特征在于,在所述步驟S2中將用戶需求、表描述及Prompt大模型提示詞進行拼接表示為X=Q+D+Prompt_spilit,其中,Q表示為用戶需求、D表示為表描述,Prompt_spilit表示為Prompt大模型提示詞;將X=Q+D+Prompt_spilit輸入至需求拆解大模型fDS(X;θ)=(Qstandard,S,SQL)進行規范化重構得到規范用戶需求Qstandard,將規范用戶需求Qstandard拆解成多個用戶需求執行步驟S=(s1,s2,s3,s4,…),并生成對應的基礎SQL語句SQL=(sql1,sql2,sql3,sql4,…);其中,θ是模型參數,fDS表示需求拆解大模型。
4.根據權利要求3所述的基于多階段反饋的SQL生成與糾錯方法,其特征在于,所述步驟S3包括以下步驟:<
...【技術特征摘要】
1.一種基于多階段反饋的sql生成與糾錯方法,其特征在于,所述方法包括以下步驟:
2.根據權利要求1所述的基于多階段反饋的sql生成與糾錯方法,其特征在于,所述步驟s1包括以下步驟:
3.根據權利要求2所述的基于多階段反饋的sql生成與糾錯方法,其特征在于,在所述步驟s2中將用戶需求、表描述及prompt大模型提示詞進行拼接表示為x=q+d+prompt_spilit,其中,q表示為用戶需求、d表示為表描述,prompt_spilit表示為prompt大模型提示詞;將x=q+d+prompt_spilit輸入至需求拆解大模型fds(x;θ)=(qstandard,s,sql)進行規范化重構得到規范用戶需求qstandard,將規范用戶需求qstandard拆解成多個用戶需求執行步驟s=(s1,s2,s3,s4,…),并生成對應的基礎sql語句sql=(sql1,sql2,sql3,sql4,…);其中,θ是模型參數,fds表示需求拆解大模型。
4.根據權利要求3所述的基于多階段...
【專利技術屬性】
技術研發人員:王薇,郭鴻宏,郭毅,陳澤彪,范宜佳,宋云生,
申請(專利權)人:深圳聯友科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。