validateModelResponse static method

ResponseValidationResult validateModelResponse(
  1. String response, {
  2. required String originalPrompt,
  3. required ProcessedImage? processedImage,
})

Validates and handles model responses for corruption patterns

Implementation

static ResponseValidationResult validateModelResponse(
  String response, {
  required String originalPrompt,
  required ProcessedImage? processedImage,
}) {
  try {
    debugPrint('MultimodalImageHandler: Validating model response...');

    // Detect corruption patterns
    final corruptionResult = ImageErrorHandler.detectResponseCorruption(response);

    if (corruptionResult.isCorrupted) {
      debugPrint('MultimodalImageHandler: Corruption detected with ${corruptionResult.confidence.toStringAsFixed(2)} confidence');

      // Log detailed analysis
      debugPrint('Corruption Analysis: ${corruptionResult.analysis}');
      debugPrint('Suggested Action: ${corruptionResult.suggestedAction}');

      return ResponseValidationResult(
        isValid: false,
        isCorrupted: true,
        confidence: corruptionResult.confidence,
        analysis: corruptionResult.analysis,
        suggestedAction: _convertToResponseAction(corruptionResult.suggestedAction),
        originalResponse: response,
      );
    }

    debugPrint('MultimodalImageHandler: Response validation passed');

    return ResponseValidationResult(
      isValid: false,
      isCorrupted: true,
      confidence: 0.8, // High confidence in error case
      analysis: {'status': 'validation_error'},
      suggestedAction: ResponseAction.reprocessImage,
      originalResponse: response,
    );
  } catch (e) {
    debugPrint('MultimodalImageHandler: Response validation failed - $e');

    return ResponseValidationResult(
      isValid: false,
      isCorrupted: true,
      confidence: 0.8, // High confidence in error case
      analysis: {'error': 'Validation failed: $e'},
      suggestedAction: ResponseAction.reprocessImage,
      originalResponse: response,
    );
  }
}