7Miiik's picture
Update app.py
6c70207 verified
raw
history blame
2.86 kB
import gradio as gr
from transformers import pipeline
import os
# Creamos un modelo de resumen más ligero
resumidor = pipeline("summarization", model="t5-small")
# Creamos un modelo de generación de diálogo más ligero
dialogador = pipeline("text-generation", model="microsoft/DialoGPT-small")
def transformar_texto(archivo):
if archivo is None:
raise gr.Error("Por favor, sube un archivo de texto.")
try:
# Lee el contenido del archivo subido
with open(archivo.name, 'r', encoding='utf-8') as f:
texto = f.read()
except Exception as e:
raise gr.Error(f"Error al leer el archivo: {e}")
# Limitación para la versión gratuita
max_palabras = 1000 # Puedes ajustar este número
num_palabras = len(texto.split())
if num_palabras > max_palabras:
raise gr.Error(f"El texto excede el límite de {max_palabras} palabras para la versión gratuita.")
try:
# Resumimos el texto
resumen = resumidor(
texto,
max_length=50,
min_length=25,
do_sample=False,
clean_up_tokenization_spaces=True
)[0]['summary_text']
except Exception as e:
raise gr.Error(f"Error al resumir el texto: {e}")
try:
# Generamos una conversación basada en el resumen
prompt = f"Crear una conversación entre dos personas sobre: {resumen}"
conversacion = dialogador(
prompt,
max_length=200,
num_return_sequences=1,
clean_up_tokenization_spaces=True
)[0]['generated_text']
except Exception as e:
raise gr.Error(f"Error al generar la conversación: {e}")
# Guardamos la conversación en un archivo en /tmp
ruta_archivo = os.path.join("/tmp", "conversacion.txt")
try:
with open(ruta_archivo, "w", encoding='utf-8') as f:
f.write(conversacion)
except Exception as e:
raise gr.Error(f"Error al guardar la conversación: {e}")
return ruta_archivo
# Creamos la interfaz de usuario actualizada
interfaz = gr.Interface(
fn=transformar_texto,
inputs=gr.File(label="Sube tu documento de texto (.txt)"),
outputs=gr.File(label="Descarga la conversación generada"),
title="📝➡️🎙️ Transformador de Texto a Conversación",
description="""
Sube un documento de texto y conviértelo en una conversación tipo podcast entre dos personas.
**Versión Gratuita:**
- Límite de 1000 palabras por texto.
- Conversación básica entre dos personas.
**Próximamente:**
- Versiones premium sin límites.
- Personalización de voces y estilos.
- Descarga en formato de audio.
¡Mantente atento para más actualizaciones!
""",
theme="default",
allow_flagging="never"
)
interfaz.launch()