기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
장기 메모리에 콘텐츠 수집
IngestData를 사용하면 단기 메모리 이벤트로 유지하지 않고 장기 메모리 추출을 위해 콘텐츠를 직접 제출할 수 있습니다.
IngestData를 사용해야 하는 경우
콘텐츠를 장기 메모리로 추출해야 하지만 원시 상호 작용을 검색 가능한 이벤트로 유지할 필요가 없는 IngestData 경우에 사용합니다. 예제:
-
축어적 상호 작용이 아닌 추출된 메모리 레코드만 필요합니다.
-
다시 읽지 않을 이벤트가 지속되는 단기 스토리지 오버헤드를 피하려고 합니다.
-
애플리케이션은 이미 원시 상호 작용을 유지하므로 애플리케이션에서 추출된 장기 레코드만 필요합니다.
IngestData는 단기 이벤트를 저장하지 않으므로 제출된 콘텐츠를 , GetEvent ListEvents또는 로 검색ListSessions하거나 분기로 재구성할 수 없습니다.
참고
원시 상호 작용을 단기 이벤트로 유지하려면 CreateEvent를 대신 사용합니다.
IngestData 작동 방식
요청이 성공하면 콘텐츠가 수락되었음을 확인하고 콘텐츠가 처리된 후 결과 장기 메모리 레코드를 사용할 수 있게 됩니다.
처리가 완료되면 다른 장기 메모리 레코드에 사용된 것과 동일한 작업GetMemoryRecord인 ListMemoryRecords, 또는 RetrieveMemoryRecords를 사용하여 결과 장기 메모리 레코드를 검색합니다.
IngestData는 두 가지 페이로드 유형을 지원합니다.
- 대화
-
역할(예:
USER또는ASSISTANT) 및 텍스트 콘텐츠가 포함된 대화 메시지입니다. - JSON
-
동작 이벤트, 활동 로그 또는 시스템 이벤트와 같은 JSON 형식의 데이터입니다.
선택적으로 메타데이터를 연결하여 추출된 레코드를 보강할 수 있습니다. 자세한 내용은 장기 메모리에 대한 구조화된 메타데이터를 참조하세요.
추출된 레코드의 범위는 네임스페이스로 지정됩니다. 자세한 내용은 네임스페이스를 사용하여 장기 메모리 조직 지정을 참조하세요.
는 엔터티(예: 최종 사용자 또는 에이전트)와 세션 내의 sessionId 그룹 콘텐츠를 actorId 식별합니다. 동일한 actorId, sessionId및 네임스페이스를 공유하는 콘텐츠는 추출 중에 관련 컨텍스트로 처리됩니다.
참고
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 런타임, 메모리, 게이트웨이, 내장 도구 및 자격 증명 리소스에 대한 관찰성 활성화를 참조하세요.