【項目實訓#09】智能代碼文件助手模式前后端設計與實現

【項目實訓#09】智能代碼文件助手模式前后端設計與實現

文章目錄

  • 【項目實訓#09】智能代碼文件助手模式前后端設計與實現
    • 一、背景簡介
    • 二、技術方案與架構設計
      • 2.1 整體架構
      • 2.2 前端技術選型
      • 2.3 后端技術選型
    • 三、前端代碼替換服務實現
      • 3.1 代碼替換服務設計
      • 3.2 處理生成的代碼
      • 3.3 查找匹配行
      • 3.4 應用代碼變更
      • 3.5 處理文件變更
    • 四、前端代碼服務實現
      • 4.1 代碼服務設計
      • 4.2 接口定義
      • 4.3 代碼助手請求實現
    • 五、后端代碼助手API實現
      • 5.1 代碼助手API設計
      • 5.2 提示詞設計
      • 5.3 獲取代碼助手提示詞
      • 5.4 代碼助手API實現
    • 六、前端UI組件實現
      • 6.1 輸出面板組件設計
      • 6.2 文件選擇區實現
      • 6.3 文件修改建議展示
      • 6.4 應用所有修改功能
    • 七、實際應用效果
      • 7.1 使用場景示例
      • 7.2 實際案例分析
    • 八、總結與展望

一、背景簡介

在HarmonySmartCoding項目中,為了提高開發者的編碼效率,我負責設計和實現了一個"智能代碼文件助手"功能。該功能不同于傳統的代碼補全或生成,它能夠理解整個項目的文件結構和代碼上下文,并提供針對性的代碼修改建議,包括修改現有文件、創建新文件等操作。本文將詳細介紹智能代碼文件助手的設計思路、技術方案和實現細節。

二、技術方案與架構設計

2.1 整體架構

智能代碼文件助手采用前后端分離的架構設計,主要包括以下組件:

  1. 前端代碼替換服務:負責解析AI生成的代碼修改建議,并應用到實際文件中
  2. 前端代碼服務:負責與后端API通信,發送用戶需求和上下文文件
  3. 前端UI組件:包括輸入區、文件選擇區、結果展示區等
  4. 后端代碼助手API:接收用戶需求和上下文文件,調用大語言模型生成修改建議

這種架構設計使得系統具有良好的可擴展性和可維護性,能夠適應不同的代碼修改場景和需求。系統各組件之間通過明確定義的接口進行交互,確保了模塊間的低耦合性,便于后續的維護和擴展。

2.2 前端技術選型

前端智能代碼文件助手的技術選型如下:

  1. Vue.js:用于構建響應式的用戶界面
  2. TypeScript:提供類型安全和更好的開發體驗
  3. Axios:用于處理前后端通信
  4. 正則表達式:用于解析代碼修改建議中的文件路徑和內容

選擇Vue.js作為前端框架是考慮到其組件化開發方式和響應式數據綁定特性,特別適合構建復雜的交互界面。TypeScript的引入則大大提高了代碼的可維護性和可靠性,通過靜態類型檢查避免了許多潛在的運行時錯誤。

2.3 后端技術選型

后端代碼助手API的技術選型如下:

  1. Flask:用于構建RESTful API接口
  2. DeepSeek API:用于調用大語言模型生成代碼修改建議
  3. 正則表達式:用于處理和清理模型返回的結果

選擇輕量級的Flask框架是為了快速開發和部署API服務,它提供了足夠的靈活性來滿足我們的需求。而DeepSeek API則是我們選擇的大語言模型服務,它能夠理解自然語言描述的需求,并生成相應的代碼修改建議。

三、前端代碼替換服務實現

3.1 代碼替換服務設計

代碼替換服務(codeReplaceService.ts)是智能代碼文件助手的核心組件,負責解析AI生成的代碼修改建議,并應用到實際文件中。主要功能包括:

  1. 處理生成的代碼:移除注釋標記,提取有效代碼
  2. 查找匹配行:在源代碼中查找與修改建議匹配的位置
  3. 應用代碼變更:將修改建議應用到源代碼中
  4. 處理文件變更:創建、修改或刪除文件

代碼替換服務的難點在于準確定位源代碼中需要修改的位置,并正確應用修改建議。為了解決這個問題,我設計了一套基于上下文匹配的算法,能夠準確識別代碼中需要修改的部分,并保留原有代碼的格式和風格。

3.2 處理生成的代碼

