torres / app.py
fertornie's picture
Update app.py
24f88cf verified
import gradio as gr
from transformers import pipeline
# Definir contexto para lenguaje explícito o formal
contexto_explicito = "Esta es una conversación informal en la que es aceptable el uso de lenguaje explícito si el tema lo amerita."
contexto_formal = "Esta es una conversación formal y no se debe usar lenguaje explícito."
# Cargar el modelo GPT-2 en español
generator = pipeline('text-generation', model='PlanTL-GOB-ES/gpt2-large-bne')
# Función para manejar la respuesta del chatbot con control de contexto
def chatbot_response(input_text):
print(f"Entrada recibida: {input_text}") # Log para verificar la entrada
try:
# Verificar si el input tiene palabras o temas sensibles que permitirían lenguaje explícito
if any(palabra in input_text.lower() for palabra in ["sexo", "relaciones", "adultos"]):
prompt = f"{contexto_explicito} {input_text}"
else:
prompt = f"{contexto_formal} {input_text}"
# Generar respuesta con ajustes de parámetros para mejorar la coherencia
outputs = generator(prompt,
max_length=50, # Limitar la longitud de la respuesta
num_return_sequences=1,
do_sample=True,
top_k=50, # Limitar a las 50 palabras más probables
top_p=0.95, # Muestreo por núcleo
temperature=0.7) # Controlar la creatividad del modelo
response = outputs[0]['generated_text']
print(f"Respuesta generada: {response}") # Log para verificar la salida
return response
except Exception as e:
print(f"Error generado: {str(e)}") # Log para registrar cualquier error
return f"Error: {str(e)}"
# Crear la interfaz del chatbot con Gradio
iface = gr.Interface(fn=chatbot_response, inputs="text", outputs="text", title="Chatbot Contextual")
# Ejecutar la aplicación
iface.launch()