274 lines
7.0 KiB
Markdown
274 lines
7.0 KiB
Markdown
|
|
# Reporte de Despliegue: Tablas de Contexto IA
|
||
|
|
**Sistema TZZR**
|
||
|
|
**Fecha:** 2024-12-24
|
||
|
|
**Responsable:** ARCHITECT
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Resumen Ejecutivo
|
||
|
|
|
||
|
|
Se han desplegado exitosamente las tablas de contexto IA en **2 de 3 servidores** del sistema TZZR.
|
||
|
|
|
||
|
|
### Estado del Despliegue
|
||
|
|
|
||
|
|
| Servidor | IP | Estado | Base de Datos | Método de Acceso |
|
||
|
|
|----------|-----|--------|---------------|------------------|
|
||
|
|
| **architect** | 69.62.126.110 | ✅ COMPLETADO | tzzr | Docker (windmill-db-1) |
|
||
|
|
| **corp** | 92.112.181.188 | ✅ COMPLETADO | tzzr | PostgreSQL 16 (host) |
|
||
|
|
| **deck** | 72.62.1.113 | ⚠️ PENDIENTE | N/A | SSH no disponible |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Tablas Desplegadas
|
||
|
|
|
||
|
|
Se crearon 5 tablas principales en cada servidor:
|
||
|
|
|
||
|
|
### 1. **ia_contexts** - Contextos de conversación
|
||
|
|
- Almacena información de sesiones de agentes IA
|
||
|
|
- Campos: context_id, agent_name, user_id, session_id, metadata, status
|
||
|
|
- Constraint: status IN ('active', 'archived', 'deleted')
|
||
|
|
|
||
|
|
### 2. **ia_messages** - Mensajes de conversación
|
||
|
|
- Historial completo de interacciones
|
||
|
|
- Campos: context_id, role, content, timestamp, token_count, model, metadata
|
||
|
|
- Constraint: role IN ('user', 'assistant', 'system', 'tool')
|
||
|
|
- Foreign Key: context_id → ia_contexts(context_id) ON DELETE CASCADE
|
||
|
|
|
||
|
|
### 3. **ia_embeddings** - Embeddings vectoriales
|
||
|
|
- Para búsqueda semántica de mensajes
|
||
|
|
- Campos: context_id, message_id, embedding_vector, content_hash
|
||
|
|
- Foreign Keys: context_id, message_id con CASCADE
|
||
|
|
|
||
|
|
### 4. **ia_tool_calls** - Registro de herramientas
|
||
|
|
- Tracking de todas las llamadas a herramientas
|
||
|
|
- Campos: context_id, message_id, tool_name, tool_input, tool_output, execution_time_ms, success, error_message
|
||
|
|
- Foreign Keys: context_id, message_id con CASCADE
|
||
|
|
|
||
|
|
### 5. **ia_context_metrics** - Métricas agregadas
|
||
|
|
- Estadísticas por contexto
|
||
|
|
- Campos: context_id, total_messages, total_tokens, total_tool_calls, avg_response_time_ms, last_activity
|
||
|
|
- Foreign Key: context_id con CASCADE
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Índices Creados
|
||
|
|
|
||
|
|
Para optimizar el rendimiento de consultas:
|
||
|
|
|
||
|
|
### ia_contexts
|
||
|
|
- idx_ia_contexts_agent (agent_name)
|
||
|
|
- idx_ia_contexts_session (session_id)
|
||
|
|
- idx_ia_contexts_created (created_at)
|
||
|
|
- idx_ia_contexts_status (status)
|
||
|
|
|
||
|
|
### ia_messages
|
||
|
|
- idx_ia_messages_context (context_id)
|
||
|
|
- idx_ia_messages_timestamp (timestamp)
|
||
|
|
- idx_ia_messages_role (role)
|
||
|
|
|
||
|
|
### ia_embeddings
|
||
|
|
- idx_ia_embeddings_context (context_id)
|
||
|
|
- idx_ia_embeddings_hash (content_hash)
|
||
|
|
|
||
|
|
### ia_tool_calls
|
||
|
|
- idx_ia_tool_calls_context (context_id)
|
||
|
|
- idx_ia_tool_calls_tool (tool_name)
|
||
|
|
- idx_ia_tool_calls_timestamp (timestamp)
|
||
|
|
|
||
|
|
### ia_context_metrics
|
||
|
|
- idx_ia_context_metrics_context (context_id)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Funciones y Triggers
|
||
|
|
|
||
|
|
### 1. update_ia_contexts_updated_at()
|
||
|
|
- Actualiza automáticamente el campo `updated_at` en tabla ia_contexts
|
||
|
|
- Trigger: BEFORE UPDATE ON ia_contexts
|
||
|
|
|
||
|
|
### 2. update_ia_context_metrics()
|
||
|
|
- Actualiza automáticamente las métricas cuando se inserta un mensaje
|
||
|
|
- Incrementa contadores de mensajes y tokens
|
||
|
|
- Actualiza last_activity
|
||
|
|
- Trigger: AFTER INSERT ON ia_messages
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Vistas
|
||
|
|
|
||
|
|
### ia_context_summary
|
||
|
|
Vista consolidada que combina:
|
||
|
|
- Información del contexto (ia_contexts)
|
||
|
|
- Métricas agregadas (ia_context_metrics)
|
||
|
|
- Campos: context_id, agent_name, session_id, created_at, updated_at, status, message_count, total_tokens, tool_calls, last_activity
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Detalles por Servidor
|
||
|
|
|
||
|
|
### ✅ ARCHITECT (69.62.126.110)
|
||
|
|
|
||
|
|
**Base de Datos:** PostgreSQL 16 (Docker)
|
||
|
|
**Contenedor:** windmill-db-1
|
||
|
|
**Database:** tzzr
|
||
|
|
**Usuario:** postgres
|
||
|
|
|
||
|
|
**Método de despliegue:**
|
||
|
|
```bash
|
||
|
|
docker exec -i windmill-db-1 psql -U postgres -d tzzr < ia_context_schema.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verificación:**
|
||
|
|
```bash
|
||
|
|
# Tablas: 5
|
||
|
|
# Vistas: 1 (ia_context_summary)
|
||
|
|
# Registros: 0 (tablas vacías)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ✅ CORP (92.112.181.188)
|
||
|
|
|
||
|
|
**Base de Datos:** PostgreSQL 16 (Host)
|
||
|
|
**Database:** tzzr
|
||
|
|
**Usuario:** postgres
|
||
|
|
|
||
|
|
**Método de despliegue:**
|
||
|
|
```bash
|
||
|
|
scp ia_context_schema.sql root@92.112.181.188:/tmp/
|
||
|
|
sudo -u postgres psql -d tzzr -f /tmp/ia_context_schema.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verificación:**
|
||
|
|
```bash
|
||
|
|
# Tablas: 5
|
||
|
|
# Vistas: 1 (ia_context_summary)
|
||
|
|
# Registros: 0 (tablas vacías)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### ⚠️ DECK (72.62.1.113)
|
||
|
|
|
||
|
|
**Estado:** PENDIENTE
|
||
|
|
**Razón:** SSH no disponible
|
||
|
|
**Acción requerida:** Habilitar SSH mediante acceso físico o consola
|
||
|
|
|
||
|
|
**Script preparado:** `/home/orchestrator/enable-ssh-deck.sh`
|
||
|
|
|
||
|
|
**Pasos para completar:**
|
||
|
|
1. Acceder al servidor DECK mediante consola física/KVM
|
||
|
|
2. Ejecutar: `bash enable-ssh-deck.sh`
|
||
|
|
3. Verificar acceso SSH: `ssh -i ~/.ssh/tzzr root@72.62.1.113`
|
||
|
|
4. Desplegar schema:
|
||
|
|
```bash
|
||
|
|
scp ia_context_schema.sql root@72.62.1.113:/tmp/
|
||
|
|
ssh root@72.62.1.113 "sudo -u postgres psql -d tzzr -f /tmp/ia_context_schema.sql"
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Comandos de Verificación
|
||
|
|
|
||
|
|
### Verificar tablas creadas:
|
||
|
|
```sql
|
||
|
|
SELECT tablename
|
||
|
|
FROM pg_tables
|
||
|
|
WHERE schemaname='public' AND tablename LIKE 'ia_%'
|
||
|
|
ORDER BY tablename;
|
||
|
|
```
|
||
|
|
|
||
|
|
### Verificar vistas:
|
||
|
|
```sql
|
||
|
|
SELECT table_name
|
||
|
|
FROM information_schema.views
|
||
|
|
WHERE table_schema='public' AND table_name LIKE 'ia_%';
|
||
|
|
```
|
||
|
|
|
||
|
|
### Consultar resumen de contextos:
|
||
|
|
```sql
|
||
|
|
SELECT * FROM ia_context_summary;
|
||
|
|
```
|
||
|
|
|
||
|
|
### Verificar triggers:
|
||
|
|
```sql
|
||
|
|
SELECT trigger_name, event_manipulation, event_object_table
|
||
|
|
FROM information_schema.triggers
|
||
|
|
WHERE trigger_schema='public' AND trigger_name LIKE '%ia_%';
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Próximos Pasos
|
||
|
|
|
||
|
|
1. ✅ **COMPLETADO** - Desplegar en architect
|
||
|
|
2. ✅ **COMPLETADO** - Desplegar en corp
|
||
|
|
3. ⏳ **PENDIENTE** - Habilitar SSH y desplegar en deck
|
||
|
|
4. 🔄 **SIGUIENTE** - Integrar con orchestrator para comenzar a registrar contextos
|
||
|
|
5. 🔄 **SIGUIENTE** - Implementar servicio de embeddings para búsqueda semántica
|
||
|
|
6. 🔄 **SIGUIENTE** - Crear dashboards de métricas en Grafana
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Notas Técnicas
|
||
|
|
|
||
|
|
### Arquitectura de Datos
|
||
|
|
- Todas las tablas usan CASCADE en DELETE para mantener integridad referencial
|
||
|
|
- Los embeddings vectoriales están preparados para integración con servicios de vector search
|
||
|
|
- Las métricas se actualizan automáticamente mediante triggers
|
||
|
|
- Sistema preparado para multi-agente con campo `agent_name`
|
||
|
|
|
||
|
|
### Seguridad
|
||
|
|
- Permisos por defecto de PostgreSQL
|
||
|
|
- TODO: Configurar usuarios específicos por servidor
|
||
|
|
- TODO: Implementar políticas de retención de datos
|
||
|
|
|
||
|
|
### Performance
|
||
|
|
- Índices creados en campos de búsqueda frecuente
|
||
|
|
- Vista materializada candidata para ia_context_summary si el volumen crece
|
||
|
|
- Preparado para particionado por fecha si es necesario
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Metadata del Despliegue
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"deployment_date": "2024-12-24T00:00:00Z",
|
||
|
|
"architect": "ARCHITECT",
|
||
|
|
"schema_version": "1.0",
|
||
|
|
"servers_deployed": 2,
|
||
|
|
"servers_pending": 1,
|
||
|
|
"total_tables": 5,
|
||
|
|
"total_views": 1,
|
||
|
|
"total_functions": 2,
|
||
|
|
"total_triggers": 2,
|
||
|
|
"total_indexes": 14,
|
||
|
|
"servers": {
|
||
|
|
"architect": {
|
||
|
|
"ip": "69.62.126.110",
|
||
|
|
"status": "deployed",
|
||
|
|
"db_type": "docker",
|
||
|
|
"container": "windmill-db-1"
|
||
|
|
},
|
||
|
|
"corp": {
|
||
|
|
"ip": "92.112.181.188",
|
||
|
|
"status": "deployed",
|
||
|
|
"db_type": "host",
|
||
|
|
"pg_version": "16.11"
|
||
|
|
},
|
||
|
|
"deck": {
|
||
|
|
"ip": "72.62.1.113",
|
||
|
|
"status": "pending",
|
||
|
|
"reason": "ssh_unavailable"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Preparado por:** ARCHITECT
|
||
|
|
**Sistema:** TZZR
|
||
|
|
**Timestamp:** 2024-12-24T00:00:00Z
|