from nerif.model import VisionModel
from nerif.utils import ImageCompressor, MessageType
import os
compressor = ImageCompressor(
    size_threshold_mb=1.0,  
    jpeg_quality=85
)
def analyze_large_image(image_path, question):
    
    compressed_path = image_path
    was_compressed, ratio, _ = compressor.compress_image(
        image_path,
        f"temp_{os.path.basename(image_path)}"
    )
    
    if was_compressed:
        compressed_path = f"temp_{os.path.basename(image_path)}"
        print(f"Image compressed by {ratio:.2f}x for faster processing")
    
    
    vision_model = VisionModel()
    vision_model.append_message(MessageType.IMAGE_FILE, compressed_path)
    vision_model.append_message(MessageType.TEXT, question)
    
    response = vision_model.chat()
    
    
    if was_compressed:
        os.remove(compressed_path)
    
    return response
result = analyze_large_image(
    "very_large_photo.jpg",
    "What are the main objects in this image?"
)
print(result)