ChatCompletionStreamResponse.parseSseLine constructor

ChatCompletionStreamResponse.parseSseLine(
  1. String line, {
  2. String? provider,
})

Implementation

factory ChatCompletionStreamResponse.parseSseLine(String line, {String? provider}) {
  if (line.startsWith('data:')) {
    final data = line.substring(5).trim();
    if (data == '[DONE]') {
      return ChatCompletionStreamResponse(
        content: '',
        isComplete: true,
        provider: provider,
      );
    }
    try {
      final json = jsonDecode(data) as Map<String, dynamic>;
      return ChatCompletionStreamResponse.fromJson(json, provider: provider);
    } catch (_) {
      return ChatCompletionStreamResponse(
        content: '',
        isComplete: false,
        provider: provider,
      );
    }
  }
  return ChatCompletionStreamResponse(content: '', isComplete: false, provider: provider);
}