AI生成的代碼通常包含"// … existing code …"這樣的注釋標記,用于指示保留原有代碼的位置。因此,我們需要解析這些標記,提取出實際需要修改的代碼部分:

// 處理生成的代碼 - 移除注釋標記
export const processGeneratedCode = (code: string): string => {// 移除"// ... existing code ..."注釋行return code.split('\n').filter(line => !line.trim().startsWith('// ... existing code ...')).join('\n');
};

這個函數的作用是移除AI生成代碼中的"// … existing code …"注釋行,只保留實際需要修改或新增的代碼。這樣處理后的代碼才能正確地應用到源文件中。

3.3 查找匹配行

為了準確定位需要修改的代碼位置,我們需要在源代碼中查找與修改建議匹配的位置。這里采用了一種忽略空格的匹配算法,能夠在保留原始格式的同時找到匹配的代碼行:

// 代碼匹配算法的簡化示例
export const findMatchingLines = (sourceLines: string[], searchLines: string[]): number[] => {// 代碼實現省略...// 核心原理是在源代碼中查找與搜索行匹配的位置// 返回匹配位置的行號數組
};

匹配算法的核心思想是將源代碼和搜索代碼按行分割,然后逐行比較(忽略空格),找出所有可能的匹配位置。這種方法能夠處理代碼格式不完全一致的情況,提高匹配的準確性。

3.4 應用代碼變更

應用代碼變更是最復雜的部分,需要處理多種情況,如文件開頭修改、文件結尾修改、中間部分修改等。實現思路如下:

  1. 將AI生成的代碼按"// … existing code …"標記分割成多個代碼段
  2. 處理特殊情況(文件開頭、文件結尾等)
  3. 對每對相鄰代碼段,查找它們在源代碼中的位置,并應用修改

這里的關鍵是準確理解AI的修改意圖,特別是對于大型文件,如何正確定位和應用修改非常重要。我們的算法通過上下文匹配和特殊情況處理,能夠處理絕大多數常見的代碼修改場景。

3.5 處理文件變更

除了修改現有文件,智能代碼文件助手還支持創建新文件、修改現有文件等操作:

// 文件變更處理的核心邏輯(簡化版)
export const handleFileChange = async (change, fileSystemService, callbacks) => {// 檢查文件是否存在const fileExists = await fileSystemService.fileExists(change.filePath);if (fileExists) {// 修改現有文件const currentContent = await callbacks.openFile(change.filePath);const newContent = applyCodeChanges(currentContent, change.newCode);await callbacks.saveFile(change.filePath, newContent);} else {// 創建新文件const directoryPath = extractDirectoryPath(change.filePath);const fileName = extractFileName(change.filePath);await callbacks.createFile(directoryPath, fileName, change.newCode);}// 刷新文件樹并打開修改后的文件
};

這個函數處理了文件變更的全流程,包括檢查文件存在性、讀取當前內容、應用代碼變更、保存修改后的內容、刷新文件樹等。對于新文件,則直接創建并保存內容。通過這種方式,我們實現了對文件系統的完整支持。

四、前端代碼服務實現

4.1 代碼服務設計

代碼服務(codeService.ts)是前端與后端API通信的橋梁,負責發送用戶需求和上下文文件,并接收和處理后端返回的代碼修改建議。

代碼服務的設計理念是將通信細節封裝在服務層,為上層UI組件提供簡潔的接口。這樣,UI組件只需關注用戶交互和展示邏輯,不需要了解API通信的具體實現。同時,通過定義清晰的接口,使得代碼服務可以方便地替換或升級通信方式,如從HTTP改為WebSocket,而不影響上層邏輯。

4.2 接口定義

代碼服務定義了與后端API通信的數據結構,包括請求和響應的格式:

interface CodeAssistantRequest {prompt: string;language: string;apiVersion: string;selectedFiles?: {name: string;path: string;content: string;}[];
}interface CodeGenerationResponse {code: string;suggestions?: string[];
}

這些接口定義了代碼助手請求的數據結構,包括用戶提示、編程語言、API版本、選中的文件列表等信息。響應則包含生成的代碼和建議列表。通過這種明確的接口定義,前后端可以有效協作,減少溝通成本。

4.3 代碼助手請求實現

代碼助手請求的核心是將用戶需求和上下文文件發送給后端API,并處理返回的響應:

