""" Gateway de IA de Qualidot - Módulo de Procesamiento de Imágenes con una rubrica de análisis Propósito: Este endpoint recibe una imagen y la analiza usando una rúbrica de evaluación basada en inteligencia artificial. Homologación: Sin importar qué proveedor de IA se utilice, el resultado siempre se entrega en el mismo formato estándar para Qualidot. """ from typing import Any from dotenv import load_dotenv from fastapi import APIRouter, Depends, UploadFile, File, HTTPException from fastapi.security import APIKeyHeader from app.api.v1.endpoints import router from app.schemas.image_standard import StandardImageAnalysisResult, ImageRequestFile from app.services.image.evaluations_adapters import evaluate_image_with_provider # Inicializar el router de FastAPI para este módulo image_router_analysis = APIRouter() @image_router_analysis.post("/evaluations/", response_model=StandardImageAnalysisResult) async def evaluate_image(image_request: ImageRequestFile = Depends()) -> StandardImageAnalysisResult: """ Endpoint para analizar imágenes usando una rúbrica de evaluación infiriendo el proveedor de IA Args: image_request: Objeto ImageRequestFile que contiene la imagen, el proveedor, el modelo y las opciones de análisis. Returns: StandardImageAnalysisResult: Resultado del análisis de imágenes en formato estándar de Qualidot """ try: # Analizar imagen usando el adaptador de análisis de imagen que infiere el proveedor analysis_result = await evaluate_image_with_provider(image_request) return analysis_result except Exception as e: raise HTTPException(status_code=500, detail=str(e))