forked from ericorps/ia-microservice
feat: Agrega primera version de template (revisar archivo de documentacion - docs.md)
This commit is contained in:
Binary file not shown.
67
app/services/video/transcription_adapters.py
Normal file
67
app/services/video/transcription_adapters.py
Normal file
@@ -0,0 +1,67 @@
|
||||
"""
|
||||
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 "nombre de la ia 1 aqui":
|
||||
return await transcribe_with_ai_model1(video_request)
|
||||
case "nombre de la ia 2 aqui":
|
||||
return await transcribe_with_ai_model2(video_request)
|
||||
|
||||
# AGREGAR OTROS CASOS PARA DIFERENTES PROVEEDORES DE IA AQUÍ
|
||||
|
||||
case _:
|
||||
raise ValueError(f"Proveedor de IA no soportado: {video_request.provider}")
|
||||
|
||||
# Función de adaptador para transcribir video usando OpenAI
|
||||
async def transcribe_with_ai_model1(video_request: VideoRequestFile) -> StandardTranscriptionResult:
|
||||
"""
|
||||
Función de adaptador para transcribir video usando OpenAI.
|
||||
(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 OpenAI con la clave API
|
||||
# 3. Llamar a la API de OpenAI para transcribir el video
|
||||
# 4. Convertir la respuesta de OpenAI al formato estándar de resumen de texto de Qualidot
|
||||
# 5. Manejar errores y excepciones adecuadamente
|
||||
raise NotImplementedError("La función transcribe_with_ai_model1 aún no está implementada.")
|
||||
|
||||
async def transcribe_with_ai_model2(video_request: VideoRequestFile) -> StandardTranscriptionResult:
|
||||
"""
|
||||
Función de adaptador para transcribir video usando OpenAI.
|
||||
(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 OpenAI con la clave API
|
||||
# 3. Llamar a la API de OpenAI para transcribir el video
|
||||
# 4. Convertir la respuesta de OpenAI al formato estándar de resumen de texto de Qualidot
|
||||
# 5. Manejar errores y excepciones adecuadamente
|
||||
raise NotImplementedError("La función transcribe_with_ai_model2 aún no está implementada.")
|
||||
|
||||
# Otros modelos de IA
|
||||
Reference in New Issue
Block a user