前一天開始進入 Codex 的實作階段後,第一個需要建立的核心功能,就是 Chat API。
在 VoCare 裡,Chat API 可以理解成前端、後端與 AI 之間的溝通橋樑。
長者在前端輸入文字或語音後,這些內容不會直接送到 AI,而是先透過 API 傳送到後端。後端收到資料後,再進行後續處理,最後將 AI 產生的回覆重新傳回前端。
整體流程可以整理成:
使用者輸入訊息
→ Chat API 接收資料
→ 後端處理
→ 呼叫 AI
→ 儲存對話紀錄
→ 回傳 AI 回覆
→ 前端顯示結果
這也是 VoCare 後續所有 AI 對話功能的基礎。
目前第一階段的 Chat API 主要負責幾件事情:
表面上看起來只是「傳送訊息並取得回答」,但實際上這個 API 會成為後續許多功能的入口。
例如未來加入 Memory 之後,Chat API 在呼叫 AI 之前,需要先取得和目前對話相關的長期記憶。
加入 Context 之後,還需要取得長者近期的狀況。
因此完整流程會逐漸從:
訊息 → AI → 回覆
擴充成:
訊息
→ 取得 Memory
→ 取得 Context
→ AI 產生回覆
→ 儲存對話
→ 更新 Memory
→ 整理近期狀況
→ 回傳結果
所以在這個階段,Chat API 不需要一次加入所有功能。
比較適合的方式是先建立最基本的聊天流程,確認前端、後端、AI 與資料庫可以正常連接,再逐步加入其他模組。
在使用 Codex 開發這類功能時,另一個重要概念是:
需求必須定義清楚功能邊界。
例如如果只告訴 Codex:
「建立一個聊天功能。」
這個範圍其實非常模糊。
Codex 可能會自行決定資料結構、建立新的 Service,甚至加入目前還不需要的功能。
所以比較完整的需求應該包含:
也就是說,使用 Codex 開發時,不只是描述:
「我要什麼。」
還要明確告訴它:
「這次做到哪裡為止。」
這樣才能降低 AI 自行擴大修改範圍的情況。
一支 API 也不能只考慮正常情況。
例如 Chat API 還需要考慮:
因此後端除了處理正常聊天流程之外,也需要統一錯誤處理方式。
前端收到結果後,才能知道目前是:
正常取得 AI 回覆
還是:
系統發生錯誤。
這也是 API 設計中很重要的一部分。