generateStream method
Stream an answer to prompt about image token by token.
Throws SDKException into the consumer when generation fails.
Implementation
Stream<GenerationEvent> generateStream(
ImageInput image,
String prompt, {
LlmOptions? options,
}) {
final controller = StreamController<GenerationEvent>();
// onCancel also fires on normal completion; only cancel a generation that is
// still running so a finished stream doesn't emit a spurious cancellation.
var completed = false;
var cancelled = false;
controller.onListen = () {
unawaited(
_pump(
controller,
image,
prompt,
options,
() => completed = true,
() => cancelled,
),
);
};
controller.onCancel = () {
if (!completed) {
cancelled = true;
cancel();
}
};
return controller.stream;
}