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