全國電子 AI 助理 (Gemini VS Code) 功能介紹
elifemall-ai-assistant 是一款深度整合 VS Code 編輯器與 Google Gemini AI 模型的開發輔助工具。它不僅提供強大的聊天功能,還與您的工作區、知識庫和開發流程緊密結合,旨在打造比市面上同類工具更貼合企業需求的 AI 協作體驗。
以下是目前版本包含的核心功能:
1. 核心 AI 聊天介面
側邊欄的 Webview 是所有 AI 互動的核心入口。
多模型支援:
- 在擴充功能啟動時,會自動抓取您 GCP 專案中所有可用的 Gemini 模型 (例如
gemini-1.5-pro、gemini-1.5-flash 等)。
- 下拉選單會清晰顯示模型的輸入 Token 上限 (例如
1.0M 或 8K),讓您能根據任務需求選擇最適當的模型。
對話紀錄管理:
- 所有對話都會自動儲存。您可以透過「對話紀錄」面板 (☰) 隨時載入、切換或刪除舊的對話。
- 新對話會自動以使用者的第一句話命名,方便辨識。
多模態附件:
- 點擊
+ 按鈕可附加檔案。
- 文字檔: 支援附加
.txt, .md, .php 等文字檔案,AI 會將其內容納入上下文。
- 圖片: 支援附加
.png, .jpg 等圖片,AI 可進行圖片辨識與多模態問答。
2. 智慧知識庫 (RAG) 系統
本工具的核心優勢在於其強大的檢索增強生成 (RAG) 系統,能讓 AI 根據您的企業內部文件回答問題。
3. 深度編輯器整合
AI 功能已完全整合到您的日常編輯流程中。
4. 智慧提及 (@) 與任務系統
輸入框的 @ 符號提供了強大的上下文與任務觸發功能:
@ 檔案 (本地上下文):
- 輸入
@ 會自動列出您 VS Code 中目前開啟的檔案。
- 選擇檔案 (例如
@utils.ts) 會將該檔案的完整內容加入到當次聊天的上下文中。
@ 知識庫 (遠端知識庫插入):
- 需啟用「啟用 Metadata 提及」開關。
- 輸入
@ 會一併搜尋 Metadata 知識庫 (顯示為 📦 [檔名])。
- 在編輯器中使用
@ 選擇知識庫項目,會觸發 insertMentionedMetadataContent 指令,將該知識庫片段的完整內容 (非摘要) 抓取回來,並直接貼上到您的程式碼中。
@ 任務 (進階 AI 生成):
- 輸入
@ 還會列出基於 Drive 來源和本地檔案的「生成任務」。
- 當您選擇一項任務 (例如
[任務: 編輯 test1.php]) 並輸入提示 (例如 "新增一個取消訂單的 API"),系統會觸發高階 AI 流程 (handleGenerationChat):
文件生成 (SA/SD):
- 觸發方式:
@SA from: [Drive 來源] 或 @SD from: [Drive 來源]。
- 流程: AI 會讀取您指定的 Drive 來源 (例如 SA 需求文件)、自動分析任務類型 (e.g.,
InternalAPI)、讀取對應的 SA/SD 範本文件、執行 RAG 查詢相關規範,最後使用 Pro 模型生成一份完整的文件 (顯示於新分頁)。
程式碼生成 (From Scratch):
- 觸發方式:
@Code from: [Drive 來源]。
- 流程: 類似文件生成,但 AI 會回傳使用
<!@#檔名.php ... !@#> 分隔符的程式碼。系統會解析這些區塊,並在新分頁中開啟對應的 PHP 檔案。
本機檔案修改 (AI 編輯):
- 觸發方式:
@✏️ 編輯: [本地開啟的檔案]。
- 流程: 這是最強大的功能之一。AI 會讀取您本地的檔案內容、根據您的提示 (e.g., "新增功能") 執行 RAG 查詢相關規範。
- 防呆機制: AI 會檢查您是否忘了提供業務邏輯 (例如只給了規範,但忘了 @ SA 文件),如果遺漏會主動提醒您。
- 執行: AI (Pro 模型) 會回傳一份修改後的完整檔案,系統會將其直接應用到您正在編輯的 VS Code 檔案中。
5. (管理員) AI 知識庫解析
此功能 (位於「資料來源管理」中的「AI 資料解析」按鈕) 是驅動 Metadata RAG 和 @知識庫 提及的核心引擎。
差異更新 (Delta Update):
- 系統會掃描「來源資料夾」中的所有
.md 文件,並將其依 ## H2 標題切割成數百個「文件片段」(Chunks)。
- 系統會計算每個片段的 SHA-256 雜湊值 (Hash)。
- 接著,系統會讀取「目標資料夾」中現有的
generated_metadata.jsonl,比對新舊雜湊值。
- AI 只會處理「新增的」或「雜湊值已變更的」片段,未變更的片段會被直接保留。
AI 解析流程:
- 對於每個「新/變更」的片段:
- 將該片段的完整內容上傳到「目標資料夾」 (作為一個獨立的
.md 檔)。
- 呼叫 AI (Pro 模型) 分析該片段,要求 AI 提取
title (標題)、summary (摘要)、keywords (關鍵字) 和 category (分類)。
- 最後,系統會將所有「保留的」和「新生成的」Metadata 重新組合成一份最新的
generated_metadata.jsonl 並覆蓋舊檔。
環境安裝(測試使用-正式環境不需操作)
請先到vscode-ai專案資料夾下
winget install OpenJS.NodeJS.LTS (安裝完成後須重啟vscode)
node -v (測試有無node功能)
使用npm 請用PowerShell 系統管理員模式 (或是嘗試針對自己放寬限制 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned)
npm -v (測試有無npm功能)
npm ci
npm install --save-dev @types/mime-types (安裝mime-types)
最後 gcp project id (google clound 專案id)使用 ai-elifemall-01
| |