Day 11 整理了 Conversation 和 Message,讓 VoCare 可以把每一次聊天完整保存下來。
但「有聊天紀錄」和「AI 真的記得長者」其實是兩件不同的事情。
如果只是把所有 Message 全部存進資料庫,資料只會越來越多。
真正需要做的是:
從聊天內容裡,找出值得長期保存的資訊。
這個步驟就是 Memory Extraction。
Memory Extraction 可以理解成:
從原始聊天中,自動萃取具有長期價值的資訊。
例如長者說:
「我以前在台南工作,那時候很常跟同事一起去釣魚。」
這句話裡其實可能包含好幾筆可以保存的資訊:
系統不需要把整句話原封不動當成 Memory。
而是先把內容整理成比較有結構的形式。
也就是:
Message → 資訊萃取 → Memory
Memory Extraction 最重要的問題其實不是:
「怎麼存?」
而是:
「什麼值得存?」
例如:
「今天很熱。」
這種資訊可能只和當下有關,不一定需要永久保存。
但是:
「我以前是老師。」
就比較有長期價值。
因為這個資訊未來還可以拿來延續聊天。
所以目前 VoCare 比較適合保留的 Memory,可以先分成:
這些內容比較能幫助 AI 在未來的對話裡真正「認識」長者。
如果 Memory 只是保存一段文字,之後搜尋和更新還是會很麻煩。
所以比較好的方式,是讓每一筆 Memory 至少包含:
例如:
Type:Interest
Content:喜歡釣魚
Source:Message 128
這樣未來如果 AI 想找「興趣」相關記憶,就不需要重新掃描全部聊天內容。
Memory Extraction 還有一個很實際的問題:
同一件事情可能被講很多次。
例如長者今天說:
「我以前很喜歡釣魚。」
一星期後又說:
「以前休假的時候我最常去釣魚。」
如果每一次都新增一筆 Memory,最後可能會出現很多內容相近的資料。
所以系統還需要判斷:
這是一筆新的 Memory,還是在更新原本的 Memory?
如果內容相同,就不需要一直新增。
如果內容比以前更完整,則可以更新原本資料。
例如原本只有:
喜歡釣魚
後來知道:
以前常和同事一起去釣魚
那就可以讓原本的記憶變得更完整。
目前這一段可以先整理成:
聊天結束
→ 取得新的 Message
→ 判斷是否包含長期資訊
→ 萃取 Memory
→ 檢查是否重複
→ 新增或更新 Memory
這樣每一次聊天結束後,VoCare 都可以慢慢累積對長者的了解。