process method
- Stream<
AIStreamChunk> stream, { - OnChunkCallback? onChunk,
- OnCompleteCallback? onComplete,
- OnStreamErrorCallback? onError,
Processes a stream of chunks and returns the accumulated text.
Provides callbacks for real-time updates.
Implementation
Future<String> process(
Stream<AIStreamChunk> stream, {
OnChunkCallback? onChunk,
OnCompleteCallback? onComplete,
OnStreamErrorCallback? onError,
}) async {
final buffer = StringBuffer();
AIUsage? finalUsage;
try {
final effectiveStream =
timeout != null ? stream.timeout(timeout!) : stream;
await for (final chunk in effectiveStream) {
buffer.write(chunk.text);
onChunk?.call(chunk);
if (chunk.isComplete) {
finalUsage = chunk.usage;
}
}
} catch (e) {
onError?.call(e);
if (buffer.isEmpty) rethrow;
// If we have partial content, return it
}
final fullText = buffer.toString();
onComplete?.call(fullText, finalUsage);
return fullText;
}