""" Esquema de resultado esperado de modelos de análisis de texto (JSON). Propósito: Define el formato estándar de los resultados devueltos por los modelos de análisis de texto, independientemente del proveedor de IA utilizado. Homologación: Garantiza que el resultado del análisis de texto 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 TextRequestFile: """Modelo de solicitud para análisis de texto.""" def __init__( self, file: UploadFile = File(..., description="Archivo de texto a procesar (ej. txt, json)"), provider: str = Form(..., description="Proveedor de IA a utilizar (ej. openai, google)"), model: str = Form(..., description="Modelo de IA a utilizar (ej. text-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 StandardTextAnalysisResult(BaseModel): """Modelo que representa el resultado estándar de un análisis de texto 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 texto, 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" )