""" Esquema de resultado esperado de modelos de análisis de imágenes. Propósito: Define el formato estándar de los resultados devueltos por los modelos de análisis de imágenes, independientemente del proveedor de IA utilizado. Homologación: Garantiza que el resultado del análisis de imágenes siempre se entregue en el mismo formato estándar para Qualidot. """ from fastapi import UploadFile from fastapi.params import File, Form from pydantic import BaseModel, Field from typing import List, Optional class ImageRequestFile: """Modelo de solicitud para análisis de imágenes.""" def __init__( self, file: UploadFile = File(..., description="Archivo de imagen a procesar (ej. jpg, png)"), provider: str = Form(..., description="Proveedor de IA a utilizar (ej. openai, google)"), model: str = Form(..., description="Modelo de IA a utilizar (ej. vision-1)"), rubric: Optional[str] = Form(None, description="Rúbrica de evaluación personalizada para el análisis") ): self.file = file self.provider = provider self.model = model self.rubric = rubric class StandardImageAnalysisResult(BaseModel): """Modelo que representa el resultado estándar de un análisis de imágenes para Qualidot.""" status: str = Field( ..., description="Estado del análisis (ej. 'success', 'error')" ) analysis: Optional[dict] = Field( None, description="Resultados detallados del análisis de la imagen, estructurados según la rúbrica si se proporcionó" ) error: Optional[str] = Field( None, description="Mensaje de error en caso de que el análisis haya fallado" )