157 lines
6.3 KiB
Markdown
157 lines
6.3 KiB
Markdown
# 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
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ OrbiQuant 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*
|
|
*OrbiQuant IA Trading Platform*
|