Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion de l'historique des discussions
Les réponses Amazon Nova 2 Sonic incluent des transcriptions ASR (reconnaissance vocale automatique) pour les voix des utilisateurs et des assistants. Le stockage de l'historique des discussions est une bonne pratique, non seulement à des fins de journalisation, mais également pour reprendre les sessions lorsque la connexion est interrompue de manière inattendue. Cela permet au client de renvoyer le contexte à Nova Sonic pour poursuivre la conversation de manière fluide.
Consultez les ressources suivantes pour plus d'informations sur la gestion de l'historique des discussions :
Envoi de l'historique des discussions
L'historique des conversations ne peut être inclus qu'une seule fois, après l'invite système/vocale et avant le début de la diffusion audio. L'historique global des discussions ne peut pas dépasser 40 Ko. Le schéma suivant montre à quel moment l'historique des discussions est transmis au cours du cycle de vie de l'événement :
Chaque message historique nécessite trois événements :contentStart, textInput etcontentEnd.
Schéma d'événement par message :
-
contentStart- Définit le rôle et la configuration du message{ "event": { "contentStart": { "promptName": "<prompt-id>", "contentName": "<content-id>", "type": "TEXT", "interactive": true, "role": "ASSISTANT", "textInputConfiguration": { "mediaType": "text/plain" } } } } -
textInput- Contient le contenu réel du message. Un TextInput ne peut pas dépasser 1 Ko. Si tel est le cas, divisez-le en plusieurs entrées de texte dans le même bloc de contenu. Si la conversation est supérieure à 40 Ko, réduisez l'historique global des discussions.{ "event": { "textInput": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "Take your time, Don. I'll be here when you're ready." } } } -
contentEnd- Marque la fin du message{ "event": { "contentEnd": { "promptName": "<prompt-id>", "contentName": "<content-id>" } } }
Répétez ces trois événements pour chaque message de l'historique de vos discussions, en alternant les rôles UTILISATEUR et ASSISTANT.
Considérations importantes :
-
L'historique des discussions ne peut être inclus qu'une seule fois par session
-
L'historique des discussions doit être envoyé après l'invite du système et avant le début de la diffusion audio
-
Tous les messages historiques doivent être envoyés avant de démarrer le streaming audio
-
Chaque message doit spécifier le rôle UTILISATEUR ou ASSISTANT
-
Utiliser le contenu de transcription stocké à partir des événements TextOutput comme valeur de contenu dans TextInput
Réception de transcriptions ASR
Au cours d'une conversation, Amazon Nova 2 Sonic envoie des transcriptions ASR via des événements de sortie. Chaque transcription est fournie sous la forme d'une séquence de trois événements : ContentStart, TextOutput et ContentEnd.
Exemple : transcription vocale d'un utilisateur :
1. ContentStart : indique le début d'une transcription :
{ "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 : contient le contenu réel de la transcription :
{ "event": { "textOutput": { "completionId": "<completion-id>", "content": "hello how are you", "contentId": "<content-id>", "promptName": "<prompt-id>", "role": "USER", "sessionId": "<session-id>" } } }
3. ContentEnd : marque la fin de la transcription :
{ "event": { "contentEnd": { "completionId": "<completion-id>", "contentId": "<content-id>", "promptName": "<prompt-id>", "sessionId": "<session-id>", "stopReason": "PARTIAL_TURN", "type": "TEXT" } } }
Le même schéma à trois événements s'applique aux rôles UTILISATEUR et ASSISTANT. Extrayez le content champ de l'textOutputévénement et le role champ de l'contentStartévénement pour créer l'historique de vos discussions.
Bonnes pratiques
Enregistrez toujours l'historique des discussions pour activer :
-
Reprises de session sur différents appareils
-
Enregistrement et audit des conversations
-
Préservation du contexte pour les interactions de suivi
Important : lors de la sauvegarde de l'historique des discussions, utilisez des sorties de texte en fonction de leur GenerationStage :
-
Speculative - Un aperçu de ce que Nova 2 Sonic prévoit de dire, généré avant le début de la synthèse audio
-
Finale - La transcription réelle au niveau de la phrase de ce qui a été dit dans la réponse audio
Enregistrez toujours le texte final dans votre historique de discussion, car il représente l'enregistrement précis de la conversation.
Exemple de sortie FINALE (enregistrez-le dans l'historique des discussions) :
ContentStart event: { "additionalModelFields": "{\"generationStage\":\"FINAL\"}", "completionId": "<completion-id>", "contentId": "<content-id>", "role": "ASSISTANT", "sessionId": "<session-id>", "type": "TEXT" }
Exemple de sortie SPECULATIVE (aperçu facultatif, pas pour l'historique) :
ContentStart event: { "additionalModelFields": "{\"generationStage\":\"SPECULATIVE\"}", "completionId": "<completion-id>", "contentId": "<content-id>", "role": "ASSISTANT", "sessionId": "<session-id>", "type": "TEXT" }