ChatBot / app.py
lozanopastor's picture
Update app.py
57103da verified
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
# Cargar dataset
with open("intents.json") as f:
data = json.load(f)
X = [d["text"] for d in data]
y = [d["intent"] for d in data]
# Vectorizar texto
vectorizer = CountVectorizer()
X_vect = vectorizer.fit_transform(X)
# Entrenar modelo
clf = MultinomialNB()
clf.fit(X_vect, y)
responses = {
"greet": "¡Hola! ¿En qué puedo ayudarte?",
"goodbye": "¡Hasta luego! Que tengas un buen día.",
"ask_hours": "Estamos abiertos de lunes a viernes de 9 a 18h.",
"ask_registration": "Para registrarte, visita nuestra web y completa el formulario."
}
def chatbot_response(text):
X_new = vectorizer.transform([text])
intent = clf.predict(X_new)[0]
return responses.get(intent, "Lo siento, no entendí tu pregunta.")
while True:
msg = input("Tú: ")
if msg.lower() in ["salir", "adiós"]:
print("Bot:", responses["goodbye"])
break
print("Bot:", chatbot_response(msg))
import gradio as gr
def chat_gradio(message):
return chatbot_response(message)
iface = gr.Interface(
fn=chat_gradio,
inputs="text",
outputs="text",
title="Chatbot Demo",
description="Demo de chatbot entrenado con anotaciones simples"
)
iface.launch()