generateChat method

Future<GenerationResult> generateChat(
  1. List<ChatMessage> messages, {
  2. LlmOptions? options,
})

Generate a completion for a conversation.

The last message is the live turn; earlier messages become history and a leading system message becomes the system prompt.

Throws SDKException when no model is loadable or generation fails.

Implementation

Future<GenerationResult> generateChat(
  List<ChatMessage> messages, {
  LlmOptions? options,
}) async {
  final request = await _chatRequest(messages, options);
  if (_usesTools(request)) {
    return _generateWithTools(
      _livePrompt(request),
      request,
      history: messages
          .where((m) => m.role != ChatRole.system)
          .map((m) => m.content)
          .toList()
        ..removeLast(),
    );
  }
  final result = await DartBridgeLLM.shared.generateProto(request);
  return GenerationResult.fromLlm(result, requestId: request.requestId);
}