getResponseAsync method
Implementation
@override
Stream<String> getResponseAsync() {
_controller = StreamController<String>();
final String fullPrompt = _queryChunks.join(" ");
final List<String> responseBuffer = [];
llmInference.generateResponse(
fullPrompt.toJS,
((JSString partialJs, JSAny completeRaw) {
final complete = completeRaw.parseBool();
final partial = partialJs.toDart;
responseBuffer.add(partial);
_controller?.add(partial);
if (complete) {
final String fullResponse = responseBuffer.join("");
addQueryChunk(Message(text: fullResponse, isUser: false));
_controller?.close();
_controller = null;
}
}).toJS,
);
return _controller!.stream;
}