本發明涉及軟件開發,具體涉及一種代碼的自動生成方法、裝置、設備及介質。
背景技術:
1、在軟件開發中,可以基于固定的數據結構自動生成代碼,自動生成代碼的目的是提高軟件開發效率和減少錯誤。通過自動生成代碼,軟件開發人員可以節省大量的時間和精力。相比手動編寫代碼,代碼生成可以快速生成大量的模板代碼,減少了重復勞動。
2、然而,上述基于固定的數據結構自動生成代碼的方法生成的代碼相對固定呆板,并沒有后續的擴展性,且只支持輸入一個結構對象,以此生成該對象相應的代碼,不支持輸入多個不同類型的關聯對象并分析,因此,上述的方法無法像軟件開發人員那樣進行邏輯推理并根據輸入、輸出、數據源的結構再結合需求的文本描述,動態生成多樣化的代碼。
技術實現思路
1、有鑒于此,本發明實施例提供了一種代碼的自動生成方法、裝置、設備及介質,以此解決現有自動生成的代碼沒有擴展性、不支持輸入多個不同類型的關聯對象并分析的問題。
2、根據第一方面,本發明實施例提供了一種代碼的自動生成方法,所述方法包括:
3、獲取用戶的代碼開發請求;所述代碼開發請求中包括用戶指定的應用場景以及應用場景的全邏輯處理流程;
4、對所述代碼開發請求進行語義意圖理解,得到意圖理解結果,并利用所述全邏輯處理流程以及所述意圖理解結果,與預設知識庫進行匹配,對所述全邏輯處理流程進行補全,生成業務邏輯處理流程;所述意圖理解結果表征對用戶代碼開發請求的個人意圖理解;
5、基于所述業務邏輯處理流程,確定完成業務邏輯處理流程所需的關聯輸入參數;所述關聯輸入參數包括統一資源定位符路徑參數、表參數以及文本描述參數;
6、對所有所述關聯輸入參數均進行回調調用處理,得到每一項關聯輸入參數的回調數據,并利用已訓練好的大語言模型的代碼生成鏈,分別生成回調數據的第一提詞器模板以及第一用戶消息模板;
7、基于所述第一提詞器模板以及所述第一用戶消息模板對回調數據進行處理,生成第一輸入數據,并將第一輸入數據輸入至所述大語言模型中,得到由所述大語言模型輸出的代碼;所述第一輸入數據的上下文信息包含所述關聯輸入參數以及所述業務邏輯處理流程;
8、利用所述大語言模型的測試用例生成鏈,分別生成所述代碼的第二提詞器模板以及第二用戶消息模板,基于所述第二提詞器模板以及所述第二用戶消息模板對所述代碼進行處理,生成第二輸入數據,并將所述第二輸入數據輸入至所述大語言模型中,得到由所述大語言模型輸出的代碼的測試用例。
9、結合第一方面,在第一方面第一實施方式中,所述意圖理解結果通過訓練好的語義理解模型得到,所述語義理解模型是基于樣本文本、樣本文本對應的樣本意圖理解結果以及知識背景描述文本訓練得到的,所述知識背景描述文本表征針對請求文本所對應的知識背景領域的自然語言描述的特征信息。
10、結合第一方面第一實施方式,在第一方面第二實施方式中,所述意圖理解結果通過以下步驟得到:
11、將所述代碼開發請求轉換為請求文本;
12、將所述請求文本輸入至訓練好的所述語義理解模型中,得到由語義理解模型輸出的意圖理解結果。
13、結合第一方面第二實施方式,在第一方面第三實施方式中,所述語義理解模型通過以下步驟訓練得到:
14、獲取所述樣本文本,并確定所述樣本文本的所述樣本意圖理解結果;
15、將所述樣本文本與預設知識庫進行匹配,得到所述樣本文本對應的所述知識背景描述文本;
16、將所述樣本文本以及所述知識背景描述文本作為訓練使用的輸入數據,將所述樣本意圖理解結果作為標簽數據,采用有監督的訓練方式,訓練得到用于輸出代碼開發請求的意圖理解結果的語義理解模型。
17、結合第一方面,在第一方面第四實施方式中,所述基于業務邏輯處理流程,確定完成業務邏輯處理流程所需的關聯輸入參數,具體包括:
18、基于業務邏輯處理流程,確定完成業務邏輯處理流程所需的流程特征;
19、基于所述流程特征,得到每一項關聯輸入參數的第一子參數和第二子參數;所述第一子參數為必要的輸入參數,所述第二子參數為非必要的輸入參數。
20、結合第一方面,在第一方面第五實施方式中,該方法中通過大語言模型對應的langchain生成第一提詞器模板、第二提詞器模板、第一用戶消息模板、第二用戶消息模板、代碼生成鏈以及測試用例生成鏈:
21、結合第一方面,在第一方面第六實施方式中,該方法還包括以下步驟:
22、進行代碼生成環境的部署,判定代碼生成系統的服務類型,并在服務類型滿足預設類型的情況下設定系統的標準資源的地址,并確定數據庫表結構及標準資源的地址請求需要操作的至少一個數據庫表的列表。
23、根據第三方面,本發明實施例還提供一種代碼的自動生成裝置,所述裝置包括:
24、請求獲取模塊,用于獲取用戶的代碼開發請求;所述代碼開發請求中包括用戶指定的應用場景以及應用場景的全邏輯處理流程;
25、流程確定模塊,用于對所述代碼開發請求進行語義意圖理解,得到意圖理解結果,并利用所述全邏輯處理流程以及所述意圖理解結果,與預設知識庫進行匹配,對所述全邏輯處理流程進行補全,生成業務邏輯處理流程;所述意圖理解結果表征對用戶代碼開發請求的個人意圖理解;
26、參數確定模塊,用于基于所述業務邏輯處理流程,確定完成業務邏輯處理流程所需的關聯輸入參數;所述關聯輸入參數包括統一資源定位符路徑參數、表參數以及文本描述參數;
27、數據調用模塊,用戶對所有所述關聯輸入參數均進行回調調用處理,得到每一項關聯輸入參數的回調數據,并利用已訓練好的大語言模型的代碼生成鏈,分別生成回調數據的第一提詞器模板以及第一用戶消息模板;
28、代碼生成模塊,用于基于所述第一提詞器模板以及所述第一用戶消息模板對回調數據進行處理,生成第一輸入數據,并將第一輸入數據輸入至所述大語言模型中,得到由所述大語言模型輸出的代碼;所述第一輸入數據的上下文信息包含所述關聯輸入參數以及所述業務邏輯處理流程;
29、代碼測試模塊,用于利用所述大語言模型的測試用例生成鏈,分別生成所述代碼的第二提詞器模板以及第二用戶消息模板,基于所述第二提詞器模板以及所述第二用戶消息模板對所述代碼進行處理,生成第二輸入數據,并將所述第二輸入數據輸入至所述大語言模型中,得到由所述大語言模型輸出的代碼的測試用例。
30、根據第三方面,本發明實施例還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如上述任一種所述代碼的自動生成方法的步驟。
31、根據第四方面,本發明實施例還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如上述任一種所述代碼的自動生成方法的步驟。
32、根據第五方面,本發明實施例還提供了一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執行時實現如上述任一項所述代碼的自動生成方法的步驟。
33、本發明的代碼的自動生成方法、裝置、設備及介質,通過對用戶代碼開發請求進行語義意圖理解,得到意圖理解結果,并對全邏輯處理流程進行補全得到業務邏輯處理流程,再基于業務邏輯處理流程,確定完成業務邏輯處理流程所需的關聯輸入參數,通過理解每個用戶的具體要求,再挖掘用戶軟件開發過程中可能需要的關聯對象,以便于后續展示并實現更加豐富以及完善的處理流程以及各個處理流程對應的處理返回結果,這樣可以像軟件開發人員一樣進行邏輯推理,根據輸入、輸出、數據源的結構,結合需求的文本描述,提供了更大的靈活性和擴展性,再利用大語言模型的邏輯推理能力,通過構建恰當的調用鏈,完成生成含邏輯處理的靈活代碼生成,同時能生成該代碼對應的測試用例,從而提升軟件開發效率。與現有的只支持輸入一個結構對象的代碼生成方案相比,可以根據輸入的多個關聯輸入參數和業務邏輯處理流程,動態生成多樣化的更加復雜且更加專業的代碼,通過這種自動化的代碼生成過程,可以大大提高開發效率,同時生成代碼的測試用例,從而提高測試效率,測試人員不再需要手動編寫測試用例,而可以直接使用生成的測試用例。