format method

String format({
  1. String? systemPrompt,
  2. required List<({String role, String text})> messages,
})

Renders a full prompt from a list of conversation messages.

An optional systemPrompt overrides systemDefault. The returned string is ready to be fed directly to the model for completion.

Implementation

String format({
  String? systemPrompt,
  required List<({String role, String text})> messages,
}) {
  final buf = StringBuffer();
  buf.write(system.replaceAll('{text}', systemPrompt ?? systemDefault));
  for (final msg in messages) {
    if (msg.role == 'user') {
      buf.write(user.replaceAll('{text}', msg.text));
    } else {
      buf.write(assistant.replaceAll('{text}', msg.text));
    }
  }
  // Prompt the assistant to respond
  buf.write(assistant.split('{text}').first);
  return buf.toString();
}