View a markdown version of this page

Mengelola riwayat obrolan - Amazon Nova

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola riwayat obrolan

Respons Amazon Nova 2 Sonic mencakup transkrip ASR (Automatic Speech Recognition) untuk suara pengguna dan asisten. Menyimpan riwayat obrolan adalah praktik terbaik—tidak hanya untuk tujuan pencatatan tetapi juga untuk melanjutkan sesi ketika koneksi tiba-tiba ditutup. Hal ini memungkinkan klien untuk mengirim konteks kembali ke Nova Sonic untuk melanjutkan percakapan dengan mulus.

Lihat sumber daya berikut untuk informasi selengkapnya tentang mengelola riwayat obrolan:

Mengirim riwayat obrolan

Riwayat percakapan hanya dapat disertakan sekali, setelah prompt sistem/ucapan dan sebelum streaming audio dimulai. Riwayat obrolan keseluruhan tidak boleh lebih besar dari 40KB. Diagram berikut menunjukkan kapan riwayat obrolan diteruskan selama siklus hidup acara:

Setiap pesan sejarah membutuhkan tiga peristiwa:contentStart, textInput dancontentEnd.

Skema acara per pesan:

  • contentStart- Mendefinisikan peran pesan dan konfigurasi

    { "event": { "contentStart": { "promptName": "<prompt-id>", "contentName": "<content-id>", "type": "TEXT", "interactive": true, "role": "ASSISTANT", "textInputConfiguration": { "mediaType": "text/plain" } } } }
  • textInput- Berisi konten pesan yang sebenarnya. Satu TextInput tidak boleh lebih besar dari 1KB. Jika demikian, bagi menjadi beberapa TextInputs di blok konten yang sama. Jika percakapan lebih besar dari 40KB, potong riwayat obrolan secara keseluruhan.

    { "event": { "textInput": { "promptName": "<prompt-id>", "contentName": "<content-id>", "content": "Take your time, Don. I'll be here when you're ready." } } }
  • contentEnd- Menandai akhir pesan

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

Ulangi ketiga peristiwa ini untuk setiap pesan dalam riwayat obrolan Anda, bergantian antara peran USER dan ASSISTANT.

Pertimbangan penting:

  • Riwayat obrolan hanya dapat disertakan sekali per sesi

  • Riwayat obrolan harus dikirim setelah prompt sistem dan sebelum streaming audio dimulai

  • Semua pesan historis harus dikirim sebelum memulai streaming audio

  • Setiap pesan harus menentukan peran USER atau ASSISTANT

  • Gunakan konten transkrip yang disimpan dari peristiwa TextOutput sebagai nilai konten di TextInput

Menerima transkrip ASR

Selama percakapan, Amazon Nova 2 Sonic mengirimkan transkrip ASR melalui acara keluaran. Setiap transkrip dikirimkan sebagai urutan dari tiga peristiwa: ContentStart, TextOutput, dan ContentEnd.

Contoh: Transkrip ucapan pengguna:

1. ContentStart - Menunjukkan awal transkrip:

{ "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 - Berisi konten transkrip yang sebenarnya:

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

3. ContentEnd - Menandai akhir transkrip:

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

Pola tiga peristiwa yang sama berlaku untuk peran USER dan ASSISTANT. Ekstrak content bidang dari textOutput acara dan role bidang dari contentStart acara untuk membangun riwayat obrolan Anda.

Praktik terbaik

Selalu simpan riwayat obrolan untuk mengaktifkan:

  • Dimulainya kembali sesi di seluruh perangkat yang berbeda

  • Pencatatan dan audit percakapan

  • Pelestarian konteks untuk interaksi tindak lanjut

Penting: Saat menyimpan riwayat obrolan, gunakan output teks berdasarkan GenerationStage mereka:

  • Spekulatif - Pratinjau dari apa yang direncanakan Nova 2 Sonic, dihasilkan sebelum sintesis audio dimulai

  • Final - Transkripsi tingkat kalimat aktual dari apa yang diucapkan dalam respons audio

Selalu simpan output teks FINAL ke riwayat obrolan Anda, karena ini mewakili catatan percakapan yang akurat.

Contoh output FINAL (simpan ini ke riwayat obrolan):

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

Contoh output SPEKULATIF (pratinjau opsional, bukan untuk riwayat):

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