

# Amazon Nova Sonic でのエラーの処理
<a name="speech-errors"></a>

エラーが発生した場合は、次の手順を試すことをお勧めします。

1. `promptEnd` イベントを送信します。

1. `sessionEnd` イベントを送信します。

1. オーディオストリーミングが開始された場合は、`contentEnd` イベントも送信します。

これらのステップを完了すると、GPU リソースとメモリも解放されます。

長い会話を処理する場合やエラーから回復する場合は、次のアプローチを使用して会話の再開を実装できます。

1. チャット履歴ストレージを設定して、以前のやり取りの会話コンテキストを保持します。チャット履歴の例は、[Amazon Nova サンプル Github リポジトリ](https://github.com/aws-samples/amazon-nova-samples/tree/main/speech-to-speech/repeatable-patterns/chat-history-logger)にあります。

1. 会話のタイムアウトをプロアクティブに処理します。
   + 最大接続期間に近づいたら、現在のリクエストを終了し、新しいリクエストを開始します。
   + 会話の継続性を維持するために、保存されたチャット履歴を新しいリクエストに含めます。

1. 再開された会話を適切にフォーマットします。
   + チャット履歴は、システムプロンプトの後、新しいユーザー入力の前に配置します。
   + 以前のメッセージを適切なユーザーロールとアシスタントロールに含めます。
   + チャット履歴の最初のメッセージがユーザーからのものであることを確認します。

   チャット再開の例は、[Amazon Nova サンプル Github リポジトリ](https://github.com/aws-samples/amazon-nova-samples/tree/main/speech-to-speech/repeatable-patterns/resume-conversation)にあります。

**会話再開を使用するタイミング**  
会話再開アプローチは、以下のシナリオでエラー復旧に特に役立ちます。
+ 「Model has timed out in processing the request」(モデルのリクエスト処理がタイムアウトしました) というメッセージを含む `ModelTimeoutException` を受け取った後。
+ 予期しない切断後にコンテキストを復元する必要がある場合。