Skip to content

a1b4/rasa-test

Repository files navigation

🤧 Bot de Diagnóstico de Resfriado - Rasa

Bot inteligente que evalúa síntomas de resfriado y recomienda remedios personalizados usando Rasa Open Source.

📁 Estructura del proyecto

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

🎯 ¿Qué hace este bot?

  1. Pregunta sistemáticamente sobre 7 síntomas principales de resfriado
  2. Analiza la combinación de síntomas reportados
  3. Genera recomendaciones personalizadas de remedios naturales y consejos
  4. Proporciona advertencias médicas cuando es necesario

🚀 Guía de Integración

Esta guía te explica cómo probar e integrar tu bot de diagnóstico de resfriado con diferentes tecnologías.

🚀 Paso 1: Preparar el servidor Rasa

Antes de usar cualquier integración, debes tener Rasa funcionando:

1.1. Entrenar el modelo

# Navega al directorio del proyecto Rasa
cd tu-proyecto-rasa
rasa train

1.2. Levantar servidor de acciones (Terminal 1)

rasa run actions

Debe mostrar: "Starting action endpoint server..."

1.3. Levantar servidor API (Terminal 2)

rasa run --enable-api --cors "*" --debug

Debe mostrar: "Rasa server is up and running on http://localhost:5005"

1.4. Verificar que funciona

curl http://localhost:5005/

Debe responder con información del servidor


💻 Opción 1: Interfaz Web HTML/JavaScript

¿Qué es?

Una interfaz web simple y completa para probar tu bot desde el navegador.

¿Cómo usar?

  1. Asegúrate de que Rasa esté corriendo (pasos 1.1-1.3)
  2. Abre el archivo en tu navegador:
    open ejemplo_chat.html
    # o arrástralo al navegador
  3. Prueba escribiendo: "Tengo síntomas de resfriado"

✨ Características:

  • ✅ Interfaz visual amigable
  • ✅ Botones de respuestas rápidas
  • ✅ Manejo de errores
  • ✅ Indicadores de carga
  • ✅ Formato de mensajes con emojis

🐍 Opción 2: Cliente Python

¿Qué es?

Un cliente Python para probar el bot desde la terminal o integrarlo en aplicaciones Python.

¿Cómo usar?

  1. Instalar dependencias:

    pip install requests
  2. Ejecutar cliente interactivo:

    python test_bot_client.py
  3. Seleccionar opción:

    • Opción 1: Conversación interactiva manual
    • Opción 2: Prueba automatizada completa

✨ Características:

  • ✅ Conversación interactiva en terminal
  • ✅ Pruebas automatizadas
  • ✅ Verificación de conexión
  • ✅ Manejo completo de errores
  • ✅ Formato de mensajes legible

🔧 Ejemplo de uso programático:

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)

⚛️ Opción 3: Componente React

¿Qué es?

Un componente React moderno y responsivo para integrar en aplicaciones web.

¿Cómo usar?

3.1. En proyecto React existente:

  1. Copiar ChatBot.jsx a tu proyecto React
  2. Importar y usar:
    import ChatBot from './ChatBot';
    
    function App() {
      return (
        <div>
          <h1>Mi Aplicación</h1>
          <ChatBot />
        </div>
      );
    }

3.2. Crear nuevo proyecto React:

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

✨ Características:

  • ✅ 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

📱 Opción 4: Integración con cURL (testing rápido)

Probar desde terminal:

# 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í"
  }'

🌐 Opción 5: Integración con otros servicios

WhatsApp Business API:

# Configurar webhook en credentials.yml:
# whatsapp:
#   verify: "tu_verify_token"
#   secret: "tu_secret"
#   access_token: "tu_access_token"

Telegram Bot:

# Configurar en credentials.yml:
# telegram:
#   access_token: "tu_bot_token"
#   verify: "tu_verify_token"
#   webhook_url: "https://tu-servidor.com/webhooks/telegram/webhook"

Slack:

# Configurar en credentials.yml:
# slack:
#   slack_token: "xoxb-tu-token"
#   slack_channel: "#general"
#   slack_signing_secret: "tu_signing_secret"

🔧 Endpoints adicionales útiles

Ver estado del servidor:

GET http://localhost:5005/status

Ver conversaciones activas:

GET http://localhost:5005/conversations

Ver modelo cargado:

GET http://localhost:5005/domain

Reiniciar conversación:

POST http://localhost:5005/conversations/{sender_id}/tracker/events
Content-Type: application/json

{
  "event": "restart"
}

❌ Solución de problemas comunes

Problema: "Connection refused"

Solución: Verifica que ambos servidores estén corriendo:

# Terminal 1:
rasa run actions

# Terminal 2:
rasa run --enable-api --cors "*"

Problema: "No response from bot"

Solución:

  1. Verifica que el modelo esté entrenado: rasa train
  2. Revisa logs en las terminales de Rasa
  3. Prueba con rasa shell primero

Problema: "CORS error"

Solución: Agrega --cors "*" al comando rasa run:

rasa run --enable-api --cors "*"

Problema: "Action server not found"

Solución:

  1. Verifica que rasa run actions esté corriendo
  2. Revisa endpoints.yml - debe tener: action_endpoint:

Problema: Mensajes no llegan o se duplican

Solución:

  1. Usa un sender_id único por sesión
  2. Verifica que no haya múltiples clientes con el mismo ID
  3. Reinicia la conversación si es necesario

🎯 Ejemplos de flujos de conversación

Flujo completo de diagnóstico:

  1. Usuario: "Tengo síntomas de resfriado"
  2. Bot: "¡Hola! Te haré algunas preguntas..."
  3. Bot: "¿Sientes congestión nasal?"
  4. Usuario: "Sí"
  5. Bot: "¿Tienes dolor de garganta?"
  6. Usuario: "Un poco"
  7. [... continúa con todas las preguntas...]
  8. Bot: "Basándome en tus síntomas... [recomendaciones]"

Respuestas válidas:

  • Positivas: "Sí", "Si", "Claro", "Por supuesto", "Afirmativo"
  • Negativas: "No", "Para nada", "Negativo"
  • Parciales: "Un poco", "Algo", "Más o menos", "A veces"

🚀 ¡Listo para usar!

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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published