Bot inteligente que evalúa síntomas de resfriado y recomienda remedios personalizados usando Rasa Open Source.
proyecto-rasa/
├── actions/
│ └── actions.py # Acciones personalizadas (lógica de recomendaciones)
├── data/
│ ├── flows.yml # Flujos de conversación
│ └── patterns.yml # Patrones de respuesta
├── models/ # Modelos entrenados
├── domain.yml # Configuración de slots, respuestas y acciones
├── config.yml # Configuración de pipeline
├── credentials.yml # Configuración de canales (API, WhatsApp, etc.)
├── endpoints.yml # Configuración de endpoints
├── ejemplo_chat.html # Interfaz web de prueba
├── test_bot_client.py # Cliente Python para testing
└── ChatBot.jsx # Componente React
- Pregunta sistemáticamente sobre 7 síntomas principales de resfriado
- Analiza la combinación de síntomas reportados
- Genera recomendaciones personalizadas de remedios naturales y consejos
- Proporciona advertencias médicas cuando es necesario
Esta guía te explica cómo probar e integrar tu bot de diagnóstico de resfriado con diferentes tecnologías.
Antes de usar cualquier integración, debes tener Rasa funcionando:
# Navega al directorio del proyecto Rasa
cd tu-proyecto-rasa
rasa train
rasa run actions
Debe mostrar: "Starting action endpoint server..."
rasa run --enable-api --cors "*" --debug
Debe mostrar: "Rasa server is up and running on http://localhost:5005"
curl http://localhost:5005/
Debe responder con información del servidor
Una interfaz web simple y completa para probar tu bot desde el navegador.
- Asegúrate de que Rasa esté corriendo (pasos 1.1-1.3)
- Abre el archivo en tu navegador:
open ejemplo_chat.html # o arrástralo al navegador
- Prueba escribiendo: "Tengo síntomas de resfriado"
- ✅ Interfaz visual amigable
- ✅ Botones de respuestas rápidas
- ✅ Manejo de errores
- ✅ Indicadores de carga
- ✅ Formato de mensajes con emojis
Un cliente Python para probar el bot desde la terminal o integrarlo en aplicaciones Python.
-
Instalar dependencias:
pip install requests
-
Ejecutar cliente interactivo:
python test_bot_client.py
-
Seleccionar opción:
- Opción 1: Conversación interactiva manual
- Opción 2: Prueba automatizada completa
- ✅ Conversación interactiva en terminal
- ✅ Pruebas automatizadas
- ✅ Verificación de conexión
- ✅ Manejo completo de errores
- ✅ Formato de mensajes legible
from test_bot_client import RasaBotClient
# Crear cliente
bot = RasaBotClient()
# Enviar mensaje
respuestas = bot.enviar_mensaje("Tengo síntomas de resfriado")
bot.mostrar_respuestas(respuestas)
Un componente React moderno y responsivo para integrar en aplicaciones web.
- Copiar
ChatBot.jsx
a tu proyecto React - Importar y usar:
import ChatBot from './ChatBot'; function App() { return ( <div> <h1>Mi Aplicación</h1> <ChatBot /> </div> ); }
npx create-react-app mi-app-medica
cd mi-app-medica
# Copiar ChatBot.jsx a src/
# Editar src/App.js para incluir el componente
npm start
- ✅ Diseño moderno y responsivo
- ✅ Respuestas rápidas con botones
- ✅ Indicador de conexión en tiempo real
- ✅ Auto-scroll de mensajes
- ✅ Animaciones suaves
- ✅ Totalmente customizable
# Iniciar diagnóstico
curl -X POST http://localhost:5005/webhooks/rest/webhook \
-H "Content-Type: application/json" \
-d '{
"sender": "test_user",
"message": "Tengo síntomas de resfriado"
}'
# Responder a pregunta
curl -X POST http://localhost:5005/webhooks/rest/webhook \
-H "Content-Type: application/json" \
-d '{
"sender": "test_user",
"message": "Sí"
}'
# Configurar webhook en credentials.yml:
# whatsapp:
# verify: "tu_verify_token"
# secret: "tu_secret"
# access_token: "tu_access_token"
# Configurar en credentials.yml:
# telegram:
# access_token: "tu_bot_token"
# verify: "tu_verify_token"
# webhook_url: "https://tu-servidor.com/webhooks/telegram/webhook"
# Configurar en credentials.yml:
# slack:
# slack_token: "xoxb-tu-token"
# slack_channel: "#general"
# slack_signing_secret: "tu_signing_secret"
GET http://localhost:5005/status
GET http://localhost:5005/conversations
GET http://localhost:5005/domain
POST http://localhost:5005/conversations/{sender_id}/tracker/events
Content-Type: application/json
{
"event": "restart"
}
Solución: Verifica que ambos servidores estén corriendo:
# Terminal 1:
rasa run actions
# Terminal 2:
rasa run --enable-api --cors "*"
Solución:
- Verifica que el modelo esté entrenado:
rasa train
- Revisa logs en las terminales de Rasa
- Prueba con
rasa shell
primero
Solución: Agrega --cors "*"
al comando rasa run:
rasa run --enable-api --cors "*"
Solución:
- Verifica que
rasa run actions
esté corriendo - Revisa
endpoints.yml
- debe tener:action_endpoint:
Solución:
- Usa un
sender_id
único por sesión - Verifica que no haya múltiples clientes con el mismo ID
- Reinicia la conversación si es necesario
- Usuario: "Tengo síntomas de resfriado"
- Bot: "¡Hola! Te haré algunas preguntas..."
- Bot: "¿Sientes congestión nasal?"
- Usuario: "Sí"
- Bot: "¿Tienes dolor de garganta?"
- Usuario: "Un poco"
- [... continúa con todas las preguntas...]
- Bot: "Basándome en tus síntomas... [recomendaciones]"
- Positivas: "Sí", "Si", "Claro", "Por supuesto", "Afirmativo"
- Negativas: "No", "Para nada", "Negativo"
- Parciales: "Un poco", "Algo", "Más o menos", "A veces"
Ahora tienes múltiples formas de integrar tu bot de diagnóstico de resfriado. Elige la opción que mejor se adapte a tu proyecto y ¡comienza a probar!
¿Necesitas ayuda con alguna integración específica? ¡Pregunta sin dudar!