本發(fā)明涉及計算機,尤其涉及一種生成代碼的方法及裝置。
背景技術:
1、隨著軟件技術的發(fā)展,自動代碼生成成為一種減少開發(fā)人員的重復性工作的方式。經(jīng)過多年的發(fā)展,針對不同的編程語言和場景,各開發(fā)人員已經(jīng)開發(fā)出適配各種應用場景的自動代碼生成工具,以滿足需求。
2、目前,一般是通過大語言模型(large?language?model,簡稱llm)模型工具對需求進行解析,生成對應的前端代碼。但是生成代碼的準確性高度依賴于llm模型的訓練效果,對于訓練數(shù)據(jù)不足或偏差較大的情況,llm模型可能無法準確理解和實現(xiàn)用戶的需求,導致生成的代碼質(zhì)量不佳,需要耗費大量的人力物力去手動修正調(diào)整的問題。
3、綜上,如何實現(xiàn)準確的自動化生成代碼,是當前亟需解決的技術問題。
技術實現(xiàn)思路
1、本發(fā)明實施例提供一種生成代碼的方法及裝置,用以解決現(xiàn)有技術存在的通過llm模型生成的代碼存在質(zhì)量不佳,需要耗費大量的人力物力去手動修正調(diào)整的問題。
2、第一方面,本發(fā)明實施例提供一種生成代碼的方法,應用于包括多個不同功能的智能體agent的代碼生成系統(tǒng),包括:通過需求分析agent對用戶端的第一需求進行解析,得到目標需求;通過工程解析agent組對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,確定源代碼文件庫對應的依賴關系;通過依賴關系,確定目標需求對應的待修改信息;通過代碼修改agent,根據(jù)待修改信息確定目標代碼。
3、可選的,通過工程解析agent組對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,確定源代碼文件庫對應的依賴關系,包括:通過工程解析agent組中的文件解析agent,對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,得到文件解析信息;通過工程解析agent組中的依賴關系agent,根據(jù)文件解析信息確定源代碼文件庫對應的依賴關系;通過依賴關系,確定目標需求對應的待修改信息,包括:通過工程解析agent組中的需求映射agent,根據(jù)目標需求和依賴關系,確定目標需求對應的待修改信息。
4、可選的,文件解析信息包括文件的作用信息、文件中所有類或函數(shù)的定義信息、文件中的全局變量或常量信息、文件的導入關系;依賴關系包括組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、核心組件信息、核心路徑信息、組件的潛在問題信息、組件的架構(gòu)信息;任一文件包括至少一個組件;通過工程解析agent組中的依賴關系agent,根據(jù)文件解析信息確定源代碼文件庫對應的依賴關系,包括:依賴關系agent根據(jù)文件中所有類或函數(shù)的定義信息、文件中的全局變量或常量信息和文件的導入關系,確定組件間的調(diào)用關系和組件間的數(shù)據(jù)流向;依賴關系agent根據(jù)文件中文件的作用信息、所有類或函數(shù)的定義信息、文件中的全局變量或常量信息,確定核心組件信息和核心路徑信息;依賴關系agent根據(jù)組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、文件中所有類或函數(shù)的定義信息,確定組件的潛在問題信息;依賴關系agent根據(jù)組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、核心組件信息、核心路徑信息、組件的潛在問題信息,確定組件的架構(gòu)信息。
5、可選的,待修改信息包括需求點與源代碼的關聯(lián)關系、待修改代碼的范圍、重點組件;重點組件包括新增組件或修改程度大于設定閾值的組件;通過工程解析agent組中的需求映射agent,根據(jù)目標需求和依賴關系,確定待修改信息,包括:需求映射agent根據(jù)目標需求和依賴關系,確定需求點與源代碼的關聯(lián)關系;需求映射agent根據(jù)需求點與源代碼的關聯(lián)關系,確定待修改代碼的范圍;需求映射agent根據(jù)需求點與源代碼的關聯(lián)關系、待修改代碼的范圍和依賴關系,確定重點組件。
6、可選的,代碼生成系統(tǒng)還包括測試agent和審核agent;通過代碼修改agent,根據(jù)待修改信息確定目標代碼,包括:代碼修改agent根據(jù)待修改信息對源代碼進行修改,確定待審核代碼并發(fā)送至測試agent;測試agent對待審核代碼中的重點組件進行功能性測試,若測試通過,則將待審核代碼發(fā)送至審核agent;審核agent根據(jù)審核條件,對待審核代碼進行審核,若審核通過,則將待審核代碼確定為目標代碼。
7、可選的,通過代碼修改agent,根據(jù)待修改信息確定目標代碼,包括:代碼修改agent基于檢索增強生成rag檢索到代碼生成規(guī)則,根據(jù)待修改信息確定目標代碼,代碼生成規(guī)則包括編碼規(guī)范條件、安全編碼條件、性能條件和質(zhì)量條件中的至少一項。
8、可選的,審核條件包括合規(guī)性審核、安全性審核、性能審核和質(zhì)量審核;審核agent根據(jù)審核條件,對待審核代碼進行審核,包括:審核agent依次對待審核代碼進行合規(guī)性審核、安全性審核、性能審核和質(zhì)量審核,若審核不通過,則生成審核結(jié)果并發(fā)送至代碼修改agent;代碼修改agent根據(jù)審核結(jié)果,對待審核代碼進行修改,得到再處理代碼并發(fā)送至測試agent;測試agent對再處理代碼中的重點組件進行功能性測試,直至測試通過,則將再處理代碼發(fā)送至審核agent;審核agent根據(jù)審核條件,對再處理代碼進行審核,直至審核通過,則將再處理代碼確定為目標代碼。
9、第二方面,本發(fā)明實施例提供的一種代碼生成系統(tǒng),包括需求分析agent、工程解析agent組和代碼修改agent;需求分析agent用于對用戶端的第一需求進行解析,得到目標需求并將目標需求發(fā)送至工程解析agent組;工程解析agent組用于對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,確定源代碼文件庫對應的依賴關系;通過依賴關系,確定目標需求對應的待修改信息,并將目標需求對應的待修改信息發(fā)送至代碼修改agent;代碼修改agent用于根據(jù)待修改信息確定目標代碼。
10、第三方面,本發(fā)明實施例提供的一種生成代碼的裝置,應用于包括多個不同功能的智能體agent的代碼生成系統(tǒng),包括:獲取單元用于通過需求分析agent對用戶端的第一需求進行解析,得到目標需求;處理單元用于通過工程解析agent組對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,確定源代碼文件庫對應的依賴關系;通過依賴關系,確定目標需求對應的待修改信息;通過代碼修改agent,根據(jù)待修改信息確定目標代碼。
11、可選的,處理單元具體用于:通過工程解析agent組中的文件解析agent,對目標需求關聯(lián)的源代碼文件庫中的每個文件進行解析,得到文件解析信息;通過工程解析agent組中的依賴關系agent,根據(jù)文件解析信息確定源代碼文件庫對應的依賴關系;通過依賴關系,確定目標需求對應的待修改信息,包括:通過工程解析agent組中的需求映射agent,根據(jù)目標需求和依賴關系,確定目標需求對應的待修改信息。
12、可選的,文件解析信息包括文件的作用信息、文件中所有類或函數(shù)的定義信息、文件中的全局變量或常量信息、文件的導入關系;依賴關系包括組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、核心組件信息、核心路徑信息、組件的潛在問題信息、組件的架構(gòu)信息;任一文件包括至少一個組件;處理單元具體用于:依賴關系agent根據(jù)文件中所有類或函數(shù)的定義信息、文件中的全局變量或常量信息和文件的導入關系,確定組件間的調(diào)用關系和組件間的數(shù)據(jù)流向;依賴關系agent根據(jù)文件中文件的作用信息、所有類或函數(shù)的定義信息、文件中的全局變量或常量信息,確定核心組件信息和核心路徑信息;依賴關系agent根據(jù)組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、文件中所有類或函數(shù)的定義信息,確定組件的潛在問題信息;依賴關系agent根據(jù)組件間的調(diào)用關系、組件間的數(shù)據(jù)流向、核心組件信息、核心路徑信息、組件的潛在問題信息,確定組件的架構(gòu)信息。
13、可選的,待修改信息包括需求點與源代碼的關聯(lián)關系、待修改代碼的范圍、重點組件;重點組件包括新增組件或修改程度大于設定閾值的組件;處理單元具體用于:需求映射agent根據(jù)目標需求和依賴關系,確定需求點與源代碼的關聯(lián)關系;需求映射agent根據(jù)需求點與源代碼的關聯(lián)關系,確定待修改代碼的范圍;需求映射agent根據(jù)需求點與源代碼的關聯(lián)關系、待修改代碼的范圍和依賴關系,確定重點組件。
14、可選的,代碼生成系統(tǒng)還包括測試agent和審核agent;處理單元具體用于:代碼修改agent根據(jù)待修改信息對源代碼進行修改,確定待審核代碼并發(fā)送至測試agent;測試agent對待審核代碼中的重點組件進行功能性測試,若測試通過,則將待審核代碼發(fā)送至審核agent;審核agent根據(jù)審核條件,對待審核代碼進行審核,若審核通過,則將待審核代碼確定為目標代碼。
15、可選的,處理單元具體用于:代碼修改agent基于檢索增強生成rag檢索到代碼生成規(guī)則,根據(jù)待修改信息確定目標代碼,代碼生成規(guī)則包括編碼規(guī)范條件、安全編碼條件、性能條件和質(zhì)量條件中的至少一項。
16、可選的,審核條件包括合規(guī)性審核、安全性審核、性能審核和質(zhì)量審核;處理單元具體用于:審核agent依次對待審核代碼進行合規(guī)性審核、安全性審核、性能審核和質(zhì)量審核,若審核不通過,則生成審核結(jié)果并發(fā)送至代碼修改agent;代碼修改agent根據(jù)審核結(jié)果,對待審核代碼進行修改,得到再處理代碼并發(fā)送至測試agent;測試agent對再處理代碼中的重點組件進行功能性測試,直至測試通過,則將再處理代碼發(fā)送至審核agent;審核agent根據(jù)審核條件,對再處理代碼進行審核,直至審核通過,則將再處理代碼確定為目標代碼。
17、第四方面,本技術實施例還提供一種計算設備,包括:存儲器,用于存儲程序;處理器,用于調(diào)用所述存儲器中存儲的程序,按照獲得的程序執(zhí)行如第一方面的一種生成代碼的方法。
18、第五方面,本技術實施例還提供一種計算機可讀非易失性存儲介質(zhì),包括計算機可讀程序,當計算機讀取并執(zhí)行所述計算機可讀程序時,使得計算機執(zhí)行如第一方面的一種生成代碼的方法。
19、第六方面,本技術實施例提供了一種計算機程序產(chǎn)品,計算機程序產(chǎn)品包括存儲在計算機可讀存儲介質(zhì)上的計算機程序,計算機程序包括程序指令,當程序指令被計算機設備執(zhí)行時,使計算機設備執(zhí)行上述第一方面一種生成代碼的方法的步驟。