View a markdown version of this page

Gestione della cronologia chat - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione della cronologia chat

Le risposte di Amazon Nova 2 Sonic includono trascrizioni ASR (Automatic Speech Recognition) per le voci degli utenti e degli assistenti. La memorizzazione della cronologia chat è una buona pratica, non solo per scopi di registrazione, ma anche per riprendere le sessioni quando la connessione viene chiusa inaspettatamente. Ciò consente al client di inviare il contesto a Nova Sonic per continuare la conversazione senza interruzioni.

Per ulteriori informazioni sulla gestione della cronologia chat, consulta le seguenti risorse:

Invio della cronologia chat

La cronologia delle conversazioni può essere inclusa una sola volta, dopo la richiesta di sistema/riconoscimento vocale e prima dell'inizio dello streaming audio. La cronologia complessiva della chat non può superare i 40 KB. Il diagramma seguente mostra quando la cronologia chat viene trasmessa durante il ciclo di vita dell'evento:

Ogni messaggio storico richiede tre eventi:contentStart, e. textInput contentEnd

Schema degli eventi per messaggio:

  • contentStart- Definisce il ruolo e la configurazione del messaggio

    { "event": { "contentStart": { "promptName": "<prompt-id>", "contentName": "<content-id>", "type": "TEXT", "interactive": true, "role": "ASSISTANT", "textInputConfiguration": { "mediaType": "text/plain" } } } }
  • textInput- Contiene il contenuto effettivo del messaggio. Un TextInput non può essere più grande di 1 KB. In tal caso, suddividilo in più TextInput nello stesso blocco di contenuto. Se la conversazione supera i 40 KB, taglia la cronologia generale della chat.

    { "event": { "textInput": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "Take your time, Don. I'll be here when you're ready." } } }
  • contentEnd- Segna la fine del messaggio

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

Ripeti questi tre eventi per ogni messaggio nella cronologia chat, alternando i ruoli UTENTE e ASSISTENTE.

Considerazioni importanti:

  • La cronologia chat può essere inclusa solo una volta per sessione

  • La cronologia chat deve essere inviata dopo la richiesta del sistema e prima dell'inizio dello streaming audio

  • Tutti i messaggi storici devono essere inviati prima di iniziare lo streaming audio

  • Ogni messaggio deve specificare il ruolo USER o ASSISTANT

  • Utilizza il contenuto della trascrizione memorizzato dagli eventi TextOutput come valore del contenuto in TextInput

Ricezione di trascrizioni ASR

Durante una conversazione, Amazon Nova 2 Sonic invia trascrizioni ASR tramite eventi di output. Ogni trascrizione viene fornita come una sequenza di tre eventi: contentStart, textOutput e contentEnd.

Esempio: trascrizione vocale dell'utente:

1. ContentStart: indica l'inizio di una trascrizione:

{ "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: contiene il contenuto effettivo della trascrizione:

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

3. contentEnd - Segna la fine della trascrizione:

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

Lo stesso schema a tre eventi si applica sia ai ruoli USER che ASSISTANT. Estrai il content campo dall'textOutputevento e il role campo dall'contentStartevento per creare la cronologia chat.

Best practice

Memorizza sempre la cronologia chat per abilitare:

  • Riprese delle sessioni su diversi dispositivi

  • Registrazione e controllo delle conversazioni

  • Conservazione del contesto per le interazioni successive

Importante: quando salvate la cronologia delle chat, utilizzate gli output di testo basati sul relativo GenerationStage:

  • Speculativo: un'anteprima di ciò che Nova 2 Sonic intende dire, generato prima dell'inizio della sintesi audio

  • Finale: l'effettiva trascrizione a livello di frase di ciò che è stato pronunciato nella risposta audio

Salva sempre il testo FINALE in uscita nella cronologia chat, poiché rappresenta la registrazione accurata della conversazione.

Esempio di output FINALE (salvalo nella cronologia chat):

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

Esempio di output SPECULATIVO (anteprima opzionale, non per la cronologia):

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