feat: token count implement
This commit is contained in:
@@ -0,0 +1,298 @@
|
||||
# 🎯 Próximos Pasos - OpenCCB
|
||||
|
||||
Después de limpiar Bark, tienes 3 funcionalidades principales listas para usar:
|
||||
|
||||
---
|
||||
|
||||
## 1️⃣ Question Bank (Sin Audio)
|
||||
|
||||
### ¿Qué Hace?
|
||||
Banco centralizado de preguntas reutilizables para crear evaluaciones.
|
||||
|
||||
### Características
|
||||
- ✅ Crear preguntas de 10 tipos diferentes
|
||||
- ✅ Importar desde MySQL (sin duplicados)
|
||||
- ✅ Generar con IA (con verificación de 4 habilidades)
|
||||
- ✅ Filtrar por tipo, dificultad, skill
|
||||
- ✅ Tags y organización
|
||||
- ✅ Vista previa en cards
|
||||
|
||||
### Cómo Usar
|
||||
```
|
||||
1. Ve a /question-bank en Studio
|
||||
2. Click "Nueva Pregunta"
|
||||
3. Completa:
|
||||
- Tipo (multiple-choice, true-false, etc.)
|
||||
- Texto de la pregunta
|
||||
- Opciones (si aplica)
|
||||
- Respuesta correcta
|
||||
- Explicación
|
||||
- Dificultad
|
||||
- Tags
|
||||
4. Guarda
|
||||
```
|
||||
|
||||
### Endpoints Relacionados
|
||||
```
|
||||
GET /question-bank # Listar preguntas
|
||||
POST /question-bank # Crear pregunta
|
||||
PUT /question-bank/{id} # Actualizar pregunta
|
||||
DELETE /question-bank/{id} # Eliminar pregunta
|
||||
POST /question-bank/import-mysql # Importar desde MySQL
|
||||
```
|
||||
|
||||
### Archivos Clave
|
||||
```
|
||||
web/studio/src/app/question-bank/page.tsx
|
||||
web/studio/src/components/QuestionBank/
|
||||
services/cms-service/src/handlers_question_bank.rs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2️⃣ Token Usage Dashboard
|
||||
|
||||
### ¿Qué Hace?
|
||||
Monitoreo en tiempo real del consumo de IA (tokens, costos, usuarios).
|
||||
|
||||
### Características
|
||||
- ✅ Stats en tiempo real
|
||||
- ✅ Costos estimados en USD
|
||||
- ✅ Filtrar por rol (student/instructor/admin)
|
||||
- ✅ Alertas de alto consumo (>1M tokens)
|
||||
- ✅ Tabla detallada por usuario
|
||||
- ✅ Tracking de input vs output tokens
|
||||
|
||||
### Cómo Usar
|
||||
```
|
||||
1. Ve a /admin/token-usage
|
||||
2. Revisa las 4 stats cards:
|
||||
- Total Tokens
|
||||
- Requests IA
|
||||
- Costo USD
|
||||
- Usuarios Activos
|
||||
3. Filtra por rol si necesitas
|
||||
4. Ordena por Total Tokens para ver power users
|
||||
5. Revisa alertas de alto consumo
|
||||
```
|
||||
|
||||
### Endpoints Relacionados
|
||||
```
|
||||
GET /admin/token-usage # Ver uso de tokens
|
||||
```
|
||||
|
||||
### Archivos Clave
|
||||
```
|
||||
web/studio/src/app/admin/token-usage/page.tsx
|
||||
services/cms-service/src/handlers_admin.rs
|
||||
services/cms-service/migrations/20260316000002_ai_usage_tracking.sql
|
||||
```
|
||||
|
||||
### Límites Sugeridos
|
||||
```json
|
||||
{
|
||||
"student": {
|
||||
"daily_tokens": 50000,
|
||||
"monthly_tokens": 1000000
|
||||
},
|
||||
"instructor": {
|
||||
"daily_tokens": 200000,
|
||||
"monthly_tokens": 5000000
|
||||
},
|
||||
"admin": {
|
||||
"daily_tokens": 1000000,
|
||||
"monthly_tokens": 20000000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3️⃣ Importar Preguntas desde MySQL
|
||||
|
||||
### ¿Qué Hace?
|
||||
Trae preguntas del banco de diagnóstico de inglés (sistema legacy) a OpenCCB.
|
||||
|
||||
### Características
|
||||
- ✅ Importación masiva por curso
|
||||
- ✅ Detección automática de duplicados
|
||||
- ✅ Mapeo de tipos de pregunta
|
||||
- ✅ Tracking de origen (imported-mysql)
|
||||
- ✅ Skills automáticos
|
||||
- ✅ No reimporta preguntas existentes
|
||||
|
||||
### Cómo Usar
|
||||
```
|
||||
1. Ve a /question-bank
|
||||
2. Click "Importar desde MySQL"
|
||||
3. Selecciona curso de MySQL:
|
||||
- YOUNG LEARNERS 1
|
||||
- KIDS: BEGINNER 1
|
||||
- TEENS 1
|
||||
- ADULTS REGULAR
|
||||
- etc.
|
||||
4. Click "Importar Preguntas"
|
||||
5. Espera confirmación:
|
||||
"Imported 45 questions (skipped 12 already imported)"
|
||||
```
|
||||
|
||||
### Endpoints Relacionados
|
||||
```
|
||||
GET /question-bank/mysql-courses # Listar cursos MySQL
|
||||
POST /question-bank/import-mysql # Importar preguntas
|
||||
```
|
||||
|
||||
### Archivos Clave
|
||||
```
|
||||
web/studio/src/components/QuestionBank/MySQLImportModal.tsx
|
||||
services/cms-service/src/handlers_question_bank.rs
|
||||
```
|
||||
|
||||
### Estructura MySQL
|
||||
```sql
|
||||
-- Tablas de origen
|
||||
bancopreguntas (idPregunta, descripcion, idTipoPregunta)
|
||||
curso (idCursos, NombreCurso)
|
||||
plandeestudios (idPlanDeEstudios, Nombre)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Flujo Recomendado
|
||||
|
||||
### Paso 1: Importar desde MySQL (5 min)
|
||||
```
|
||||
1. Ve a /question-bank
|
||||
2. Importa preguntas de un curso
|
||||
3. Verifica que se importaron correctamente
|
||||
```
|
||||
|
||||
### Paso 2: Revisar Token Usage (2 min)
|
||||
```
|
||||
1. Ve a /admin/token-usage
|
||||
2. Revisa el consumo actual
|
||||
3. Identifica usuarios con alto consumo
|
||||
```
|
||||
|
||||
### Paso 3: Crear Preguntas Manuales (10 min)
|
||||
```
|
||||
1. Crea 2-3 preguntas manualmente
|
||||
2. Prueba diferentes tipos
|
||||
3. Agrega tags y skills
|
||||
4. Genera algunas con IA
|
||||
```
|
||||
|
||||
### Paso 4: Verificar Todo (5 min)
|
||||
```
|
||||
1. Filtra preguntas por tipo
|
||||
2. Revisa skills asignados
|
||||
3. Verifica token usage después de usar IA
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Comparativa de Funcionalidades
|
||||
|
||||
| Característica | Question Bank | Token Dashboard | MySQL Import |
|
||||
|---------------|---------------|-----------------|--------------|
|
||||
| Tiempo | 10 min | 2 min | 5 min |
|
||||
| Complejidad | Media | Baja | Baja |
|
||||
| Impacto | Alto | Medio | Alto |
|
||||
| Dependencias | Ninguna | IA logs | MySQL connection |
|
||||
|
||||
---
|
||||
|
||||
## 💡 Casos de Uso
|
||||
|
||||
### Para Instructores
|
||||
1. **Question Bank**: Crear preguntas para sus cursos
|
||||
2. **MySQL Import**: Traer preguntas existentes del sistema legacy
|
||||
3. **Token Dashboard**: Monitorear su propio uso de IA
|
||||
|
||||
### Para Admins
|
||||
1. **Token Dashboard**: Ver consumo global de IA
|
||||
2. **Question Bank**: Gestionar banco institucional
|
||||
3. **MySQL Import**: Migración masiva de contenido
|
||||
|
||||
### Para Desarrolladores
|
||||
1. **Token Dashboard**: Debug de llamadas a IA
|
||||
2. **Question Bank**: Testing de nuevos tipos de preguntas
|
||||
3. **MySQL Import**: Migración de datos
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Métricas de Éxito
|
||||
|
||||
### Question Bank
|
||||
- [ ] 100+ preguntas creadas
|
||||
- [ ] 5+ tipos de preguntas usados
|
||||
- [ ] 50% con skills asignados
|
||||
|
||||
### Token Dashboard
|
||||
- [ ] Dashboard accesible
|
||||
- [ ] Stats en tiempo real
|
||||
- [ ] Alertas funcionando
|
||||
|
||||
### MySQL Import
|
||||
- [ ] 0 duplicados
|
||||
- [ ] 100% preguntas importadas
|
||||
- [ ] Skills asignados correctamente
|
||||
|
||||
---
|
||||
|
||||
## 📁 Comandos Útiles
|
||||
|
||||
### Iniciar Studio
|
||||
```bash
|
||||
cd /home/juan/dev/openccb/web/studio
|
||||
npm run dev
|
||||
# Acceder: http://localhost:3000
|
||||
```
|
||||
|
||||
### Ver Logs del CMS
|
||||
```bash
|
||||
cd /home/juan/dev/openccb
|
||||
RUST_LOG=debug cargo run -p cms-service
|
||||
```
|
||||
|
||||
### Verificar Conexión MySQL
|
||||
```bash
|
||||
cd /home/juan/dev/openccb
|
||||
node check_mysql.js
|
||||
```
|
||||
|
||||
### Ver Token Usage en DB
|
||||
```bash
|
||||
docker-compose exec -T db psql -U user -d openccb_cms -c \
|
||||
"SELECT user_id, SUM(tokens_used), SUM(estimated_cost_usd)
|
||||
FROM ai_usage_logs
|
||||
GROUP BY user_id
|
||||
ORDER BY SUM(tokens_used) DESC
|
||||
LIMIT 10;"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎉 ¿Listo para Comenzar?
|
||||
|
||||
Elige una opción y comienza:
|
||||
|
||||
```bash
|
||||
# Opción 1: Question Bank
|
||||
# Ve a http://localhost:3000/question-bank
|
||||
|
||||
# Opción 2: Token Dashboard
|
||||
# Ve a http://localhost:3000/admin/token-usage
|
||||
|
||||
# Opción 3: Importar desde MySQL
|
||||
# Ve a /question-bank → "Importar desde MySQL"
|
||||
```
|
||||
|
||||
**Recomendación:** Comienza con **MySQL Import** para tener contenido base, luego explora **Question Bank** para crear preguntas nuevas, y finalmente monitorea todo con **Token Dashboard**.
|
||||
|
||||
---
|
||||
|
||||
**Documentación Relacionada:**
|
||||
- `docs/QUESTION_BANK_UI.md` - UI del Question Bank
|
||||
- `docs/TOKEN_USAGE_TRACKING.md` - Tracking de tokens
|
||||
- `docs/AUDIO_GUIDE_FOR_INSTRUCTORS.md` - Guía de audio (para cuando quieras implementar audio manual)
|
||||
Reference in New Issue
Block a user