getResponseAsync method
Implementation
@override
Stream<String> getResponseAsync() async* {
_assertNotClosed();
final text = _queryBuffer.toString();
_queryBuffer.clear();
final audio = _pendingAudio;
final image = _pendingImage;
_pendingAudio = null;
_pendingImage = null;
if (modelType == ModelType.gemma4) {
final rawBuffer = StringBuffer();
await for (final rawChunk in ffiClient.chatRaw(
text,
imageBytes: image,
audioBytes: audio,
enableThinking: enableThinking,
)) {
rawBuffer.write(rawChunk);
yield LiteRtLmFfiClient.extractTextFromResponse(rawChunk);
}
_lastRawResponse = rawBuffer.toString();
return;
}
_lastRawResponse = null;
await for (final chunk in ffiClient.chat(
text,
imageBytes: image,
audioBytes: audio,
enableThinking: enableThinking,
)) {
yield chunk;
}
}