本公開(kāi)涉及大語(yǔ)言模型,具體涉及一種代碼編寫(xiě)糾錯(cuò)方法、裝置。
背景技術(shù):
1、在軟件開(kāi)發(fā)過(guò)程中,編程人員需要編寫(xiě)大量的代碼來(lái)實(shí)現(xiàn)特定的功能。然而,由于編輯速度快等一些原因,編程人員在代碼編寫(xiě)過(guò)程中可能會(huì)出現(xiàn)鍵入錯(cuò)誤,例如:在輸入代碼時(shí)不小心按錯(cuò)鍵。這些錯(cuò)誤不僅會(huì)打斷編程人員的工作思路,降低開(kāi)發(fā)效率,還可能引入潛在的bug,影響程序的穩(wěn)定性和可維護(hù)性。
2、而現(xiàn)有技術(shù)中,并無(wú)在代碼編寫(xiě)的過(guò)程中檢測(cè)是否存在鍵入錯(cuò)誤的有效手段。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本公開(kāi)提出了一種代碼編寫(xiě)糾錯(cuò)方法、裝置,以解決現(xiàn)有技術(shù)中存在的由于鍵入錯(cuò)誤導(dǎo)致降低開(kāi)發(fā)效率、影響程序穩(wěn)定性以及可維護(hù)性等問(wèn)題。
2、本公開(kāi)第一方面實(shí)施例提出了一種代碼編寫(xiě)糾錯(cuò)方法,所述方法包括:
3、響應(yīng)于代碼輸入操作,將代碼補(bǔ)全模型輸出的補(bǔ)全代碼與實(shí)時(shí)輸入的目標(biāo)代碼進(jìn)行比較;
4、如果所述補(bǔ)全代碼與所述目標(biāo)代碼不同,檢測(cè)所述補(bǔ)全代碼中與所述目標(biāo)代碼中不匹配的字符對(duì)應(yīng)的鍵值是否滿(mǎn)足預(yù)設(shè)位置條件,所述不匹配的字符是指在所述補(bǔ)全代碼中的字符位置與所述第二字符在所述目標(biāo)代碼中的字符位置相同,但內(nèi)容不同的字符;
5、若所述不匹配的字符對(duì)應(yīng)的鍵值在鍵盤(pán)上的位置滿(mǎn)足所述預(yù)設(shè)位置條件,則將所述目標(biāo)代碼作為待糾錯(cuò)代碼;
6、利用所述第一字符對(duì)所述待糾錯(cuò)代碼進(jìn)行糾錯(cuò)處理,得到糾錯(cuò)后的目標(biāo)代碼。
7、本公開(kāi)實(shí)施例通過(guò)將代碼補(bǔ)全模型輸出的補(bǔ)全代碼與實(shí)時(shí)輸入的目標(biāo)代碼進(jìn)行比較,以及在補(bǔ)全代碼與目標(biāo)代碼不同時(shí),檢測(cè)補(bǔ)全代碼中與所述目標(biāo)代碼中不匹配的字符對(duì)應(yīng)的鍵值是否滿(mǎn)足預(yù)設(shè)位置條件,并利用第一字符對(duì)待糾錯(cuò)代碼進(jìn)行糾錯(cuò)處理,能夠自動(dòng)識(shí)別出代碼編寫(xiě)過(guò)程中的鍵入錯(cuò)誤,并對(duì)其錯(cuò)誤代碼進(jìn)行自動(dòng)修改,從而大大提高用戶(hù)體驗(yàn)。
8、在本公開(kāi)實(shí)施例中,所述檢測(cè)所述補(bǔ)全代碼中與所述目標(biāo)代碼中不匹配的字符對(duì)應(yīng)的鍵值是否滿(mǎn)足預(yù)設(shè)位置條件,包括:
9、從所述補(bǔ)全代碼中確定出第一字符,以及從所述目標(biāo)代碼中確定出第二字符,所述第一字符在所述補(bǔ)全代碼中的字符位置與所述第二字符在所述目標(biāo)代碼中的字符位置相同,但內(nèi)容不同;
10、確定所述第一字符對(duì)應(yīng)的鍵值在鍵盤(pán)上的第一位置與所述第二字符對(duì)應(yīng)的鍵值在鍵盤(pán)上的第二位置是否滿(mǎn)足所述預(yù)設(shè)位置條件。
11、在本公開(kāi)實(shí)施例中,所述預(yù)設(shè)位置條件包括:所述第一位置與所述第二位置相同或者相鄰。
12、本公開(kāi)實(shí)施例通過(guò)對(duì)預(yù)設(shè)位置條件進(jìn)行限定,即第一位置與所述第二位置相同或者相鄰,能夠準(zhǔn)確判斷出代碼編寫(xiě)過(guò)程中所出現(xiàn)的錯(cuò)誤是否為鍵入錯(cuò)誤,提高了鍵入錯(cuò)誤的判斷準(zhǔn)確率。
13、在本公開(kāi)實(shí)施例中,利用所述第一字符對(duì)所述待糾錯(cuò)代碼進(jìn)行糾錯(cuò)處理,得到糾錯(cuò)后的目標(biāo)代碼,包括:
14、使用所述第一字符替換待糾錯(cuò)代碼中的第二字符,生成所述糾錯(cuò)后的目標(biāo)代碼。
15、在本公開(kāi)實(shí)施例中,所述方法還包括:
16、當(dāng)?shù)玫剿黾m錯(cuò)后的目標(biāo)代碼后,向用戶(hù)端發(fā)送糾錯(cuò)撤銷(xiāo)提示信息;
17、如果接收到所述用戶(hù)端發(fā)來(lái)的糾錯(cuò)撤銷(xiāo)指令,則使用所述第二字符替換所述糾錯(cuò)后的目標(biāo)代碼中的第一字符,得到所述目標(biāo)代碼。
18、本公開(kāi)實(shí)施例通過(guò)在得到糾錯(cuò)后的目標(biāo)代碼后,向用戶(hù)端發(fā)送糾錯(cuò)撤銷(xiāo)提示信息,以及在接收到用戶(hù)端發(fā)來(lái)的糾錯(cuò)撤銷(xiāo)指令后,使用第二字符替換糾錯(cuò)后的目標(biāo)代碼中的第一字符,得到目標(biāo)代碼,便于用戶(hù)了解當(dāng)前發(fā)生的變化,提高了用戶(hù)體驗(yàn);允許用戶(hù)撤銷(xiāo)之前的糾錯(cuò)操作,恢復(fù)到糾錯(cuò)前的狀態(tài),這為用戶(hù)提供了靈活性,允許他們重新考慮之前的決策。
19、在本公開(kāi)實(shí)施例中,所述方法還包括:
20、獲取多個(gè)源代碼;
21、針對(duì)所述多個(gè)源代碼中的任意一個(gè)源代碼,對(duì)所述源代碼進(jìn)行分詞處理,生成與所述源代碼對(duì)應(yīng)的字符序列,得到與所述多個(gè)源代碼一一對(duì)應(yīng)的多個(gè)字符序列;
22、根據(jù)所述多個(gè)字符序列,對(duì)初始模型進(jìn)行訓(xùn)練,得到所述代碼補(bǔ)全模型。
23、在本公開(kāi)實(shí)施例中,根據(jù)所述多個(gè)字符序列,對(duì)初始模型進(jìn)行訓(xùn)練,得到所述代碼補(bǔ)全模型,包括:
24、針對(duì)所述多個(gè)字符序列中任意一個(gè)字符序列,隨機(jī)將所述字符序列中的部分字符序列進(jìn)行刪除,得到目標(biāo)字符序列;
25、確定被刪除字符序列在所述目標(biāo)字符序列的目標(biāo)位置;
26、根據(jù)所述目標(biāo)位置,從所述目標(biāo)字符序列中確定出第一字符序列和第二字符序列;所述第一字符序列表示所述目標(biāo)字符序列的目標(biāo)位置前序部分的字符序列,所述第二字符序列表示所述目標(biāo)字符序列的目標(biāo)位置后序部分的字符序列;
27、訓(xùn)練所述初始模型根據(jù)所述第一字符序列和所述第二字符序列,預(yù)測(cè)所述被刪除字符序列。
28、本公開(kāi)實(shí)施例通過(guò)目標(biāo)位置,從目標(biāo)字符序列中確定出第一字符序列和第二字符序列,并訓(xùn)練初始模型根據(jù)第一字符序列和第二字符序列,預(yù)測(cè)被刪除字符序列,能夠使模型考慮代碼的前序和后續(xù)的上下文,以更好地理解代碼的邏輯流程和結(jié)構(gòu),從而優(yōu)化模型性能,達(dá)到提高補(bǔ)全結(jié)構(gòu)的預(yù)測(cè)準(zhǔn)確性的目的。
29、在本公開(kāi)實(shí)施例中,在訓(xùn)練所述初始模型根據(jù)所述第一字符序列和所述第二字符序列,預(yù)測(cè)所述被刪除字符序列之后,所述方法還包括:
30、將任意一個(gè)目標(biāo)字符序列所對(duì)應(yīng)的第一字符序列和第二字符序列輸入至所述初始模型中,得到所述初始模型輸出的補(bǔ)全字符序列;
31、如果所述補(bǔ)全字符序列與所述任意一個(gè)目標(biāo)字符序列中的被刪除字符序列相同,則將所述初始模型確定為所述代碼補(bǔ)全模型。
32、在本公開(kāi)實(shí)施例中,所述方法還包括:
33、如果所述補(bǔ)全字符序列與所述任意一個(gè)目標(biāo)字符序列中的被刪除字符序列不同,則根據(jù)與所述多個(gè)源代碼一一對(duì)應(yīng)的多個(gè)字符序列,對(duì)所述初始模型進(jìn)行模型優(yōu)化。
34、本公開(kāi)第二方面的實(shí)施例提供了一種代碼編寫(xiě)糾錯(cuò)裝置,包括:
35、代碼比較模塊,用于響應(yīng)于代碼輸入操作,將代碼補(bǔ)全模型輸出的補(bǔ)全代碼與實(shí)時(shí)輸入的目標(biāo)代碼進(jìn)行比較;
36、條件判斷模塊,用于如果所述補(bǔ)全代碼與所述目標(biāo)代碼不同,檢測(cè)所述補(bǔ)全代碼中與所述目標(biāo)代碼中不匹配的字符對(duì)應(yīng)的鍵值是否滿(mǎn)足預(yù)設(shè)位置條件,所述不匹配的字符是指在所述補(bǔ)全代碼中的字符位置與所述第二字符在所述目標(biāo)代碼中的字符位置相同,但內(nèi)容不同的字符;
37、待糾錯(cuò)代碼確定模塊,用于若所述不匹配的字符對(duì)應(yīng)的鍵值在鍵盤(pán)上的位置滿(mǎn)足所述預(yù)設(shè)位置條件,則將所述目標(biāo)代碼作為待糾錯(cuò)代碼;
38、代碼糾錯(cuò)模塊,用于利用所述第一字符對(duì)所述待糾錯(cuò)代碼進(jìn)行糾錯(cuò)處理,得到糾錯(cuò)后的目標(biāo)代碼。
39、本公開(kāi)第三方面的實(shí)施例提供了一種計(jì)算機(jī)設(shè)備,該計(jì)算機(jī)設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器和所述處理器之間互相通信連接,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)指令,所述處理器通過(guò)執(zhí)行所述計(jì)算機(jī)指令,從而執(zhí)行上述第一方面所述的代碼編寫(xiě)糾錯(cuò)方法。
40、本公開(kāi)第四方面的實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面所述的代碼編寫(xiě)糾錯(cuò)方法。
41、本公開(kāi)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變的明顯,或通過(guò)本公開(kāi)的實(shí)踐了解到。