sendMessageStream method
Send a message and stream back partial responses as they're generated.
Implementation
@override
Stream<Map<String, dynamic>> sendMessageStream(
String conversationId,
List<Map<String, dynamic>> contents,
Map<String, Object>? extraContext,
) {
// First, tell native side to start streaming
_methodChannel.invokeMethod('startMessageStream', {
'conversationId': conversationId,
'contents': contents,
if (extraContext != null) 'extraContext': extraContext,
});
return _eventChannel.receiveBroadcastStream({
'conversationId': conversationId,
}).map((event) {
if (event is Map) {
return Map<String, dynamic>.from(event);
}
if (event is String) {
return Map<String, dynamic>.from(jsonDecode(event) as Map);
}
return <String, dynamic>{'text': event.toString()};
});
}