feat: Agrega primera version de template (revisar archivo de documentacion - docs.md)

This commit is contained in:
Francisco Pineda
2026-03-15 08:44:25 +01:00
parent d433942981
commit 4d6152a9fe
45 changed files with 1151 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
"""
Esquema de resultado esperado de modelos de transcripción de video.
Propósito:
Define el formato estándar de los resultados devueltos por los modelos de transcripción
de video, independientemente del proveedor de IA utilizado.
Homologación:
Garantiza que el resultado de la transcripción 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 VideoRequestFile:
"""Modelo de solicitud para transcripción de video."""
def __init__(
self,
file: UploadFile = File(..., description="Archivo de video a procesar (ej. mp4, mov)"),
provider: str = Form(..., description="Proveedor de IA a utilizar (ej. openai, assemblyai)"),
model: str = Form(..., description="Modelo de IA a utilizar (ej. whisper-1)"),
diarization: Optional[bool] = Form(False, description="Activa la separación e identificación de múltiples hablantes"),
timestamps: Optional[bool] = Form(False, description="Activa las marcas de tiempo exactas por cada segmento hablado"),
sentiment: Optional[bool] = Form(False, description="Activa el análisis de sentimiento (POSITIVO/NEGATIVO) por segmento")
):
self.file = file
self.provider = provider
self.model = model
self.diarization = diarization
self.timestamps = timestamps
self.sentiment = sentiment
class StandardTranscriptionResult(BaseModel):
"""Modelo que representa el resultado estándar de una transcripción de video para Qualidot."""
status: str = Field(
...,
description="Estado final de la petición ('success' o 'error')"
)
original_filename: str = Field(
...,
description="Nombre original del archivo de video procesado"
)
provider_used: str = Field(
...,
description="Proveedor de IA que ejecutó la transcripción (ej. OpenAI)"
)
model_used: str = Field(
...,
description="Modelo específico utilizado para el proceso"
)
full_transcript: Optional[str] = Field(
None,
description="Texto completo y continuo de toda la transcripción"
)
segments: Optional[List[dict]] = Field( ##Queda pendiente definir mejor la estructura de cada segmento según las opciones avanzadas
None,
description="Lista detallada de segmentos si se solicitaron opciones avanzadas (diarization, timestamps, sentiment)"
)
confidence_score: Optional[float] = Field(
None,
description="Nivel de certeza global del modelo (valor entre 0.0 y 1.0)"
)