format method
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();
}