getStreamingChatResponse method

  1. @override
Stream<ChatResponseUpdate> getStreamingChatResponse({
  1. required Iterable<ChatMessage> messages,
  2. ChatOptions? options,
  3. CancellationToken? cancellationToken,
})
override

Sends a chat request and returns a stream of response updates.

Implementation

@override
Stream<ChatResponseUpdate> getStreamingChatResponse({
  required Iterable<ChatMessage> messages,
  ChatOptions? options,
  CancellationToken? cancellationToken,
}) {
  Stream<ChatResponseUpdate> stream() async* {
    final reduced = await reducer.reduce(
      messages.toList(),
      cancellationToken: cancellationToken,
    );
    yield* super.getStreamingChatResponse(
      messages: reduced,
      options: options,
      cancellationToken: cancellationToken,
    );
  }

  return stream();
}