點擊查看更多
點擊關閉

訪客計數

--- 次訪問

快速統計

15
專案
1
更新
1
活躍專案
3
已完成

本日名言

"一個分裂的世界,四分五裂得沒人有機會拼湊得起,仍去嘗試的話有甚麼意義呢?"
— 賽蒙·羅傑斯
返回專案列表
進行中 2024年3月

U.E.P 個人虛擬桌面助理

事件驅動的智能助理系統,整合長期記憶、動態情感與個性化互動,採用模組化架構結合語音辨識、自然語言處理、LLM、語音合成與類似桌寵的行為模式與動畫,提供完整的多模態互動體驗。

uep-個人虛擬桌面助理
AI U.E.P Python Agent Multi-Module

專案簡介

U.E.P 是一個事件驅動的智能助理系統,旨在打造具備長期記憶、動態情感與個性化互動的 AI 夥伴。專案採用模組化架構設計,整合語音辨識、自然語言處理、大型語言模型、語音合成與視覺動畫等技術,提供完整的多模態互動體驗。

核心理念

  • 長期記憶能力:解決傳統 AI 助理記憶短暫、無法累積使用者互動歷史的問題
  • 靈活的工作流系統:透過 LLM 自動識別使用者意圖並執行對應的複雜任務流程
  • 模組化與可擴展性:採用事件驅動架構,支援模組獨立開發、測試與替換

我的職責

作為專案的核心開發者,我負責:

系統架構設計

  • 設計三層事件驅動架構(輸入層 → 處理層 → 輸出層)
  • 實現中央事件匯流排(Event Bus)協調 9 個功能模組
  • 建立三層會話管理系統(Global Session / Chat Session / Working Session)

核心功能實作

  • 記憶系統:基於 FAISS 的向量資料庫,支援身份隔離與長期記憶檢索
  • 工作流引擎:整合 MCP 協議,實現 21 種自動化工作流(文件生成、日程管理、知識檢索等)
  • 前後端整合:開發 Frontend Bridge 與三視窗工具(Live2D 動畫、字幕、對話氣泡)
  • 特殊狀態系統:實現動態情感系統(MISCHIEF 搗蛋模式、SLEEP 睡眠狀態等)

測試與文檔

  • 建立完整測試體系:476 個測試案例,覆蓋率達 85%
  • 撰寫系統設計文件(SDD)、專案執行計畫(PEP)與測試報告(TR-00 ~ TR-07)

核心功能

1. 事件驅動的模組化架構

  • 9 個功能模組:語音輸入(STT)、自然語言處理(NLP)、記憶管理(MEM)、語言模型(LLM)、系統控制(SYS)、語音合成(TTS)、使用者介面(UI)、動畫控制(ANI)、動作執行(MOV)
  • Event Bus 中樞:透過 20+ 種事件類型協調模組間通訊,實現鬆耦合設計

2. 身份隔離的長期記憶系統

  • 每個使用者擁有獨立的 FAISS 向量索引
  • 支援語意檢索、時間範圍過濾與記憶管理
  • MCP 工具化設計,讓 LLM 能主動查詢與創建記憶

3. LLM 驅動的工作流自動化

  • 21 種工作流:日程管理、筆記記錄、文件生成、知識檢索、提醒設定、電子郵件草稿等
  • NLP 意圖識別:自動分析使用者輸入並觸發對應工作流
  • MCP 協議整合:標準化 LLM 工具調用介面

4. 三層會話管理

  • Global Session (GS):系統層級設定與全域狀態
  • Chat Session (CS):單次對話的上下文與參與者資訊
  • Working Session (WS):工作流執行期間的臨時狀態

5. 動態情感與個性系統

  • Status Manager:追蹤使用者狀態(IDLE, LISTENING, THINKING, SPEAKING 等)
  • MISCHIEF 搗蛋模式:低機率觸發的趣味互動
  • SLEEP 睡眠狀態:可拖曳喚醒的動畫互動

6. 前後端完整整合

  • Frontend Bridge:統一管理前端通訊(Live2D 動畫、字幕顯示、對話氣泡)
  • 三視窗工具:主視窗(Live2D)、字幕視窗、對話視窗
  • 動畫事件系統:前端動畫完成後回報事件,確保流程同步

使用技術

AI / ML 技術

  • Whisper:OpenAI 語音辨識模型
  • Google Gemini:大型語言模型(支援 2M token 上下文快取)
  • FAISS:Facebook 向量相似度搜尋引擎
  • Edge-TTS:微軟語音合成服務

