Files
ia-microservice/app/services/video/transcription_adapters.py

64 lines
2.9 KiB
Python

"""
Gateway de IA de Qualidot - Módulo de Adaptadores de Transcripción de Video
Propósito:
Este módulo contiene funciones de adaptadores que permiten resumir texto usando diferentes proveedores de IA.
Cada función de adaptador se encarga de interactuar con un proveedor específico (como OpenAI, AssemblyAI, Deepgram, etc.)
y de convertir la respuesta del proveedor al formato estándar de resumen de texto de Qualidot.
"""
import tempfile
import os
from fastapi import HTTPException
from openai import OpenAI, AsyncOpenAI
import assemblyai as aai
from app.core.config import settings
from app.schemas.video_standard import VideoRequestFile, StandardTranscriptionResult
from app.core import config
# Función de adaptador principal que infiere el proveedor y llama al adaptador específico
async def transcribe_video_with_provider(video_request: VideoRequestFile) -> StandardTranscriptionResult:
"""
Función de adaptador para transcribir video usando el proveedor de IA configurado.
"""
provider = video_request.provider.lower()
match provider:
case "gemini":
return await transcribe_with_gemini(video_request)
case "twelvelabs":
return await transcribe_with_twelvelabs(video_request)
case _:
raise ValueError(f"Proveedor de IA no soportado: {video_request.provider}")
# Función de adaptador para transcribir video usando Gemini
async def transcribe_with_gemini(video_request: VideoRequestFile) -> StandardTranscriptionResult:
"""
Función de adaptador para transcribir video usando Gemini.
(Plantilla para futuras implementaciones)
"""
# PASOS A SEGUIR PARA IMPLEMENTAR LA LÓGICA DE TRANSCRIPCIÓN CON IA (ELEGIR MODELO):
# 1. Validar el video de entrada (tamaño, formato, etc.)
# 2. Configurar el cliente de Gemini con la clave API
# 3. Llamar a la API de Gemini para transcribir el video
# 4. Convertir la respuesta de Gemini al formato estándar de resumen de texto de Qualidot
# 5. Manejar errores y excepciones adecuadamente
raise NotImplementedError("La función transcribe_with_gemini aún no está implementada.")
async def transcribe_with_twelvelabs(video_request: VideoRequestFile) -> StandardTranscriptionResult:
"""
Función de adaptador para transcribir video usando TwelveLabs.
(Plantilla para futuras implementaciones)
"""
# PASOS A SEGUIR PARA IMPLEMENTAR LA LÓGICA DE TRANSCRIPCIÓN CON IA (ELEGIR MODELO):
# 1. Validar el video de entrada (tamaño, formato, etc.)
# 2. Configurar el cliente de TwelveLabs con la clave API
# 3. Llamar a la API de TwelveLabs para transcribir el video
# 4. Convertir la respuesta de TwelveLabs al formato estándar de resumen de texto de Qualidot
# 5. Manejar errores y excepciones adecuadamente
raise NotImplementedError("La función transcribe_with_twelvelabs aún no está implementada.")
# Otros modelos de IA