本公開涉及大模型、深度學習、自然語言處理等人工智能以及代碼推薦、代碼問答、代碼存儲等互聯(lián)網(wǎng),可應(yīng)用于基于人工智能的交互場景,比如檢索增強生成、代碼問答等應(yīng)用場景,尤其涉及代碼存儲方法、代碼檢索方法、裝置及電子設(shè)備。
背景技術(shù):
1、大模型可以處理多種任務(wù),比如代碼補全、知識問答、nl2sql(natural?languageto?structured?query?language,自然語言轉(zhuǎn)換為sql查詢)、信息抽取等。以代碼問答為例,可以將用戶在ide(integrated?development?environment,集成開發(fā)環(huán)境)工作區(qū)打開的代碼庫的所有代碼文件存儲到數(shù)據(jù)庫,進而通過大模型,基于存儲的代碼文件,對用戶提出的問題進行回復。而在代碼文件為成千上萬、甚至十萬、百萬量級時,如何減少代碼數(shù)據(jù)的存儲成本,是需要解決的問題。
技術(shù)實現(xiàn)思路
1、本公開提供了一種代碼存儲方法、代碼檢索方法、裝置及電子設(shè)備。
2、根據(jù)本公開的第一方面,提供了一種代碼存儲方法,包括:獲取目標代碼庫中待存儲的第一代碼文件;將所述第一代碼文件切分成第一代碼塊;在所述第一代碼塊已存儲于數(shù)據(jù)庫中的情況下,在所述數(shù)據(jù)庫中增加所述目標代碼庫、所述第一代碼文件以及所述第一代碼塊之間的對應(yīng)關(guān)系;其中,所述對應(yīng)關(guān)系用于對所述目標代碼庫中的所述第一代碼文件進行代碼塊的讀取。
3、根據(jù)本公開的第二方面,提供了一種代碼檢索方法,包括:獲取檢索請求,其中,所述檢索請求用于查詢目標代碼庫;基于所述檢索請求,從數(shù)據(jù)庫中獲取所述目標代碼庫、所述目標代碼庫中的代碼文件以及所述代碼文件切分成的代碼塊之間的對應(yīng)關(guān)系;基于所述對應(yīng)關(guān)系,對所述目標代碼庫中的所述代碼文件進行代碼塊的讀取。
4、根據(jù)本公開的第三方面,提供了一種代碼存儲裝置,包括:第一獲取模塊,用于獲取目標代碼庫中待存儲的第一代碼文件;切分模塊,用于將所述第一代碼文件切分成第一代碼塊;第一存儲模塊,用于在所述第一代碼塊已存儲于數(shù)據(jù)庫中的情況下,在所述數(shù)據(jù)庫中增加所述目標代碼庫、所述第一代碼文件以及所述第一代碼塊之間的對應(yīng)關(guān)系;其中,所述對應(yīng)關(guān)系用于對所述目標代碼庫中的所述第一代碼文件進行代碼塊的讀取。
5、根據(jù)本公開的第四方面,提供了一種代碼檢索裝置,包括:第四獲取模塊,用于獲取檢索請求,其中,所述檢索請求用于查詢目標代碼庫;第五獲取模塊,用于基于所述檢索請求,從數(shù)據(jù)庫中獲取所述目標代碼庫、所述目標代碼庫中的代碼文件以及所述代碼文件切分成的代碼塊之間的對應(yīng)關(guān)系;讀取模塊,用于基于所述對應(yīng)關(guān)系,對所述目標代碼庫中的所述代碼文件進行代碼塊的讀取。
6、根據(jù)本公開的第五方面,提供了一種電子設(shè)備,包括:
7、至少一個處理器;以及
8、與所述至少一個處理器通信連接的存儲器;其中,
9、所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行如第一方面所述的代碼存儲方法,或者執(zhí)行如第二方面所述的代碼檢索方法。
10、根據(jù)本公開第六方面,提供了一種存儲有計算機指令的非瞬時計算機可讀存儲介質(zhì),所述計算機指令用于使所述計算機執(zhí)行如第一方面所述的代碼存儲方法,或者執(zhí)行如第二方面所述的代碼檢索方法。
11、根據(jù)本公開的第七方面,提供了一種計算機程序產(chǎn)品,包括計算機指令,所述計算機指令在被處理器執(zhí)行時實現(xiàn)如第一方面所述的代碼存儲方法,或者實現(xiàn)如第二方面所述的代碼檢索方法。
12、應(yīng)當理解,本部分所描述的內(nèi)容并非旨在標識本公開的實施例的關(guān)鍵或重要特征,也不用于限制本公開的范圍。本公開的其它特征將通過以下的說明書而變得容易理解。
1.一種代碼存儲方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,所述將所述第一代碼文件切分成第一代碼塊,包括:
3.根據(jù)權(quán)利要求1所述的方法,其中,所述將所述第一代碼文件切分成第一代碼塊之后,還包括:
4.根據(jù)權(quán)利要求1所述的方法,其中,所述第一代碼塊以向量化表示的方式進行存儲,所述第一代碼塊已存儲于數(shù)據(jù)庫中,包括:所述第一代碼塊的向量化表示已存儲于所述數(shù)據(jù)庫中。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述方法還包括:
6.根據(jù)權(quán)利要求1-5中任一項所述的方法,其中,所述將所述第一代碼文件切分成第一代碼塊之前,還包括:
7.根據(jù)權(quán)利要求6所述的方法,其中,所述確定所述代碼文件集合中,未存在所述第一代碼文件,包括:
8.根據(jù)權(quán)利要求6所述的方法,其中,所述方法還包括:
9.一種代碼檢索方法,包括:
10.根據(jù)權(quán)利要求9所述的方法,其中,所述檢索請求用于查詢所述目標代碼庫中與用戶問題之間的相似度高于預設(shè)閾值的代碼塊;所述方法還包括:
11.一種代碼存儲裝置,包括:
12.根據(jù)權(quán)利要求11所述的裝置,其中,所述切分模塊,包括:
13.根據(jù)權(quán)利要求11所述的裝置,其中,所述裝置還包括:
14.根據(jù)權(quán)利要求11所述的裝置,其中,所述第一代碼塊以向量化表示的方式進行存儲,所述第一代碼塊已存儲于數(shù)據(jù)庫中,包括:所述第一代碼塊的向量化表示已存儲于所述數(shù)據(jù)庫中。
15.根據(jù)權(quán)利要求14所述的裝置,其中,所述裝置還包括:
16.根據(jù)權(quán)利要求11-15中任一項所述的裝置,其中,所述裝置還包括:
17.根據(jù)權(quán)利要求16所述的裝置,其中,所述第三確定模塊,包括:
18.根據(jù)權(quán)利要求16所述的裝置,其中,所述裝置還包括:
19.一種代碼檢索裝置,包括:
20.根據(jù)權(quán)利要求19所述的裝置,其中,所述檢索請求用于查詢所述目標代碼庫中與用戶問題之間的相似度高于預設(shè)閾值的代碼塊;所述裝置還包括:
21.一種電子設(shè)備,包括:
22.一種存儲有計算機指令的非瞬時計算機可讀存儲介質(zhì),其中,所述計算機指令用于使所述計算機執(zhí)行權(quán)利要求1-8中任一項所述的方法,或者執(zhí)行權(quán)利要求9-10中任一項所述的方法。
23.一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)權(quán)利要求1-8中任一項所述的方法,或者實現(xiàn)權(quán)利要求9-10中任一項所述的方法。