系統架構

  • Python 3.10:核心開發語言
  • PyQt6:系統循環與事件整合
  • Event Bus 模式:中央事件協調
  • MCP 協議:Model Context Protocol(LLM 工具調用標準)
  • YAML 配置管理:模組化設定檔案

開發工具

  • pytest:單元測試與整合測試
  • GitHub Actions:CI/CD 自動化
  • logging:分級日誌系統(debug/runtime/error)

專案狀態

當前版本:v0.9.4-stable

  • 核心模組穩定性:Event Bus, Sessions, Controller, Frontend Bridge 均已穩定

測試狀態

  • 總測試案例:476 個
  • 通過率:81.9%(390 通過 / 476 總數)
  • 測試覆蓋率:85% 行覆蓋,80% 分支覆蓋
  • 已知問題:28 個(P0=1, P1=6, P2=18, P3=3)

開發挑戰與收穫

1. 架構重構:從直接調用到事件驅動

挑戰:v1.0 採用直接函式調用,導致模組高度耦合,難以維護與擴展。

解決方案:完全重構為事件驅動架構,所有模組透過 Event Bus 通訊,實現鬆耦合設計。

收穫

  • 模組可獨立開發與測試
  • 新增功能無需修改現有程式碼
  • 系統穩定性大幅提升

2. MCP 協議整合

挑戰:如何讓 LLM 能夠主動調用系統功能(記憶查詢、工作流執行等)?

解決方案:整合 Model Context Protocol,將系統功能封裝為標準化工具,讓 LLM 可透過結構化呼叫執行操作。

收穫

  • 實現 LLM 主動查詢記憶
  • 支援複雜工作流自動化(如生成帶附件的電子郵件草稿)
  • 建立可擴展的工具生態系統

3. 身份隔離記憶系統

挑戰:如何在多使用者環境下確保記憶隔離與安全性?

解決方案:為每個使用者建立獨立的 FAISS 索引,透過 Memory Token 機制追蹤記憶流動。

收穫

  • 完全隔離的使用者記憶
  • 高效的語意檢索(FAISS 向量搜尋)
  • 可追溯的記憶來源(避免幻覺問題)

4. 效能優化

挑戰:系統冷啟動耗時過長(初始 120s),影響使用者體驗。

解決方案

  • 延遲載入非必要模組
  • Gemini 上下文快取(減少 token 處理時間)
  • 移除冗餘初始化流程

成果:冷啟動時間降至 47.6s(降低 60%)

5. 技術債務管理

挑戰:ConditionalStep 工作流步驟順序執行無等待機制,導致競爭條件。

當前狀態:已記錄於技術債務清單,計劃於 v0.10.0 重構工作流引擎。


未來規劃

短期目標

  • 修復 TTS 模組載入耗時問題(當前 20~24s)
  • 提升單元測試通過率至 90%
  • 完成工作流引擎的錯誤處理機制

中期目標

  • 重構工作流引擎(解決 ConditionalStep 架構債務)
  • 實現更多工作流類型(30+ 種)
  • 提升測試覆蓋率至 90%

長期目標

  • 支援多使用者並行會話
  • 雲端記憶同步功能
  • 完整的插件生態系統

專案亮點

技術創新

  • ✅ 事件驅動架構實現模組完全解耦
  • ✅ MCP 協議整合,LLM 可主動調用系統功能
  • ✅ 身份隔離的向量記憶系統

開發成就

  • ✅ 476 個測試案例,85% 覆蓋率
  • ✅ 21 種自動化工作流
  • ✅ 完整的前後端整合(Live2D 動畫、字幕、對話氣泡)

專案管理

  • ✅ 完整的文檔體系(SDD, PEP, TR 測試報告)
  • ✅ 迭代式開發(Phase 1 → Phase 2 → Phase 3)
  • ✅ CI/CD 自動化測試

長期價值

  • ✅ 可擴展的模組化設計,易於新增功能
  • ✅ 標準化介面(Event Bus, MCP),支援第三方整合
  • ✅ 完善的測試與監控體系,確保系統穩定性

程式語言:Python 3.10
程式碼規模:約 15,000+ 行(不含測試)
測試覆蓋率:85% 行覆蓋,80% 分支覆蓋
測試通過率:81.9%(390/476 案例)