View a markdown version of this page

Verwaltung des Chat-Verlaufs - Amazon Nova

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung des Chat-Verlaufs

Die Antworten von Amazon Nova 2 Sonic enthalten ASR-Transkripte (Automatic Speech Recognition) für Benutzer- und Assistentenstimmen. Das Speichern des Chat-Verlaufs ist eine bewährte Methode — nicht nur zur Protokollierung, sondern auch zur Wiederaufnahme von Sitzungen, wenn die Verbindung unerwartet unterbrochen wird. Auf diese Weise kann der Client den Kontext an Nova Sonic zurücksenden, um die Konversation nahtlos fortzusetzen.

Weitere Informationen zur Verwaltung des Chat-Verlaufs finden Sie in den folgenden Ressourcen:

Chat-Verlauf wird gesendet

Ein Konversationsverlauf kann nur einmal hinzugefügt werden, und zwar nach der system/speech Aufforderung und bevor das Audio-Streaming beginnt. Der gesamte Chatverlauf darf nicht größer als 40 KB sein. Das folgende Diagramm zeigt, wann der Chat-Verlauf während des Event-Lebenszyklus weitergegeben wird:

Der Chat-Verlauf wurde vom Client an Bedrock gesendet und befindet sich zwischen der Systemaufforderung und dem Audio-Streaming.

Für jede historische Nachricht sind drei Ereignisse erforderlich:contentStart, textInput undcontentEnd.

Ereignisschema pro Nachricht:

  • contentStart- Definiert die Rolle und Konfiguration der Nachricht

    { "event": { "contentStart": { "promptName": "<prompt-id>", "contentName": "<content-id>", "type": "TEXT", "interactive": true, "role": "ASSISTANT", "textInputConfiguration": { "mediaType": "text/plain" } } } }
  • textInput- Enthält den eigentlichen Nachrichteninhalt. Ein TextInput darf nicht größer als 1 KB sein. Wenn ja, teilen Sie es in mehrere TextInputs im selben Inhaltsblock auf. Wenn die Konversation größer als 40 KB ist, kürzen Sie den gesamten Chat-Verlauf.

    { "event": { "textInput": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "Take your time, Don. I'll be here when you're ready." } } }
  • contentEnd- Markiert das Ende der Nachricht

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

Wiederhole diese drei Ereignisse für jede Nachricht in deinem Chat-Verlauf, wobei du zwischen den Rollen USER und ASSISTANT wechselst.

Wichtige Überlegungen:

  • Der Chat-Verlauf kann nur einmal pro Sitzung aufgenommen werden

  • Der Chat-Verlauf muss nach der Systemaufforderung und vor Beginn des Audio-Streamings gesendet werden

  • Alle historischen Nachrichten müssen gesendet werden, bevor das Audio-Streaming gestartet wird

  • In jeder Nachricht muss entweder die Rolle USER oder ASSISTANT angegeben werden

  • Verwenden Sie den gespeicherten Transkriptinhalt von TextOutput-Ereignissen als Inhaltswert in TextInput

Empfangen von ASR-Transkripten

Während einer Konversation sendet Amazon Nova 2 Sonic ASR-Transkripte über Ausgabeereignisse. Jedes Transkript wird als Folge von drei Ereignissen übermittelt: contentStart, textOutput und contentEnd.

Beispiel: Sprachtranskript des Benutzers:

1. contentStart — Zeigt den Beginn eines Transkripts an:

{ "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 — Enthält den eigentlichen Inhalt des Transkripts:

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

3. contentEnd — Markiert das Ende des Transkripts:

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

Das gleiche Muster aus drei Ereignissen gilt sowohl für die Rollen USER als auch für ASSISTANT. Extrahieren Sie das content Feld aus dem textOutput Ereignis und das role Feld aus dem contentStart Ereignis, um Ihren Chat-Verlauf zu erstellen.

Best Practices

Speichere den Chat-Verlauf immer, um Folgendes zu aktivieren:

  • Wiederaufnahme von Sitzungen auf verschiedenen Geräten

  • Protokollierung und Prüfung von Konversationen

  • Erhaltung des Kontextes für nachfolgende Interaktionen

Wichtig: Verwenden Sie beim Speichern des Chat-Verlaufs Textausgaben, die auf ihrer GenerationStage basieren:

  • Spekulativ — Eine Vorschau dessen, was Nova 2 Sonic zu sagen gedenkt, generiert vor Beginn der Audiosynthese

  • Finale — Die tatsächliche Transkription dessen, was in der Audioantwort gesprochen wurde, auf Satzebene

Speichern Sie die ENDGÜLTIGE Textausgabe immer in Ihrem Chat-Verlauf, da sie die genaue Aufzeichnung der Konversation darstellt.

Beispiel für eine ENDGÜLTIGE Ausgabe (speichern Sie diese im Chat-Verlauf):

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

Beispiel für eine SPEKULATIVE Ausgabe (optionale Vorschau, nicht für den Verlauf):

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