send method

void send(
  1. String text
)

Sends text with the whole conversation before it; a second send waits for the running answer.

Implementation

void send(String text) {
  if (busy) return;
  final history = <TextMessage>[
    if (settings.systemPrompt.isNotEmpty)
      TextMessage(role: 'system', content: settings.systemPrompt),
    for (final m in _messages)
      TextMessage(role: m.role.name, content: m.text),
    TextMessage(role: 'user', content: text),
  ];
  _messages
    ..add(ChatEntry(role: ChatRole.user, text: text))
    ..add(
      const ChatEntry(role: ChatRole.assistant, text: '', streaming: true),
    );
  busy = true;
  error = null;
  notifyListeners();
  _run = client
      .generate(settings, history)
      .listen(_onEvent, onError: _onError, onDone: _finish);
}