# 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