chatStream method
Sends a streaming chat request to the provider
messages
- The conversation history as a list of chat messages
tools
- Optional list of tools to use in the chat
Returns a stream of chat events
Implementation
@override
Stream<ChatStreamEvent> chatStream(
List<ChatMessage> messages, {
List<Tool>? tools,
}) async* {
final effectiveTools = tools ?? config.tools;
final requestBody = _buildRequestBody(messages, effectiveTools, true);
// Reset stream state
_resetStreamState();
// Create SSE stream
final stream = client.postStreamRaw(chatEndpoint, requestBody);
await for (final chunk in stream) {
final events = _parseStreamEvents(chunk);
for (final event in events) {
yield event;
}
}
}