View a markdown version of this page

Gerenciamento do histórico do chat - Amazon Nova

Gerenciamento do histórico do chat

As respostas do Amazon Nova 2 Sonic incluem transcrições de ASR (reconhecimento automático de voz) para vozes de usuários e assistentes. Armazenar o histórico do chat é uma prática recomendada, não apenas para fins de registro em log, mas também para retomar as sessões quando a conexão é fechada inesperadamente. Isso possibilita o reenvio de contexto pelo cliente ao Nova Sonic, permitindo a continuidade do diálogo de forma fluida.

Consulte os seguintes recursos para obter mais informações sobre o gerenciamento de histórico do chat:

Envio do histórico do chat

Um histórico de conversa pode ser incluído apenas uma vez, após o prompt de sistema/fala e antes do início do streaming de áudio. O histórico geral do chat não pode ser maior que 40 KB. O seguinte diagrama mostra quando o histórico do chat é transmitido durante o ciclo de vida do evento:

Cada mensagem do histórico requer três eventos: contentStart, textInput e contentEnd.

Esquema do evento por mensagem:

  • contentStart: define o perfil e a configuração da mensagem

    { "event": { "contentStart": { "promptName": "<prompt-id>", "contentName": "<content-id>", "type": "TEXT", "interactive": true, "role": "ASSISTANT", "textInputConfiguration": { "mediaType": "text/plain" } } } }
  • textInput: contém o conteúdo real da mensagem. Um textInput não pode ser maior que 1 KB. Em caso afirmativo, divida em vários textInputs no mesmo bloco de conteúdo. Se a conversa exceder 40 K, reduza o histórico total do chat.

    { "event": { "textInput": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "Take your time, Don. I'll be here when you're ready." } } }
  • contentEnd: marca o fim da mensagem

    { "event": { "contentEnd": { "promptName": "<prompt-id>", "contentName": "<content-id>" } } }

Repita esses três eventos para cada mensagem em seu histórico do chat, alternando entre os perfis de USER e ASSISTANT.

Considerações importantes:

  • O histórico do chat só pode ser incluído uma vez por sessão

  • O histórico do chat deve ser enviado após o prompt do sistema e antes do início do streaming de áudio

  • Todas as mensagens do histórico devem ser enviadas antes do início do streaming de áudio

  • Cada mensagem deve especificar o perfil de USER ou ASSISTANT

  • Use o conteúdo da transcrição armazenado dos eventos textOutput como o valor do conteúdo em textInput

Recebimento de transcrições de ASR

Durante uma conversa, o Amazon Nova 2 Sonic envia transcrições de ASR por meio de eventos de saída. Cada transcrição é entregue como uma sequência de três eventos: contentStart, textOutput e contentEnd.

Exemplo: transcrição da fala do usuário:

1. contentStart - indica o início de uma transcrição:

{ "event": { "contentStart": { "additionalModelFields": "{\"generationStage\":\"FINAL\"}", "completionId": "<completion-id>", "contentId": "<content-id>", "promptName": "<prompt-id>", "role": "USER", "sessionId": "<session-id>", "textOutputConfiguration": { "mediaType": "text/plain" }, "type": "TEXT" } } }

2. textOutput – contém o conteúdo real da transcrição:

{ "event": { "textOutput": { "completionId": "<completion-id>", "content": "hello how are you", "contentId": "<content-id>", "promptName": "<prompt-id>", "role": "USER", "sessionId": "<session-id>" } } }

3. contentEnd - marca o fim da transcrição:

{ "event": { "contentEnd": { "completionId": "<completion-id>", "contentId": "<content-id>", "promptName": "<prompt-id>", "sessionId": "<session-id>", "stopReason": "PARTIAL_TURN", "type": "TEXT" } } }

O mesmo padrão de três eventos se aplica aos perfis de USER e ASSISTANT. Extraia o campo content do evento textOutput e o campo role do evento contentStart para criar seu histórico de chat.

Práticas recomendadas

Sempre armazene o histórico do chat para habilitar:

  • Retomadas de sessões em diferentes dispositivos

  • Registro em log e auditoria de conversas

  • Preservação do contexto para interações de acompanhamento

Importante: ao salvar o histórico do chat, use saídas de texto com base no generationStage:

  • Speculative: uma prévia do que Nova 2 Sonic planeja dizer, gerada antes do início da síntese de áudio

  • Final: a transcrição real em nível de frase do que foi falado na resposta de áudio

Sempre salve a saída de texto FINAL em seu histórico de chat, pois ela representa o registro preciso da conversa.

Exemplo de saída FINAL (salve no histórico do chat):

ContentStart event: { "additionalModelFields": "{\"generationStage\":\"FINAL\"}", "completionId": "<completion-id>", "contentId": "<content-id>", "role": "ASSISTANT", "sessionId": "<session-id>", "type": "TEXT" }

Exemplo de saída SPECULATIVE (visualização opcional, não para histórico):

ContentStart event: { "additionalModelFields": "{\"generationStage\":\"SPECULATIVE\"}", "completionId": "<completion-id>", "contentId": "<content-id>", "role": "ASSISTANT", "sessionId": "<session-id>", "type": "TEXT" }