System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于數據處理,特別是涉及一種代碼生成方法、裝置、電子設備及可讀存儲介質。
技術介紹
1、自動代碼生成技術受到了越來越多的關注,這類技術旨在通過自動生成代碼,減少開發人員的工作量,提升開發效率。在此過程中,自動代碼生成技術簡化了軟件開發流程,降低了對開發人員專業技術的要求,因此在各類軟件項目中逐漸得到應用和推廣。
2、相關技術中,通常通過預訓練的大語言模型,直接根據用戶提供的功能需求文本生成相應的代碼。用戶向大語言模型輸入自然語言描述,大模型自動解析需求,并生成相應的代碼片段。
3、然而,大語言模型的處理準確性隨著文本的長度增加而下降,導致上述方式僅適用于較短的代碼片段生成,存在生成代碼準確性較低的問題。
技術實現思路
1、本專利技術提供一種代碼生成方法、裝置、電子設備及可讀存儲介質,以解決現有技術自動生成代碼準確性較低的問題的技術問題。
2、第一方面,本專利技術提供一種代碼生成方法,所述方法包括:
3、基于程序描述信息從組件模式信息庫中獲取目標組件模式條目;
4、將所述程序描述信息和所述目標組件模式條目輸入目標大語言模型,得到所述目標大語言模型輸出的程序模式定義;
5、基于所述程序模式定義生成所述程序描述信息對應的抽象語法樹;
6、根據所述抽象語法樹生成所述程序描述信息對應的程序代碼。
7、可選地,所述根據所述抽象語法樹生成所述程序描述信息對應的程序代碼,包括:
8
9、將所述第一代碼和所述程序描述信息輸入目標大語言模型,通過所述目標大語言模型對所述第一代碼修正,得到所述目標大語言模型輸出的所述程序代碼。
10、可選地,所述將所述第一代碼和所述程序描述信息輸入目標大語言模型,通過所述目標大語言模型對所述第一代碼修正,得到所述目標大語言模型輸出的所述程序代碼,包括:
11、將所述第一代碼輸入目標大語言模型,得到所述目標大語言模型輸出的代碼描述信息;
12、根據所述代碼描述信息和所述程序描述信息之間的功能差異,生成代碼修正指令;
13、將所述第一代碼、所述程序描述信息和所述代碼修正指令輸入目標大語言模型,得到所述目標大語言模型輸出的所述程序代碼。
14、可選地,所述方法還包括:
15、獲取程序描述媒體信息和所述組件模式信息庫對應的條目功能描述信息;
16、將所述程序描述媒體信息和所述條目功能描述信息輸入目標大語言模型,得到所述目標大語言模型輸出的程序描述信息;其中,所述程序描述信息包含的關鍵詞與所述條目功能描述信息包含的關鍵詞匹配。
17、可選地,所述基于程序描述信息從組件模式信息庫中獲取目標組件模式條目,包括:
18、對所述程序描述信息中進行語義分段處理,提取分段結果對應的分段語義特征;
19、將所述分段語義特征與所述組件模式信息庫中各個組件模式條目分別對應的條目語義特征進行匹配,得到所述目標組件模式條目。
20、可選地,所述基于程序描述信息從組件模式信息庫中獲取目標組件模式條目,包括:
21、獲取所述組件模式信息庫中各個組件模式條目分別對應的條目名稱信息;
22、將所述條目名稱信息和所述程序描述信息輸入目標大語言模型,得到所述目標大語言模型輸出的實現所述程序描述信息對應的目標程序所需的組件模式條目對應的目標條目名稱;
23、基于所述目標條目名稱從組件模式信息庫中獲取目標組件模式條目。
24、可選地,所述將所述程序描述信息和所述目標組件模式條目輸入目標大語言模型,得到所述目標大語言模型輸出的程序模式定義,包括:
25、確定所述程序描述信息描述的目標程序對應的目標程序類型;
26、基于所述目標程序類型從提示文本數據庫中匹配目標提示文本;
27、將所述程序描述信息、所述目標組件模式條目和所述目標提示文本輸入目標大語言模型,得到所述目標大語言模型輸出的程序模式定義。
28、第二方面,本專利技術提供一種代碼生成裝置,所述裝置包括:
29、條目模塊,用于基于程序描述信息從組件模式信息庫中獲取目標組件模式條目;
30、模式定義模塊,用于將所述程序描述信息和所述目標組件模式條目輸入目標大語言模型,得到所述目標大語言模型輸出的程序模式定義;
31、抽象語法樹模塊,用于基于所述程序模式定義生成所述程序描述信息對應的抽象語法樹;
32、代碼模塊,用于根據所述抽象語法樹生成所述程序描述信息對應的程序代碼。
33、可選地,所述代碼模塊包括:
34、解析子模塊,用于解析所述抽象語法樹,得到第一代碼;
35、第一輸入子模塊,用于將所述第一代碼和所述程序描述信息輸入目標大語言模型,通過所述目標大語言模型對所述第一代碼修正,得到所述目標大語言模型輸出的所述程序代碼。
36、可選地,所述第一輸入子模塊包括:
37、代碼描述信息單元,用于將所述第一代碼輸入目標大語言模型,得到所述目標大語言模型輸出的代碼描述信息;
38、代碼修正指令單元,用于根據所述代碼描述信息和所述程序描述信息之間的功能差異,生成代碼修正指令;
39、第一輸入單元,用于將所述第一代碼、所述程序描述信息和所述代碼修正指令輸入目標大語言模型,得到所述目標大語言模型輸出的所述程序代碼。
40、可選地,所述裝置還包括:
41、第一獲取模塊,用于獲取程序描述媒體信息和所述組件模式信息庫對應的條目功能描述信息;
42、程序描述信息模塊,用于將所述程序描述媒體信息和所述條目功能描述信息輸入目標大語言模型,得到所述目標大語言模型輸出的程序描述信息;其中,所述程序描述信息包含的關鍵詞與所述條目功能描述信息包含的關鍵詞匹配。
43、可選地,所述條目模塊包括:
44、語義特征子模塊,用于對所述程序描述信息中進行語義分段處理,提取分段結果對應的分段語義特征;
45、第一條目獲取子模塊,用于將所述分段語義特征與所述組件模式信息庫中各個組件模式條目分別對應的條目語義特征進行匹配,得到所述目標組件模式條目。
46、可選地,所述條目模塊包括:
47、第二獲取子模塊,用于獲取所述組件模式信息庫中各個組件模式條目分別對應的條目名稱信息;
48、第二輸入子模塊,用于將所述條目名稱信息和所述程序描述信息輸入目標大語言模型,得到所述目標大語言模型輸出的實現所述程序描述信息對應的目標程序所需的組件模式條目對應的目標條目名稱;
49、第二條目獲取子模塊,用于基于所述目標條目名稱從組件模式信息庫中獲取目標組件模式條目。
50、可選地,所述模式定義模塊包括:
51、程序類型子模塊,用于本文檔來自技高網...
【技術保護點】
1.一種代碼生成方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述根據所述抽象語法樹生成所述程序描述信息對應的程序代碼,包括:
3.根據權利要求2所述的方法,其特征在于,所述將所述第一代碼和所述程序描述信息輸入目標大語言模型,通過所述目標大語言模型對所述第一代碼修正,得到所述目標大語言模型輸出的所述程序代碼,包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于程序描述信息從組件模式信息庫中獲取目標組件模式條目,包括:
6.根據權利要求1所述的方法,其特征在于,所述基于程序描述信息從組件模式信息庫中獲取目標組件模式條目,包括:
7.根據權利要求1所述的方法,其特征在于,所述將所述程序描述信息和所述目標組件模式條目輸入目標大語言模型,得到所述目標大語言模型輸出的程序模式定義,包括:
8.一種代碼生成裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括:
10.一種可讀
...【技術特征摘要】
1.一種代碼生成方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述根據所述抽象語法樹生成所述程序描述信息對應的程序代碼,包括:
3.根據權利要求2所述的方法,其特征在于,所述將所述第一代碼和所述程序描述信息輸入目標大語言模型,通過所述目標大語言模型對所述第一代碼修正,得到所述目標大語言模型輸出的所述程序代碼,包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述基于程序描述信息從組件模式信息庫中獲取目標組件模式條目,包...
【專利技術屬性】
技術研發人員:伯諾克,阮宜龍,張云龍,
申請(專利權)人:中電信人工智能科技北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。