// 代碼助手請求實現(簡化版)
static async generateCodeAssistant(request: CodeAssistantRequest): Promise<CodeGenerationResponse> {try {// 發送請求到后端APIconst response = await axios.post(`${this.apiUrl}/code_assistant`, request);return {code: response.data.result || '',suggestions: response.data.suggestions};} catch (error) {// 處理請求失敗的情況,返回友好的錯誤消息// ...}
}

這個函數封裝了與后端API的通信邏輯,處理了請求成功和失敗的不同情況。在請求失敗時,我們還提供了友好的錯誤處理和備用方案,確保用戶體驗的連續性。

五、后端代碼助手API實現

5.1 代碼助手API設計

后端代碼助手API(app.py)是智能代碼文件助手的服務端實現,負責接收用戶需求和上下文文件,調用大語言模型生成代碼修改建議。

后端API的設計理念是"薄后端",即將復雜的處理邏輯留給前端或模型,后端主要負責請求轉發、提示詞構建和結果處理。這種設計使得后端代碼簡潔高效,便于部署和維護。

5.2 提示詞設計

提示詞設計是智能代碼文件助手的關鍵部分,它直接影響了AI生成代碼的質量和格式。我們設計了一套結構化的提示詞模板,引導大語言模型生成符合預期格式的代碼修改建議。

我們的提示詞設計遵循以下幾個關鍵原則:

  1. 明確角色定位:明確告訴模型它是一個"代碼助手",幫助模型理解其職責范圍
  2. 結構化輸出格式:詳細描述期望的輸出格式,包括修改思路說明和代碼塊格式
  3. 上下文保留:要求模型在修改代碼時保留足夠的上下文(前后至少10行代碼),以便準確定位修改位置
  4. 邊界處理說明:明確指出文件開頭和結尾的特殊處理方式,避免格式錯誤
  5. 示例說明:提供具體示例,幫助模型理解預期的輸出格式

通過多次迭代優化提示詞設計,我們顯著提高了AI生成代碼的質量和可用性,減少了格式錯誤和解析失敗的情況。

5.3 獲取代碼助手提示詞

提示詞構建是后端API的關鍵部分,它決定了生成結果的質量和相關性:

# 提示詞構建函數(簡化版)
def get_code_assistant_prompt(user_input, language='', api_version='', selected_files=None):# 讀取提示詞模板prompt_template = read_prompt_template()# 添加選中的文件內容selected_files_str = format_selected_files(selected_files)# 組合最終提示詞final_prompt = f"{prompt_template}\n\n用戶需求: {user_input} {selected_files_str}"return final_prompt

提示詞構建的核心是將用戶需求和上下文文件組合成一個結構化的提示,這樣大語言模型才能生成符合用戶需求的代碼修改建議。通過使用提示詞模板,我們可以引導模型生成滿足特定格式要求的響應,如代碼段、文件路徑等。

5.4 代碼助手API實現

代碼助手API的實現是后端服務的核心,它處理前端請求,調用大語言模型,并處理和返回結果:

# 代碼助手API實現(簡化版)
@app.route('/api/code_assistant', methods=['POST'])
def code_assistant():# 獲取請求數據data = request.get_json()prompt = data.get('prompt', '')# ...try:# 構建提示詞assistant_prompt = get_code_assistant_prompt(prompt, language, api_version, selected_files)# 調用DeepSeek客戶端messages = [{"role": "user", "content": assistant_prompt}]result = ds_client.chat_completion(messages, temperature=0.7)# 移除思考標簽result = remove_think_tags(result)# 保存請求歷史db = get_db()db.save_snippet(f"智能助手: {prompt[:30]}", result, "assistant")return jsonify({'result': result})except Exception as e:# 處理異常情況# ...

這個API實現了請求處理、提示詞構建、模型調用和結果處理的完整流程。特別注意的是,我們還實現了"移除思考標簽"的功能,這是因為DeepSeek等大模型可能會在輸出中包含思考過程的標簽,我們需要將這些內容過濾掉,只保留最終的代碼修改建議。

六、前端UI組件實現

6.1 輸出面板組件設計

輸出面板組件(OutputPanel.vue)是智能代碼文件助手的用戶界面,設計理念是簡潔易用、功能完整。主要功能區域包括:

  1. 用戶輸入區:采用可擴展的文本輸入框,支持多行輸入
  2. 文件選擇區:直觀的文件選擇交互,支持添加和刪除文件
  3. 結果展示區:使用語法高亮顯示代碼修改建議
  4. 操作區:提供應用、忽略等操作按鈕

UI設計采用了卡片式布局,各功能區域清晰分隔,使用戶能夠方便地瀏覽和操作。同時,我們也注重視覺反饋,如按鈕狀態變化、操作成功提示等,提升用戶體驗。

6.2 文件選擇區實現

文件選擇區是用戶添加上下文文件的界面,它允許用戶選擇與需求相關的文件,幫助AI更好地理解代碼上下文:

<!-- 文件選擇區域代碼(簡化版) -->
<div class="file-selector-area"><div class="file-selector-header"><!-- 標題和添加按鈕 --></div><div class="selected-files-list"><!-- 已選擇文件列表 --></div>
</div>

文件選擇區采用了簡潔直觀的設計,包括文件列表和操作按鈕。用戶可以方便地添加和刪除文件,查看已選擇的文件列表。這種設計使用戶能夠快速提供上下文信息,提高AI生成結果的質量。

6.3 文件修改建議展示

文件修改建議展示區是智能代碼文件助手的核心輸出部分,它以直觀的方式展示AI生成的代碼修改建議:

<!-- 文件修改建議展示區(簡化版) -->
<div class="file-changes-container"><div class="file-changes-list"><!-- 遍歷所有文件修改建議 --><div v-for="change in parsedFileChanges" class="file-change-item"><!-- 文件路徑和操作按鈕 --><!-- 代碼預覽(使用語法高亮) --></div></div>
</div>

修改建議展示區的設計重點是清晰展示每個文件的修改內容,并提供直觀的操作方式。我們使用語法高亮來增強代碼的可讀性,并提供應用和忽略按鈕讓用戶快速決策。這種設計使用戶能夠輕松理解和操作AI生成的修改建議。

6.4 應用所有修改功能

為了提高操作效率,我們還提供了"應用所有更改"功能,允許用戶一鍵應用所有修改建議:

<!-- 應用所有更改按鈕(簡化版) -->
<div class="global-file-changes-footer"><button class="apply-all-btn" @click="applyAllChanges"><i class="fas fa-check-double"></i> 應用所有更改</button>
</div>

這個功能特別適合于修改較多且用戶已經確認的場景,可以大大提高操作效率。當然,為了防止誤操作,我們在實現時也添加了相應的確認機制。

七、實際應用效果

7.1 使用場景示例

智能代碼文件助手適用于以下場景:

  1. 添加新功能:根據用戶需求描述,生成新功能的代碼實現
  2. 修復現有問題:根據錯誤描述和相關文件,生成修復方案
  3. 重構代碼:根據重構需求,生成優化后的代碼結構
  4. 創建新組件:根據組件需求,生成完整的組件代碼

在這些場景中,智能代碼文件助手能夠顯著提升開發效率,減少手動編碼的工作量。尤其對于一些重復性高的任務,如樣板代碼生成、常規功能實現等,效果更為明顯。

7.2 實際案例分析

以"添加按鈕點擊事件"為例,智能代碼文件助手的工作流程如下:

  1. 用戶輸入需求:“添加按鈕點擊事件,并在點擊時顯示一個彈窗”
  2. 選擇相關文件:選擇包含按鈕組件的文件
  3. 生成修改建議:AI分析需求和文件內容,生成修改建議
  4. 預覽修改:用戶查看修改建議的預覽效果
  5. 應用修改:用戶確認并應用修改到實際文件中

在這個例子中,AI不僅能夠在正確的位置添加點擊事件處理函數,還能夠根據項目中已有的彈窗組件或庫,生成符合項目風格的彈窗代碼。這種上下文感知的能力,使得生成的代碼更加符合項目的整體風格和架構。

八、總結與展望

通過本次項目實踐,我成功實現了一個完整的智能代碼文件助手功能,包括前端代碼替換服務、代碼服務和后端代碼助手API。該功能能夠幫助開發者更高效地實現代碼修改和功能開發,提高開發效率和代碼質量。

在技術上,我深入學習了代碼解析、代碼替換、大語言模型應用等技術,并將這些技術應用到實際項目中。特別是在代碼上下文理解和智能修改建議生成方面,探索了AI輔助編程的新方向,為智能開發工具的未來發展提供了有益的參考。

未來,我計劃在以下方面進一步完善智能代碼文件助手:

  1. 多文件關聯分析:增強對多文件之間依賴關系的理解和處理能力
  2. 代碼質量評估:在生成代碼修改建議時,考慮代碼質量和最佳實踐
  3. 增量學習能力:根據用戶的接受或拒絕反饋,不斷優化代碼生成模型
  4. 更精細的代碼替換:支持更復雜的代碼替換場景,如重構、優化等

通過這些改進,智能代碼文件助手將成為HarmonyOS開發者更加強大和智能的編程助手,進一步提升開發體驗和效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87014.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87014.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87014.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA-springboot 異常處理

SpringBoot從入門到精通-第10章 異常處理 一、異常簡介 傳統的Java程序都是由try-catch語句捕捉異常&#xff0c;而Spring Boot項目采用了全局異常類的概念------所有方法均將異常拋出&#xff0c;并且專門安排一個類統一攔截并處理這些異常。這樣做的好處是可以把異常處理的…

VIC-3D應用指南系列之:DIC數字圖像相關技術與熱成像(VIC-3D IR System助力熱載荷測試)

本篇文章詳細講述了利用VIC-3D 10將數字圖像相關DIC數據與紅外相機熱成像的溫度數據相結合的操作流程。核心步驟包括&#xff1a; 相機選型與系統搭建 測試環境配置 VIC-Snap參數設置 雙系統標定&#xff08;DIC與紅外&#xff09; 外部參數計算 測試圖像采集 紅外…

adoc(asciidoc)轉為markdown的方法,把.adoc文件轉換為markdown格式

要將.adoc文件轉換為markdown格式&#xff0c;可以按照以下步驟操作&#xff1a; 安裝必要工具&#xff1a; sudo apt install pandoc asciidoc轉換流程&#xff1a; 先將asciidoc轉換為docbook格式&#xff1a; asciidoc -b docbook foo.adoc然后將docbook轉換為markdown&…

2022mpsPTE崗位筆試題

2022年9月完成了PTE崗位的筆試&#xff0c;并通過了。淺淺的還有一點印象&#xff0c;之前有朋友也想來&#xff0c;就放在這里&#xff0c;供需要的朋友看。 前兩個題是關于C語言的。 語言不限&#xff0c;C也可。 一個是輸出2到100偶數之和&#xff0c;主要就是調用for循環。…

使用Cursor + Devbox + Uniapp 一站式AI編程開發移動端(App、H5、小程序)

文章目錄 前言&#x1f4d6;一、工具介紹&#x1f6e0;?1. Cursor&#xff1a;AI驅動的智能代碼編輯器2. Devbox&#xff1a;可復現的開發環境管理3. Uniapp&#xff1a;跨平臺應用開發框架 二、環境配置與集成&#x1f52e;1. 安裝與配置Devbox2. 配置Cursor連接Devbox環境3.…

[智能客服project] AI提示詞配置 | 主協調器 | 閑魚協議工具

第五章&#xff1a;AI提示詞配置 歡迎回來&#xff01; 在第四章&#xff1a;意圖路由器中&#xff0c;我們了解了機器人如何通過IntentRouter確定由哪個專家代理&#xff08;如PriceAgent或TechAgent&#xff09;處理用戶消息。 但代理被選定后&#xff0c;如何知道該說什么…

CMake 構建系統概述

關鍵要點 研究表明&#xff0c;CMake 是一種強大的跨平臺構建系統&#xff0c;廣泛用于 C 項目。證據傾向于認為&#xff0c;CMake 通過生成本地構建文件&#xff08;如 Makefile、Visual Studio 項目&#xff09;簡化軟件構建。它似乎可能支持多種平臺&#xff0c;包括 Windo…

如何順利將電話號碼轉移到新iPhone?

當您升級到新 iPhone 時&#xff0c;您需要做的第一件事就是轉移您的電話號碼。幸運的是&#xff0c;以目前的技術&#xff0c;很容易解決如何將電話號碼轉移到新iPhone上。此外&#xff0c;傳輸過程也得到了簡化。您可以輕松地將舊手機更換為新 iPhone&#xff0c;而不會丟失任…

java面試總結-20250609

DDD領域設計模型怎么理解&#xff1f; mysql和mongoDB分別適用于哪些業務場景&#xff1f; 查詢的場景&#xff0c;數量級的差異&#xff1f; mongodb為什么用B樹&#xff1f;用的什么數據引擎&#xff0c;部署方式使用什么模式&#xff0c;分片分了多少片&#xff0c;路由方…

使用GpuGeek訓練圖像分類器:從入門到精通

引言 在當今人工智能蓬勃發展的時代&#xff0c;圖像分類作為計算機視覺的基礎任務之一&#xff0c;已經廣泛應用于醫療診斷、自動駕駛、安防監控等諸多領域。然而&#xff0c;對于許多初學者和中小型企業來說&#xff0c;構建一個高效的圖像分類系統仍然面臨諸多挑戰&#xf…

Qt Widget類解析與代碼注釋

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解釋這串代碼&#xff0c;寫上注釋 當然可以&#xff01;這段代碼是 Qt …

2025年滲透測試面試題總結-字節跳動[實習]安全研發員(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 字節跳動[實習]安全研發員 1. 攻防演練中得意經歷 2. 安全領域擅長方向 3. 代碼審計語言偏向 4. CSRF修復…

Springboot短視頻推薦系統b9wc1(程序+源碼+數據庫+調試部署+開發環境)帶論文文檔1萬字以上,文末可獲取,系統界面在最后面。

系統程序文件列表 項目功能&#xff1a;用戶,視頻分類,視頻信息 開題報告內容&#xff1a; 基于Spring Boot的短視頻推薦系統開題報告 一、研究背景與意義 隨著移動互聯網的普及和短視頻行業的爆發式增長&#xff0c;用戶日均觀看短視頻時長已突破2小時&#xff0c;但海量內…

使用聯邦學習進行CIFAR-10分類任務

在深度學習領域,圖像分類任務是一個經典的應用,而CIFAR-10數據集則是圖像分類研究中的重要基準數據集之一。該數據集包含10類不同的圖像,每類有6,000個32x32像素的彩色圖像,共計60,000個圖像。在傳統的集中式學習中,所有數據都被集中到一個服務器上進行訓練。然而,隨著數…

【Linux網絡編程】基于udp套接字實現的網絡通信

目錄 一、實現目標&#xff1a; 二、實驗步驟&#xff1a; 1、服務端代碼解析&#xff1a; Init()&#xff1a; Run()&#xff1a; 2、客戶端代碼&#xff1a; 主函數邏輯&#xff1a; send_message發送數據&#xff1a; recv_message接收數據&#xff1a; 三、實驗結…

2025年想沖網安方向,該考華為安全HCIE還是CISSP?

打算2025年往網絡安全方向轉&#xff0c;現在考證是不是來得及&#xff1f;考啥證&#xff1f; 說實話&#xff0c;網絡安全這幾年熱得發燙&#xff0c;但熱歸熱&#xff0c;入門門檻也不低&#xff0c;想進這個賽道&#xff0c;技術、項目經驗、證書&#xff0c;缺一不可。 …

【系統架構設計師-2025上半年真題】綜合知識-參考答案及部分詳解(回憶版)

更多內容請見: 備考系統架構設計師-專欄介紹和目錄 文章目錄 【第1題】【第2題】【第3題】【第4題】【第5題】【第6題】【第7題】【第8題】【第9題】【第10題】【第11題】【第12題】【第13題】【第14題】【第15題】【第16題】【第17題】【第18題】【第19題】【第20~21題】【第…

「Java EE開發指南」如何用MyEclipse創建一個WEB項目?(一)

在本文中&#xff0c;您可以找到有關WEB項目的信息。將了解&#xff1a; Web項目結構和參數Web開發生產力工具JSP代碼完成和驗證 這些特性在MyEclipse中可用。 MyEclipse v2025.1離線版下載 一、Web項目結構 用最簡單的術語來說&#xff0c;MyEclipse Web項目是一個Eclips…

Elasticsearch:使用 ES|QL 進行地理空間距離搜索

作者&#xff1a;來自 Elastic Craig Taverner 在 Elasticsearch 查詢語言&#xff08;ES|QL&#xff09;中探索地理空間距離搜索&#xff0c;這是 Elasticsearch 地理空間搜索中最受歡迎和最有用的功能之一&#xff0c;也是 ES|QL 中的重要特性。 想獲得 Elastic 認證嗎&#…

列舉開源的模型和推理框架

當然可以&#xff01;下面是一個系統性的列表&#xff0c;按 開源大模型&#xff08;LLM&#xff09; 和 推理框架 兩大類列出&#xff0c;并配上簡要說明。 &#x1f9e0; 一、開源大語言模型&#xff08;LLMs&#xff09; 名稱發布者語言能力模型大小特點LLaMA 2 / 3Meta英文…