System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 久久午夜无码鲁丝片直播午夜精品,免费无码黄网站在线看,亚洲日韩av无码
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    子函數(shù)的代碼生成方法、裝置制造方法及圖紙

    技術(shù)編號(hào):44499767 閱讀:3 留言:0更新日期:2025-03-04 18:08
    本公開提出一種子函數(shù)的代碼生成方法、裝置,該子函數(shù)的代碼生成方法包括:接收代碼補(bǔ)全指令,代碼補(bǔ)全指令包括目標(biāo)子函數(shù)的函數(shù)類型和上下文代碼;目標(biāo)子函數(shù)表示待補(bǔ)全函數(shù)中的至少一個(gè)未定義的子函數(shù);根據(jù)函數(shù)類型、上下文代碼以及第一代碼補(bǔ)全模型,確定目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼;通過目標(biāo)補(bǔ)全代碼對(duì)待補(bǔ)全函數(shù)進(jìn)行補(bǔ)全,得到第一補(bǔ)全代碼。本公開實(shí)施例通過檢測和補(bǔ)全未定義的子函數(shù),能夠確保生成的補(bǔ)全代碼是完整的,減少因未定義子函數(shù)導(dǎo)致的編譯或運(yùn)行錯(cuò)誤,大大提高了代碼補(bǔ)全的準(zhǔn)確性和代碼的可運(yùn)行性。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本公開涉及大語言模型,具體涉及一種子函數(shù)的代碼生成方法、裝置


    技術(shù)介紹

    1、隨著大語言模型技術(shù)的發(fā)展,越來越多的人開始使用大模型解決軟件開發(fā)場景下的代碼補(bǔ)全任務(wù)。

    2、現(xiàn)有的代碼補(bǔ)全模型輸出的補(bǔ)全代碼中可能存在未定義的子函數(shù),如果在代碼運(yùn)行過程中調(diào)用了一個(gè)未定義的子函數(shù),則可能出現(xiàn)程序運(yùn)行失敗的問題。

    3、因此,亟需一種子函數(shù)的代碼生成方法,以解決上述技術(shù)問題。


    技術(shù)實(shí)現(xiàn)思路

    1、有鑒于此,本公開提出了一種子函數(shù)的代碼生成方法、裝置,以解決相關(guān)技術(shù)存在由于補(bǔ)全代碼中存在未定義的子函數(shù),導(dǎo)致程序運(yùn)行失敗的問題。

    2、本公開第一方面實(shí)施例提出了一種子函數(shù)的代碼生成方法,所述方法包括:

    3、接收代碼補(bǔ)全指令,所述代碼補(bǔ)全指令包括目標(biāo)子函數(shù)的函數(shù)類型和上下文代碼;所述目標(biāo)子函數(shù)表示待補(bǔ)全函數(shù)中的至少一個(gè)未定義的子函數(shù);

    4、根據(jù)所述函數(shù)類型、所述上下文代碼以及第一代碼補(bǔ)全模型,確定所述目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼;

    5、通過所述目標(biāo)補(bǔ)全代碼對(duì)待補(bǔ)全函數(shù)進(jìn)行補(bǔ)全,得到第一補(bǔ)全代碼。

    6、本公開實(shí)施例,通過根據(jù)未定義的子函數(shù)的函數(shù)類型、上下文代碼以及第一代碼補(bǔ)全模型,確定未定義的子函數(shù)的目標(biāo)補(bǔ)全代碼,并利用該目標(biāo)補(bǔ)全代碼對(duì)待補(bǔ)全函數(shù)進(jìn)行補(bǔ)全,得到第一補(bǔ)全代碼,能夠確保生成的補(bǔ)全代碼是完整的,減少因未定義子函數(shù)導(dǎo)致的編譯或運(yùn)行錯(cuò)誤,大大提高了代碼補(bǔ)全的準(zhǔn)確性和代碼的可運(yùn)行性。

    7、在本公開實(shí)施例中,在得到第一補(bǔ)全代碼之后,所述方法還包括:

    8、檢測所述第一補(bǔ)全代碼已補(bǔ)全的目標(biāo)子函數(shù)中是否存在未定義的新的子函數(shù);

    9、如果存在所述未定義的新的子函數(shù),則將所述未定義的新的子函數(shù)確定新的目標(biāo)子函數(shù),并再次執(zhí)行接收代碼補(bǔ)全指令的操作。

    10、本公開實(shí)施例,通過對(duì)補(bǔ)全得到的第一補(bǔ)全代碼進(jìn)行是否被定義的檢測,能夠保證所有子函數(shù)都被正確定義,減少代碼運(yùn)行時(shí)出現(xiàn)未定義函數(shù)調(diào)用的錯(cuò)誤,進(jìn)而大大提高了代碼補(bǔ)全的準(zhǔn)確性和代碼的可運(yùn)行性。

    11、在本公開實(shí)施例中,根據(jù)所述函數(shù)類型、所述上下文代碼以及第一代碼補(bǔ)全模型,確定所述目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼,包括:

    12、提取所述目標(biāo)子函數(shù)的上下文代碼的語義特征;

    13、調(diào)用所述第一代碼補(bǔ)全模型根據(jù)所述語義特征以及所述函數(shù)類型確定所述目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼。

    14、在本公開實(shí)施例中,還包括:訓(xùn)練得到所述第一代碼補(bǔ)全模型,所述第一代碼補(bǔ)全模型的模型訓(xùn)練步驟包括:

    15、獲取多個(gè)第一樣本代碼;每個(gè)第一樣本代碼包括至少一個(gè)函數(shù)代碼片段,每個(gè)函數(shù)代碼片段包括至少一個(gè)子函數(shù)調(diào)用;

    16、針對(duì)所述多個(gè)第一樣本代碼中的任意一個(gè)第一樣本代碼,將所述第一樣本代碼中的任意一個(gè)函數(shù)中調(diào)用的任意一個(gè)子函數(shù)的定義刪除,得到第二樣本代碼;

    17、根據(jù)所述第二樣本代碼中的被刪除子函數(shù)的函數(shù)信息,以及與所述被刪除子函數(shù)對(duì)應(yīng)的前序代碼和后序代碼,對(duì)初始模型進(jìn)行訓(xùn)練,得到所述第一代碼補(bǔ)全模型;所述函數(shù)信息包括函數(shù)類型和函數(shù)名。

    18、在本公開實(shí)施例中,在接收代碼補(bǔ)全指令之前,所述方法還包括:

    19、獲取待補(bǔ)全的源代碼;

    20、將所述待補(bǔ)全的源代碼輸入至訓(xùn)練好的第二代碼補(bǔ)全模型中,輸出第二補(bǔ)全代碼;

    21、判斷所述第二補(bǔ)全代碼中是否存在未定義的子函數(shù);

    22、如果所述第二補(bǔ)全代碼中不存在未定義的子函數(shù),則通過所述第二補(bǔ)全代碼對(duì)所述待補(bǔ)全的源代碼進(jìn)行補(bǔ)全;

    23、如果所述第二補(bǔ)全代碼中存在未定義的子函數(shù),則執(zhí)行接收代碼補(bǔ)全指令的操作。

    24、在本公開實(shí)施例中,在得到第一補(bǔ)全代碼之后,所述方法還包括:

    25、如果所述第一補(bǔ)全代碼中不存在未定義的子函數(shù)時(shí),則通過所述第一補(bǔ)全代碼對(duì)所述待補(bǔ)全的源代碼進(jìn)行補(bǔ)全,得到可執(zhí)行的源代碼。

    26、在本公開實(shí)施例中,訓(xùn)練得到所述第二代碼補(bǔ)全模型,所述第二代碼補(bǔ)全模型的模型訓(xùn)練步驟包括:

    27、獲取多個(gè)第三樣本代碼;

    28、針對(duì)所述多個(gè)第三樣本代碼中的任意一個(gè)第三樣本代碼,將所述第三樣本代碼轉(zhuǎn)換為對(duì)應(yīng)的第一抽象語法樹,得到與所述多個(gè)第三樣本代碼一一對(duì)應(yīng)的多個(gè)第一抽象語法樹;任一第一抽象語法樹包括多個(gè)分支結(jié)構(gòu),每個(gè)分支結(jié)構(gòu)包括所述第一抽象語法樹中除根節(jié)點(diǎn)之外的任意一個(gè)節(jié)點(diǎn),以及所述任意一個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn);

    29、針對(duì)所述多個(gè)第一抽象語法樹中的任意一個(gè)第一抽象語法樹,將所述第一抽象語法樹中的任意一個(gè)分支結(jié)構(gòu)刪除,得到第二抽象語法樹;

    30、根據(jù)與所述多個(gè)第一抽象語法樹一一對(duì)應(yīng)的多個(gè)第二抽象語法樹,對(duì)第二初始模型進(jìn)行訓(xùn)練,以得到所述第二代碼補(bǔ)全模型。

    31、本公開實(shí)施例通過將第一抽象語法樹中的任意一個(gè)分支結(jié)構(gòu)刪除,得到第二抽象語法樹;根據(jù)與多個(gè)第一抽象語法樹一一對(duì)應(yīng)的多個(gè)第二抽象語法樹,對(duì)初始模型進(jìn)行訓(xùn)練,得到第二代碼補(bǔ)全模型,通過這種模型訓(xùn)練方式得到的代碼補(bǔ)全模型能夠保證代碼補(bǔ)全的結(jié)構(gòu)完整性(這里的結(jié)構(gòu)完整性是指代碼的整體框架的完整性,與子函數(shù)未定義不沖突),從而達(dá)到補(bǔ)全后的源代碼能夠正常運(yùn)行的目的。

    32、在本公開實(shí)施例中,根據(jù)與所述多個(gè)第一抽象語法樹一一對(duì)應(yīng)的多個(gè)第二抽象語法樹,對(duì)第二初始模型進(jìn)行訓(xùn)練,以得到所述第二代碼補(bǔ)全模型,包括:

    33、針對(duì)所述多個(gè)第二抽象語法樹中的任意一個(gè)第二抽象語法樹,將所述第二抽象語法樹轉(zhuǎn)換為對(duì)應(yīng)的目標(biāo)字符序列;

    34、確定所述第二抽象語法樹的被刪除分支結(jié)構(gòu)在所述目標(biāo)字符序列的目標(biāo)位置;

    35、根據(jù)所述目標(biāo)位置,從所述目標(biāo)字符序列中確定出第一字符序列和第二字符序列;所述第一字符序列表示所述目標(biāo)字符序列的目標(biāo)位置前序部分的字符序列,所述第二字符序列表示所述目標(biāo)字符序列的目標(biāo)位置后序部分的字符序列;

    36、訓(xùn)練所述初始模型根據(jù)所述第一字符序列和所述第二字符序列,預(yù)測所述被刪除分支結(jié)構(gòu)的字符序列。

    37、本公開實(shí)施例通過目標(biāo)位置,從目標(biāo)字符序列中確定出第一字符序列和第二字符序列,并訓(xùn)練初始模型根據(jù)第一字符序列和第二字符序列,預(yù)測被刪除分支結(jié)構(gòu)的字符序列,能夠使模型考慮代碼的前序和后續(xù)的上下文,以更好地理解代碼的邏輯流程和結(jié)構(gòu),從而優(yōu)化模型性能,達(dá)到提高補(bǔ)全結(jié)構(gòu)的預(yù)測準(zhǔn)確性的目的。

    38、在本公開實(shí)施例中,在將所述第一抽象語法樹中的任意一個(gè)分支結(jié)構(gòu)刪除,得到第二抽象語法樹之后,所述方法還包括:

    39、從所述多個(gè)第一抽象語法樹中篩選出與所述第二抽象語法樹對(duì)應(yīng)的第一抽象語法樹;

    40、將所述第一抽象語法樹中與所述第二抽象語法樹的被刪除分支結(jié)構(gòu)對(duì)應(yīng)的分支結(jié)構(gòu)進(jìn)行標(biāo)注。

    41、本公開第二方面的實(shí)施例提供了一種子函數(shù)的代碼生成裝置,包括:

    42、指令接收模塊,用于接收代碼補(bǔ)全指令,所述代碼補(bǔ)全指本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種子函數(shù)的代碼生成方法,其特征在于,所述方法包括:

    2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在得到第一補(bǔ)全代碼之后,所述方法還包括:

    3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,根據(jù)所述函數(shù)類型、所述上下文代碼以及第一代碼補(bǔ)全模型,確定所述目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼,包括:

    4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括:訓(xùn)練得到所述第一代碼補(bǔ)全模型,所述第一代碼補(bǔ)全模型的模型訓(xùn)練步驟包括:

    5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在接收代碼補(bǔ)全指令之前,所述方法還包括:

    6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在得到第一補(bǔ)全代碼之后,所述方法還包括:

    7.根據(jù)權(quán)利要求5所述的方法,其特征在于,訓(xùn)練得到所述第二代碼補(bǔ)全模型,所述第二代碼補(bǔ)全模型的模型訓(xùn)練步驟包括:

    8.根據(jù)權(quán)利要求7所述的方法,其特征在于,根據(jù)與所述多個(gè)第一抽象語法樹一一對(duì)應(yīng)的多個(gè)第二抽象語法樹,對(duì)第二初始模型進(jìn)行訓(xùn)練,以得到所述第二代碼補(bǔ)全模型,包括:

    9.根據(jù)權(quán)利要求7所述的方法,其特征在于,在將所述第一抽象語法樹中的任意一個(gè)分支結(jié)構(gòu)刪除,得到第二抽象語法樹之后,所述方法還包括:

    10.一種子函數(shù)的代碼生成裝置,其特征在于,所述裝置包括:

    ...

    【技術(shù)特征摘要】

    1.一種子函數(shù)的代碼生成方法,其特征在于,所述方法包括:

    2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在得到第一補(bǔ)全代碼之后,所述方法還包括:

    3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,根據(jù)所述函數(shù)類型、所述上下文代碼以及第一代碼補(bǔ)全模型,確定所述目標(biāo)子函數(shù)的目標(biāo)補(bǔ)全代碼,包括:

    4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括:訓(xùn)練得到所述第一代碼補(bǔ)全模型,所述第一代碼補(bǔ)全模型的模型訓(xùn)練步驟包括:

    5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在接收代碼補(bǔ)全指令之前,所述方法還包括:

    6.根據(jù)權(quán)利要求5所述...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:蔣思源李戈劉洋
    申請(qǐng)(專利權(quán))人:北京硅心科技有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 精品久久久久久无码人妻| 无码熟熟妇丰满人妻啪啪软件| 精品无码久久久久久久久久| 伊人久久精品无码二区麻豆| 日韩精品真人荷官无码| 国产高清无码二区 | 欧洲黑大粗无码免费| 久久青青草原亚洲av无码| 亚洲日韩乱码中文无码蜜桃| 免费无码黄网站在线看| 国产精品无码无卡在线观看久 | 免费无码午夜福利片| 久久无码av三级| 波多野结衣AV无码| 色综合久久久无码中文字幕波多| 国产V亚洲V天堂无码| 精品无码久久久久久久久久| 永久免费AV无码网站在线观看| 精品亚洲A∨无码一区二区三区 | 无码一区二区三区AV免费| 亚洲AV无码不卡无码| 国99精品无码一区二区三区| 亚洲人成影院在线无码观看 | 人妻丰满?V无码久久不卡| 无码不卡av东京热毛片| 日韩精品专区AV无码| 久久综合精品国产二区无码| 亚洲av无码乱码国产精品| 亚洲中文字幕久久精品无码喷水| 无码人妻一区二区三区在线水卜樱| 亚洲av永久无码一区二区三区| 精品无码国产一区二区三区AV| 亚洲AV成人无码久久精品老人| 亚洲日韩激情无码一区| 国产AV无码专区亚洲A∨毛片| 中文字幕乱妇无码AV在线| 久久青青草原亚洲AV无码麻豆| 亚洲av永久无码精品秋霞电影影院 | 波多野结AV衣东京热无码专区| 国产精品午夜无码体验区| 人妻老妇乱子伦精品无码专区|