136 lines
5.2 KiB
Markdown
136 lines
5.2 KiB
Markdown
# US-LLM-001: Enviar Mensaje al Copilot
|
||
|
||
**Épica:** OQI-007 - LLM Strategy Agent
|
||
**Sprint:** TBD
|
||
**Story Points:** 5
|
||
**Prioridad:** P0 - Crítico
|
||
|
||
---
|
||
|
||
## Historia de Usuario
|
||
|
||
**Como** usuario autenticado de OrbiQuant
|
||
**Quiero** poder enviar mensajes al Copilot de trading
|
||
**Para** recibir análisis, recomendaciones y asistencia personalizada
|
||
|
||
---
|
||
|
||
## Criterios de Aceptación
|
||
|
||
### AC-1: Envío básico de mensaje
|
||
```gherkin
|
||
Given estoy autenticado en la plataforma
|
||
And estoy en la página del Copilot
|
||
When escribo un mensaje en el campo de texto
|
||
And presiono Enter o el botón "Enviar"
|
||
Then mi mensaje aparece en el chat
|
||
And veo un indicador de "Pensando..."
|
||
And recibo una respuesta del agente
|
||
```
|
||
|
||
### AC-2: Streaming de respuesta
|
||
```gherkin
|
||
Given envié un mensaje al Copilot
|
||
When el agente comienza a responder
|
||
Then veo las palabras aparecer progresivamente
|
||
And el texto se va completando en tiempo real
|
||
And al finalizar el mensaje queda completo
|
||
```
|
||
|
||
### AC-3: Validación de mensaje vacío
|
||
```gherkin
|
||
Given estoy en el campo de mensaje
|
||
When intento enviar un mensaje vacío
|
||
Then el mensaje no se envía
|
||
And el botón de enviar está deshabilitado
|
||
```
|
||
|
||
### AC-4: Límite de caracteres por plan
|
||
```gherkin
|
||
Given soy usuario con plan <plan>
|
||
When escribo un mensaje
|
||
Then veo un contador de caracteres
|
||
And el límite es <limite> caracteres
|
||
And no puedo escribir más del límite
|
||
|
||
Examples:
|
||
| plan | limite |
|
||
| Free | 500 |
|
||
| Pro | 2000 |
|
||
| Premium | 4000 |
|
||
```
|
||
|
||
### AC-5: Cancelar respuesta en progreso
|
||
```gherkin
|
||
Given el agente está generando una respuesta
|
||
And veo el indicador de streaming
|
||
When hago clic en el botón "Cancelar"
|
||
Then la generación se detiene
|
||
And veo el mensaje parcial generado
|
||
And puedo enviar un nuevo mensaje
|
||
```
|
||
|
||
---
|
||
|
||
## Diseño UI/UX
|
||
|
||
### Wireframe
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ OrbiQuant Copilot [+] [⚙️] [×] │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────┐ │
|
||
│ │ 🤖 ¡Hola! Soy tu asistente de trading. ¿En qué │ │
|
||
│ │ puedo ayudarte? │ │
|
||
│ └─────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────┐ │
|
||
│ │ 👤 ¿Cuál es tu análisis de AAPL? │ │
|
||
│ └─────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────────┐ │
|
||
│ │ 🤖 Analizando AAPL... │ │
|
||
│ │ ████████████░░░░░░░░ 60% │ │
|
||
│ │ [Cancelar] │ │
|
||
│ └─────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ │ Escribe tu mensaje... │ 45/500 │ [Enviar] │ │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Notas Técnicas
|
||
|
||
- WebSocket para comunicación bidireccional
|
||
- Implementar debounce en input (500ms)
|
||
- Guardar mensaje en DB antes de enviar a LLM
|
||
- Timeout de respuesta: 60 segundos
|
||
- Reconexión automática de WebSocket
|
||
|
||
---
|
||
|
||
## Dependencias
|
||
|
||
- RF-LLM-001.1: Envío de Mensajes
|
||
- RF-LLM-001.2: Streaming de Respuestas
|
||
- ET-LLM-001: Arquitectura del Chat
|
||
|
||
---
|
||
|
||
## Definición de Done
|
||
|
||
- [ ] Código implementado y revisado
|
||
- [ ] Tests unitarios (>80% coverage)
|
||
- [ ] Tests E2E para flujo completo
|
||
- [ ] Documentación actualizada
|
||
- [ ] QA aprobado
|
||
- [ ] Desplegado en staging
|
||
|
||
---
|
||
|
||
*Historia de usuario - Sistema NEXUS*
|
||
*OrbiQuant IA Trading Platform*
|