記憶(Memory)
記憶能將對話中的重要資訊萃取、分類並儲存於 Markdown 檔案,同時建立向量資料庫以便語意檢索。這讓 AI 能夠長期記住使用者的資訊,並在需要時快速查詢相關內容。
流程
1. 萃取重要資訊
將使用者與 AI 的對話內容,透過語言模型萃取出關鍵資訊。
2. 分類記憶
利用語言模型判斷該資訊屬於哪個主題,並以主題名稱作為 Markdown 檔案名稱。
3. 儲存記憶
將資訊以 Markdown 格式儲存於指定目錄,並同步更新向量資料庫。
4. 記憶檢索
可透過語意查詢,從向量資料庫中搜尋最相關的記憶片段。
範例
1. 建立 MemoryManager 並新增記憶
建立儲存長期記憶的文件資料夾(test_memory),並將資訊加進記憶中,同時寫入檔案與加入向量資料庫。
1 | import akasha |
2. 查詢記憶並用於問答
透過向量搜尋找出相關的記憶,並作為歷史紀錄,讓模型進行回答。
1 | prompt = "我的名字是什麼?" |
主要方法說明
add_memory(user_prompt, ai_response, language="ch")
- 萃取對話重點,分類並儲存於 Markdown 檔案,同步更新向量資料庫。
search_memory(query, top_k)
- 以語意查詢方式,從記憶庫中找出最相關的記憶片段。
- top_k為最多搜尋的文件段落數量
show_memory(num=100)
- 顯示前 num 筆記憶內容。
記憶檔案結構
每則記憶會包含:
- 建立時間
- 記憶內容
- 原始對話
並以主題分類存放於 Markdown 檔案中。
備註
- 記憶檔案與向量資料庫需保持同步,建議定期檢查。
- 若有大量記憶,建議調整 chunk_size 以優化效能。