createTokenizedPrompt static method

String createTokenizedPrompt({
  1. required String text,
  2. required ProcessedImage processedImage,
  3. required ModelType modelType,
})

Creates a properly tokenized prompt for the AI model

Implementation

static String createTokenizedPrompt({
  required String text,
  required ProcessedImage processedImage,
  required ModelType modelType,
}) {
  try {
    debugPrint('MultimodalImageHandler: Creating tokenized prompt for $modelType...');

    // Use ImageTokenizer to create properly formatted prompt
    final prompt = tokenizer.ImageTokenizer.createImagePrompt(
      text: text,
      processedImage: processedImage,
      modelType: _convertToTokenizerModelType(modelType),
    );

    // Validate the prompt contains proper image tokens
    final hasValidTokens = tokenizer.ImageTokenizer.validateImageTokens(prompt, 1);
    if (!hasValidTokens) {
      debugPrint('MultimodalImageHandler: Warning - Prompt may have tokenization issues');
    }

    debugPrint('MultimodalImageHandler: Tokenized prompt created (${prompt.length} chars)');

    return prompt;
  } catch (e) {
    debugPrint('MultimodalImageHandler: Tokenization failed - $e');

    // Handle tokenization error
    final errorResult = ImageErrorHandler.handleTokenizationError(
      e,
      StackTrace.current,
      modelType: _convertToTokenizerModelType(modelType),
      prompt: text,
      expectedImageCount: 1,
    );

    // Return fallback prompt
    return tokenizer.ImageTokenizer.createFallbackPrompt(text, errorMessage: errorResult.message);
  }
}