RESTRA / app.py
Adriiiii24's picture
Update app.py
a9c859f verified
raw
history blame
1.93 kB
import gradio as gr
from transformers import pipeline, T5Tokenizer, T5ForConditionalGeneration
import requests
import os
# Cargar el token de Hugging Face configurado en el espacio
token = os.getenv("HF_TOKEN")
if not token:
raise ValueError("El token no se configuró correctamente en las variables de entorno del Espacio.")
API_URL = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-es"
headers = {"Authorization": f"Bearer {token}"}
# Cargar el modelo y el tokenizador de resumen
tokenizer = T5Tokenizer.from_pretrained("sumedh/t5-base-amazonreviews", clean_up_tokenization_spaces=True, legacy=False)
model = T5ForConditionalGeneration.from_pretrained("sumedh/t5-base-amazonreviews")
summarizer = pipeline("summarization", model=model, tokenizer=tokenizer)
# Función para realizar el resumen y la traducción
def texto_sum(text):
# Dividir el texto en partes si es demasiado largo para el modelo de resumen
max_input_length = 512
text_chunks = [text[i:i+max_input_length] for i in range(0, len(text), max_input_length)]
# Resumir cada parte y unir los resúmenes
summaries = [summarizer(chunk, max_length=30, min_length=10, do_sample=False)[0]['summary_text'] for chunk in text_chunks]
full_summary = " ".join(summaries)
# Realizar la traducción del resumen completo utilizando la API de Hugging Face
response = requests.post(API_URL, headers=headers, json={"inputs": full_summary})
translation = response.json()
# Verificar si hay errores en la respuesta de la traducción
if 'error' in translation:
return f"Error en la traducción: {translation['error']}"
return translation[0]['translation_text']
# Interfaz de Gradio
demo = gr.Interface(
fn=texto_sum,
inputs=gr.Textbox(label="Texto a introducir:", placeholder="Introduce el texto a resumir aquí..."),
outputs="text"
)
# Lanzar la interfaz
demo.launch()