onExecute method
Hook for plugin-specific execution logic
Implementation
@override
Future<LlmGetPromptResult> onExecute(Map<String, dynamic> arguments) async {
try {
// Replace placeholders in template
String filledPrompt = userPromptTemplate;
// Replace each {parameter} with its value
arguments.forEach((key, value) {
filledPrompt = filledPrompt.replaceAll('{$key}', value.toString());
});
// Create messages array for the prompt
final messages = [
LlmMessage.system(systemPrompt),
LlmMessage.user(filledPrompt),
];
return LlmGetPromptResult(
description: description,
messages: messages,
);
} catch (e) {
_logger.error('Error processing prompt template: $e');
return LlmGetPromptResult(
description: 'Error',
messages: [LlmMessage.system('Failed to process prompt template: $e')],
);
}
}