本發(fā)明涉及數(shù)據(jù)處理,特別是涉及一種代碼補全方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著人工智能技術(shù)的快速發(fā)展,智能輔助編程已經(jīng)成為編程領(lǐng)域的常用手段。這些工具利用機器學(xué)習(xí)和自然語言處理技術(shù),能夠理解用戶的代碼上下文,從而實現(xiàn)代碼的補全。但是,由于智能輔助編程工具能夠處理的上下文長度有限,這導(dǎo)致智能輔助編程工具無法全面理解用戶代碼的整體工程結(jié)構(gòu),從而造成所生成的補全代碼的準(zhǔn)確性較低。
技術(shù)實現(xiàn)思路
1、本發(fā)明實施例的目的在于提供一種代碼補全方法、裝置、電子設(shè)備及存儲介質(zhì),以實現(xiàn)提高代碼補全的準(zhǔn)確性。具體技術(shù)方案如下:
2、第一方面,本申請?zhí)峁┝艘环N代碼補全方法,應(yīng)用于代碼編輯器的輔助編程插件,所述方法包括:
3、響應(yīng)于用戶在代碼編輯界面執(zhí)行輸入操作,獲取所述輸入操作對應(yīng)的輸入內(nèi)容;
4、基于所述輸入內(nèi)容的類型,按照預(yù)定確定方式,確定用于代碼補全的待分析內(nèi)容;其中,所述預(yù)定確定方式包括若所述輸入內(nèi)容的類型為文字注釋類型,將所述輸入內(nèi)容作為所述待分析內(nèi)容,以及若所述輸入內(nèi)容的類型為代碼類型,將所述代碼編輯界面中的代碼輸入至預(yù)設(shè)的代碼補全大語言模型,以使所述代碼補全大語言模型輸出第一代碼補全內(nèi)容,得到所述待分析內(nèi)容;
5、識別所述待分析內(nèi)容對應(yīng)的功能描述,作為目標(biāo)功能描述;其中,任一內(nèi)容對應(yīng)的功能描述為該內(nèi)容所能夠?qū)崿F(xiàn)的功能的描述內(nèi)容;
6、從目標(biāo)數(shù)據(jù)庫中,確定與所述目標(biāo)功能描述相匹配的各個目標(biāo)候選代碼模塊;其中,所述目標(biāo)數(shù)據(jù)庫中存儲有:對當(dāng)前代碼編輯界面的代碼所屬的目標(biāo)代碼工程的各個文件進行分析后,所確定出的各個候選代碼模塊以及每一候選代碼模塊對應(yīng)的功能描述;
7、將各個目標(biāo)候選代碼模塊,輸出至目標(biāo)窗口以供用戶進行選擇;
8、響應(yīng)于用戶在所述目標(biāo)窗口發(fā)出指定補全指令,執(zhí)行該指定補全指令對應(yīng)的補全操作,以完成針對所述輸入內(nèi)容的代碼補全;
9、其中,所述指定補全指令包括第一補全指令、第二補全指令或第三補全指令;
10、所述第一補全指令為用于指示以第二代碼補全內(nèi)容,進行補全代碼的指令;其中,所述第二代碼補全內(nèi)容為基于用戶選中的目標(biāo)候選代碼模塊以及所述代碼編輯界面中的代碼生成的、且包括有用戶選中的目標(biāo)候選代碼模塊;
11、所述第二補全指令為用于指示以用戶選中的目標(biāo)候選代碼模塊,進行補全代碼的指令;
12、所述第三補全指令為用于指示以基于所述代碼編輯界面中的代碼生成的代碼補全內(nèi)容,進行補全代碼的指令。
13、第二方面,本申請?zhí)峁┝艘环N代碼補全裝置,應(yīng)用于代碼編輯器的輔助編程插件,所述裝置包括:
14、獲取模塊,用于響應(yīng)于用戶在代碼編輯界面執(zhí)行輸入操作,獲取所述輸入操作對應(yīng)的輸入內(nèi)容;
15、第一確定模塊,用于基于所述輸入內(nèi)容的類型,按照預(yù)定確定方式,確定用于代碼補全的待分析內(nèi)容;其中,所述預(yù)定確定方式包括若所述輸入內(nèi)容的類型為文字注釋類型,將所述輸入內(nèi)容作為所述待分析內(nèi)容,以及若所述輸入內(nèi)容的類型為代碼類型,將所述代碼編輯界面中的代碼輸入至預(yù)設(shè)的代碼補全大語言模型,以使所述代碼補全大語言模型輸出第一代碼補全內(nèi)容,得到所述待分析內(nèi)容;
16、識別模塊,用于識別所述待分析內(nèi)容對應(yīng)的功能描述,作為目標(biāo)功能描述;其中,任一內(nèi)容對應(yīng)的功能描述為該內(nèi)容所能夠?qū)崿F(xiàn)的功能的描述內(nèi)容;
17、第二確定模塊,用于從目標(biāo)數(shù)據(jù)庫中,確定與所述目標(biāo)功能描述相匹配的各個目標(biāo)候選代碼模塊;其中,所述目標(biāo)數(shù)據(jù)庫中存儲有:對當(dāng)前代碼編輯界面的代碼所屬的目標(biāo)代碼工程的各個文件進行分析后,所確定出的各個候選代碼模塊以及每一候選代碼模塊對應(yīng)的功能描述;
18、輸出模塊,用于將各個目標(biāo)候選代碼模塊,輸出至目標(biāo)窗口以供用戶進行選擇;
19、補全模塊,用于響應(yīng)于用戶在所述目標(biāo)窗口發(fā)出指定補全指令,執(zhí)行該指定補全指令對應(yīng)的補全操作,以完成針對所述輸入內(nèi)容的代碼補全;
20、其中,所述指定補全指令包括第一補全指令、第二補全指令或第三補全指令;
21、所述第一補全指令為用于指示以第二代碼補全內(nèi)容,進行補全代碼的指令;其中,所述第二代碼補全內(nèi)容為基于用戶選中的目標(biāo)候選代碼模塊以及所述代碼編輯界面中的代碼生成的、且包括有用戶選中的目標(biāo)候選代碼模塊;
22、所述第二補全指令為用于指示以用戶選中的目標(biāo)候選代碼模塊,進行補全代碼的指令;
23、所述第三補全指令為用于指示以基于所述代碼編輯界面中的代碼生成的代碼補全內(nèi)容,進行補全代碼的指令。
24、第三方面,本申請?zhí)峁┝艘环N電子設(shè)備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
25、存儲器,用于存放計算機程序;
26、處理器,用于執(zhí)行存儲器上所存放的程序時,實現(xiàn)上述任一所述的代碼補全方法。
27、第四方面,本申請?zhí)峁┝艘环N計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)內(nèi)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述任一所述的代碼補全方法。
28、本發(fā)明實施例有益效果:本發(fā)明實施例提供的方案,輔助編程插件在用戶在代碼編輯界面執(zhí)行輸入操作后,首先,可以基于該輸入內(nèi)容的類型,按照預(yù)定確定方式,確定用于代碼補全的待分析內(nèi)容,然后,在目標(biāo)數(shù)據(jù)庫中確定與待分析內(nèi)容的功能描述相匹配的目標(biāo)候選代碼模塊以供用戶選擇,從而用戶在基于目標(biāo)候選代碼模塊,發(fā)出指定補全指令后,輔助編程插件執(zhí)行該指定補全指令對應(yīng)的補全操作,以完成針對所述輸入內(nèi)容的代碼補全。由于本申請中目標(biāo)數(shù)據(jù)庫中的候選代碼模塊,是當(dāng)前代碼編輯界面的代碼所屬的目標(biāo)代碼工程的各個文件進行分析后,所確定出的各個候選代碼模塊以及每一候選代碼模塊對應(yīng)的功能描述,從而,利用目標(biāo)數(shù)據(jù)庫中的候選代碼模塊來完成代碼補全,可以提高當(dāng)前代碼編輯界面的代碼與所述目標(biāo)代碼工程的其它文件之間的業(yè)務(wù)關(guān)聯(lián)度;并且,本發(fā)明中針對不同類型的輸入內(nèi)容,采用不同方式確定用于代碼補全的待分析內(nèi)容,可以使得用于代碼補全的內(nèi)容具有較為完整的語義表達,從而為代碼補全過程提供較好的分析基礎(chǔ)??梢姡ㄟ^本方案可以提高代碼補全的準(zhǔn)確性。
29、當(dāng)然,實施本發(fā)明的任一產(chǎn)品或方法并不一定需要同時達到以上所述的所有優(yōu)點。
1.一種代碼補全方法,其特征在于,應(yīng)用于代碼編輯器的輔助編程插件,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)數(shù)據(jù)庫中存儲的各個候選代碼模塊以及每一候選代碼模塊對應(yīng)的功能描述的確定方式包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述目標(biāo)數(shù)據(jù)庫中的每一候選代碼模塊對應(yīng)的功能描述的存儲形式為向量值形式;
4.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,任一內(nèi)容對應(yīng)的功能描述的識別方式包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述會話大語言模型的輸入還包括表征格式和長度約束值的目標(biāo)參數(shù);
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述響應(yīng)于用戶在所述目標(biāo)窗口發(fā)出指定補全指令,執(zhí)行該指定補全指令對應(yīng)的補全操作,以完成針對所述輸入內(nèi)容的代碼補全包括:
7.一種代碼補全裝置,其特征在于,應(yīng)用于代碼編輯器的輔助編程插件,所述裝置包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述目標(biāo)數(shù)據(jù)庫中存儲的各個候選代碼模塊以及每一候選代碼模塊對應(yīng)的功能描述的確定方式包括:
9.一種電子設(shè)備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)內(nèi)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1-6任一所述的方法。