View a markdown version of this page

교차 모달 입력 - Amazon Nova

교차 모달 입력

Amazon Nova 2 Sonic은 이제 교차 모달 입력을 지원하므로 대화 세션 중에 음성 입력 외에도 문자 메시지를 보낼 수 있습니다. 음성은 여전히 기본 상호 작용 모드이지만 텍스트 입력은 입력이 더 편리하거나 적절한 시나리오에서 유연성을 제공합니다.

연속 스트리밍 필요: 교차 모달 입력이 제대로 작동하려면 활성 스트리밍 세션이 필요합니다. 세션은 일반 음성 세션처럼 연속 스트리밍을 유지 관리해야 합니다. 그렇지 않으면 표준 세션 제한 시간이 적용되고 연결이 종료됩니다.

교차 모달 텍스트 입력에서 민감도 수준은 다음과 같은 시나리오에 유용합니다.

  • 클라이언트 측 앱 통합(웹 및 모바일): 사용자가 텍스트와 음성을 모두 사용하여 애플리케이션과 상호 작용함으로써 원활한 멀티모달 경험을 지원합니다.

  • '모델 우선 시작' 사용 사례: 세션이 시작되면 즉시 문자 메시지를 전송하여 모델에 발화를 시작하라는 프롬프트를 표시할 수 있습니다.

  • 비동기식 도구 직접 호출 중 모델 안내: toolUse 이벤트가 트리거되고 시스템이 도구 직접 호출 처리를 시작하면 클라이언트는 자연스러운 응답을 제공하기 위해 기다리는 동안 Sonic에 다음과 같은 문자 메시지를 보냅니다. '정보를 처리하는 동안 잠시 대기합니다. 그 동안 다른 도움이 필요하신가요?'

  • 텔레포니 DTMF 통합: 고객은 전화 키패드를 사용하여 민감한 정보(예: 신용 카드 번호)를 입력합니다. 참고: Amazon Nova Sonic은 DTMF 어조를 기본적으로 처리하지 않습니다. DTMF 입력을 지원하려면 시스템에서 어조를 감지하고 텍스트(예: '1234')로 변환한 다음 Nova 2 Sonic으로 전송해야 합니다.

작동 방식

교차 모달 입력은 오디오 입력과 유사한 3개의 이벤트 시퀀스를 사용합니다.

  1. 콘텐츠 시작 이벤트: 텍스트 입력의 시작 신호 전송

  2. 텍스트 입력 이벤트: 실제 텍스트 메시지 포함

  3. 콘텐츠 종료 이벤트: 텍스트 입력 완료 신호 전송

세 이벤트 모두 시퀀스를 유지 관리하려면 동일한 promptName 및 contentName을 사용해야 합니다. 적절한 멀티턴 대화 추적을 위해 텍스트 입력을 보낼 때마다 contentName에 대해 새 UUID를 생성해야 합니다.

이벤트 구조

구성 세부 정보와 함께 텍스트 입력 시퀀스를 시작합니다.

{ "event": { "contentStart": { "promptName": "<prompt_name>", "contentName": "<new_content_name>", "role": "USER", "type": "TEXT", "interactive": true, "textInputConfiguration": { "mediaType": "text/plain" } } } }

키 파라미터:

  • promptName: 대화 프롬프트의 이름(세션에서 일관됨)

  • contentName: 이 텍스트 입력의 고유 식별자(각 메시지에 대해 새 UUID 생성)

  • role: 사용자 입력을 나타내려면 "USER"로 설정

  • type: 텍스트 입력의 경우 "TEXT"로 설정

  • interactive: 대화형 모드를 활성화하려면 true로 설정

  • mediaType: 일반 텍스트 콘텐츠의 경우 "text/plain"으로 설정

실제 텍스트 메시지 콘텐츠를 포함합니다.

{ "event": { "textInput": { "promptName": "<prompt_name>", "contentName": "<new_content_name>", "content": "<your_text_message>" } } }

키 파라미터:

  • promptName: 콘텐츠 시작 이벤트의 값과 일치해야 함

  • contentName: 콘텐츠 시작 이벤트의 값과 일치해야 함

  • role: 텍스트 메시지 문자열

텍스트 입력 완료 신호를 전송합니다.

{ "event": { "contentEnd": { "promptName": "<prompt_name>", "contentName": "<new_content_name>" } } }

키 파라미터:

  • promptName: 이전 이벤트의 값과 일치해야 함

  • contentName: 이전 이벤트의 값과 일치해야 함