onExecute method

  1. @override
Future<LlmGetPromptResult> onExecute(
  1. Map<String, dynamic> arguments
)
override

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')],
    );
  }
}