本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將內容擷取至長期記憶體
使用 IngestData 直接提交內容以進行長期記憶體擷取,而不會將其保留為短期記憶體事件。
何時使用 IngestData
當您需要將內容分割為長期記憶體,但不需要將原始互動保留為可擷取的事件IngestData時,請使用 。例如:
-
您只需要擷取的記憶體記錄,而不是逐字互動。
-
您想要避免保留您永遠不會讀回之事件的短期儲存開銷。
-
您的應用程式已保留原始互動,因此您只需要從中擷取的長期記錄。
由於 IngestData 不會存放短期事件,因此無法使用 GetEvent、 ListEvents或 擷取提交的內容ListSessions,或使用分支重新組織。
注意
若要將原始互動保留為短期事件,請改用 CreateEvent。
IngestData 的運作方式
成功的請求會確認您的內容已被接受;產生的長期記憶體記錄會在處理內容後變成可用。
處理完成後,使用 RetrieveMemoryRecords、 ListMemoryRecords或 擷取產生的長期記憶體記錄GetMemoryRecord,與用於任何其他長期記憶體記錄的操作相同。
IngestData 支援兩種承載類型:
- 對話式
-
具有角色 (例如
USER或ASSISTANT) 和文字內容的對話訊息。 - JSON
-
JSON 格式的資料 - 例如行為事件、活動日誌或系統事件。
您可以選擇性地連接中繼資料,以充實擷取的記錄。如需詳細資訊,請參閱長期記憶體的結構化中繼資料。
擷取的記錄範圍為命名空間。如需詳細資訊,請參閱使用命名空間指定長期記憶體組織。
actorId 可識別實體 (例如最終使用者或代理程式) 和工作階段中的sessionId群組內容。在擷取期間sessionId,共用相同 actorId、 和 命名空間的內容會被視為相關內容。
注意
IngestData 除了具有自己的記憶體處理工作流程的自我管理策略之外, 會將內容輸出至記憶體設定的長期記憶體策略。
範例
下列範例會同時擷取對話和非對話內容。
import boto3 from datetime import datetime # Initialize the Boto3 client for data plane operations data_client = boto3.client('bedrock-agentcore', region_name='us-west-2') response = data_client.ingest_data( memoryId='mem-12345abcdef', actorId='customer-123', sessionId='session-456', contentTimestamp=datetime.now(), source={ 'inline': { 'payload': [ { 'conversational': { 'content': {'text': 'I prefer window seats on flights.'}, 'role': 'USER' } }, { 'conversational': { 'content': {'text': "Noted — I'll remember your window seat preference."}, 'role': 'ASSISTANT' } }, { 'json': { 'content': { 'customer_tier': 'gold', 'preferences': {'seat': 'window', 'meal': 'vegetarian'}, 'loyalty_points': 48200 } } } ] } } ) # IngestData is asynchronous; the response echoes the session the content was ingested into. print(f"Ingested content into session: {response['sessionId']}")
追蹤擷取進度
若要追蹤成功請求後發生的情況並偵測問題,請使用下列方法。
驗證擷取結果
擷取後,記憶體記錄通常會在幾秒鐘到幾分鐘內出現,具體取決於內容大小和策略組態。若要確認擷取已完成:
-
使用 ListMemoryRecords 或 RetrieveMemoryRecords 來檢查是否出現預期的長期記憶體記錄。
-
設定 Kinesis 串流,以在建立記憶體記錄時接收即時通知。如需設定指示,請參閱記憶體記錄串流。
處理擷取失敗
如果擷取失敗,AgentCore 會將失敗的任務移至記憶體資源的專用佇列。使用 ListMemoryExtractionJobs 來檢視失敗的任務,並在解決根本原因後StartMemoryExtractionJob重新驅動它們。如需失敗原因代碼、修復步驟,以及如何使用 FailedExtraction CloudWatch 指標設定主動監控,請參閱重新驅動失敗的擷取。
若要啟用應用程式日誌和追蹤,以深入了解處理生命週期,請參閱啟用 AgentCore 執行期、記憶體、閘道、內建工具和身分資源的可觀測性。