cancelResponse method

Future<bool> cancelResponse()

取消AI响应(打断)

Implementation

Future<bool> cancelResponse() async {
  try {
    // 发送中断命令
    final params = {
      'AppId': config.appId,
      'RoomId': config.roomId,
      'TaskId': config.taskId,
      'Command': 'interrupt',
    };

    final result = await _post(
      action: ActionType.updateVoiceChat,
      name: 'update',
      params: params,
    );

    // 更新最后一条AI消息为中断状态
    for (int i = _messageHistory.length - 1; i >= 0; i--) {
      final message = _messageHistory[i];
      if (message.type == MessageType.ai) {
        final updatedMessage = message.copyWith(isInterrupted: true);
        _messageHistory[i] = updatedMessage;
        _messageController.add(updatedMessage);
        break;
      }
    }

    // 更新状态为准备就绪
    _setState(AigcClientState.ready);

    // 更灵活地处理成功响应
    if (result.containsKey('Result')) {
      return true;
    }
    return false;
  } catch (e) {
    debugPrint('[AigcClient] 取消响应失败: $e');
    return false;
  }
}