generateChatResponseAsync method

Stream<String> generateChatResponseAsync()

Implementation

Stream<String> generateChatResponseAsync() async* {
  final buffer = StringBuffer();

  await for (final token in session.getResponseAsync()) {
    buffer.write(token);
    yield token;
  }

  final response = buffer.toString();
  final responseTokens = await session.sizeInTokens(response);
  _currentTokens += responseTokens;

  if (_currentTokens >= (maxTokens - tokenBuffer)) {
    await _recreateSessionWithReducedChunks();
  }

  final chatMessage = Message(text: response, isUser: false);
  _fullHistory.add(chatMessage);
  _modelHistory.add(chatMessage);
}