

# 使用 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)中列出了聊天恢复示例。

**何时使用对话恢复**  
在以下场景中，对话恢复方法对于错误恢复特别有用：
+ 在收到含消息“模型处理请求已超时”的 `ModelTimeoutException` 之后。
+ 在意外断开连接后需要恢复上下文之时。