createImageMessage static method
Map<String, dynamic>
createImageMessage({
- required String text,
- required ProcessedImage processedImage,
- required String role,
Creates a properly structured message object for multimodal AI models that prevents tokenization errors and image corruption.
Implementation
static Map<String, dynamic> createImageMessage({
required String text,
required ProcessedImage processedImage,
required String role,
}) {
try {
debugPrint('ImageTokenizer: Creating structured image message...');
// Validate inputs
if (text.isEmpty) {
throw const ImageTokenizationException('Text content cannot be empty');
}
if (processedImage.base64String.isEmpty) {
throw const ImageTokenizationException('Processed image Base64 string cannot be empty');
}
// Create structured message following multimodal AI model requirements
final message = {
'role': role,
'content': [
{
'type': 'text',
'text': text,
},
{
'type': 'image',
'image_data': {
'data': processedImage.base64String,
'format': processedImage.format,
},
},
],
};
debugPrint('ImageTokenizer: Structured message created with '
'${(message['content'] as List).length} content items');
return message;
} catch (e) {
debugPrint('ImageTokenizer: Error creating image message - $e');
throw ImageTokenizationException('Failed to create image message: $e');
}
}