PSYCHOLOGICAL_CHAT_IMPLEMENTATION.md 2.2 KB

Implementación Chat Psicológico

Objetivo

Agregar chat de apoyo psicológico separado del chat médico, sin límite de mensajes y con opción de terminar conversación.

Diferencias con Chat Médico

  • ❌ Sin límite de 10 mensajes
  • ✅ Usuario termina conversación cuando quiera
  • 💭 Prompt enfocado en apoyo emocional
  • 🔒 Disclaimer sobre no ser terapia profesional

Tareas

1. Base de Datos

  • Agregar enum ChatType (MEDICAL, PSYCHOLOGICAL)
  • Agregar campo chatType al modelo Conversation
  • Crear y ejecutar migración

2. Página de Selección

  • Crear /chat/select con AuthenticatedLayout
  • Diseño con componentes UI reutilizables (Card)
  • Dos opciones claras con descripción
  • Redireccionamiento según selección
  • Integración con sidebar y estilo consistente

3. Backend/API

  • Modificar /api/chat para aceptar chatType
  • Prompt del sistema para chat psicológico
  • Remover límite de mensajes para tipo PSYCHOLOGICAL
  • Endpoint para terminar conversación manualmente

4. Frontend

  • Adaptar ImprovedChatInterface.tsx para ambos tipos
  • Modificar useChat.ts para manejar tipos
  • Historial separado por tipo de chat (localStorage)
  • Botón "Terminar conversación" en chat psicológico
  • Modificar header para mostrar tipo de chat
  • Iconos y colores diferenciados según tipo

5. Seguridad y Ética

  • Disclaimer claro al inicio (en página de selección)
  • Disclaimer en chat psicológico con info de limitaciones
  • Detección de crisis en prompt (keywords: suicidio, autolesión)
  • Números de emergencia en disclaimer
  • Banner dinámico con recursos de ayuda inmediata si se detecta crisis
  • Múltiples líneas de emergencia (Cruz Roja, Policía, Línea de Vida)

6. Testing

  • Crear conversación psicológica
  • Verificar sin límite de mensajes
  • Probar terminación manual
  • Validar separación de historiales
  • Test de crisis detection (respuesta del LLM con crisisDetected: true)

Notas Técnicas

  • Reutilizar componentes existentes de chat médico
  • Mismo modelo de BD, solo agregar discriminante chatType
  • Prompts almacenados en código o variables de entorno