--- id: "RF-LLM-001" title: "Interfaz de Chat con LLM" type: "Requirement" status: "Done" priority: "Alta" epic: "OQI-007" project: "trading-platform" version: "1.0.0" created_date: "2025-12-05" updated_date: "2026-01-04" --- # RF-LLM-001: Interfaz de Chat con LLM **Épica:** OQI-007 - LLM Strategy Agent **Versión:** 1.0 **Fecha:** 2025-12-05 **Estado:** Planificado **Prioridad:** P0 - Crítico --- ## Descripción El sistema debe proporcionar una interfaz de chat conversacional que permita a los usuarios interactuar con un agente LLM especializado en trading. El chat debe soportar streaming de respuestas, mantener contexto de conversación y permitir múltiples conversaciones. --- ## Requisitos Funcionales ### RF-LLM-001.1: Envío de Mensajes - El usuario debe poder enviar mensajes de texto al agente LLM - El sistema debe validar que el mensaje no esté vacío - El sistema debe limitar la longitud del mensaje según el plan del usuario - El mensaje debe incluir contexto de mercado actual automáticamente ### RF-LLM-001.2: Streaming de Respuestas - Las respuestas del LLM deben mostrarse en tiempo real (streaming) - El usuario debe ver el texto aparecer palabra por palabra - Debe existir indicador visual de que el agente está "pensando" - El usuario debe poder cancelar una respuesta en progreso ### RF-LLM-001.3: Gestión de Conversaciones - El usuario debe poder crear nuevas conversaciones - El usuario debe poder ver historial de conversaciones anteriores - El usuario debe poder eliminar conversaciones - El usuario debe poder renombrar conversaciones - Las conversaciones deben persistir entre sesiones ### RF-LLM-001.4: Contexto de Conversación - El sistema debe mantener contexto de los últimos N mensajes - El contexto debe incluir información de mercado relevante - El contexto debe incluir posiciones/watchlist del usuario - El sistema debe resumir conversaciones largas automáticamente ### RF-LLM-001.5: Feedback de Respuestas - El usuario debe poder marcar respuestas como útiles/no útiles - El usuario debe poder reportar respuestas incorrectas - El sistema debe usar feedback para mejorar respuestas futuras --- ## Criterios de Aceptación ```gherkin Feature: Chat Interface con LLM Scenario: Enviar mensaje y recibir respuesta Given estoy autenticado como usuario con plan Pro And estoy en la página del Copilot When escribo "¿Cuál es tu análisis de AAPL?" en el input And presiono Enter o el botón enviar Then veo mi mensaje en el chat And veo indicador de "Analizando..." And las palabras de la respuesta aparecen progresivamente And la respuesta incluye análisis técnico de AAPL Scenario: Crear nueva conversación Given tengo una conversación activa con mensajes When hago clic en "Nueva conversación" Then se crea una nueva conversación vacía And la conversación anterior se guarda en el historial And puedo acceder a la conversación anterior Scenario: Límite de mensajes por plan Given soy usuario con plan Free And he enviado 10 mensajes hoy When intento enviar otro mensaje Then veo mensaje "Has alcanzado el límite diario" And veo opción para upgrade a plan Pro ``` --- ## Reglas de Negocio | Regla | Descripción | |-------|-------------| | RN-001 | Mensajes vacíos no se envían | | RN-002 | Límite de caracteres: Free=500, Pro=2000, Premium=4000 | | RN-003 | Límite diario: Free=10, Pro=100, Premium=ilimitado | | RN-004 | Contexto máximo: últimos 20 mensajes | | RN-005 | Conversaciones se auto-eliminan después de 90 días de inactividad | | RN-006 | Respuestas con contenido financiero incluyen disclaimer | --- ## Dependencias ### Épicas Requeridas - **OQI-001:** Autenticación (usuarios autenticados) ### APIs Externas - OpenAI GPT-4 / Claude API - WebSocket para streaming --- ## Mockups/Wireframes ``` ┌─────────────────────────────────────────────────────────────┐ │ Trading Platform Copilot [Nueva] [⚙️] │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────────────────────────────────┐ │ │ │ Historial │ │ │ │ │ │ │ │ 🤖 ¡Hola! Soy tu asistente de trading. │ │ │ │ > Análisis │ │ ¿En qué puedo ayudarte hoy? │ │ │ │ AAPL │ │ │ │ │ │ │ │ 👤 ¿Cuál es tu análisis de AAPL? │ │ │ │ Estrategia│ │ │ │ │ │ BTC │ │ 🤖 Analizando AAPL... │ │ │ │ │ │ ████████░░ 80% │ │ │ │ Portfolio │ │ │ │ │ │ │ │ │ │ │ └─────────────┘ └─────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ [📎] Escribe tu mensaje... [Enviar] │ └─────────────────────────────────────────────────────────────┘ ``` --- ## Especificaciones Técnicas Relacionadas - [ET-LLM-001: Arquitectura del Chat](../especificaciones/ET-LLM-001-arquitectura-chat.md) - [ET-LLM-005: Frontend Components](../especificaciones/ET-LLM-005-frontend.md) --- ## Historias de Usuario Relacionadas - US-LLM-001: Enviar mensaje al copilot - US-LLM-002: Ver historial de conversaciones --- ## Notas Técnicas - Usar WebSocket para streaming bidireccional - Implementar reconnection automática - Cache de respuestas frecuentes - Rate limiting por usuario --- *Documento de requerimientos - Sistema NEXUS* *Trading Platform*