Skip to main content
Glama
COMPARACION_ANTES_AHORA.py8.19 kB
#!/usr/bin/env python3 """ Comparación: Antes vs Ahora Demuestra la mejora en la función store_document_chunks """ print(""" ╔════════════════════════════════════════════════════════════════════╗ ║ COMPARACIÓN: ANTES vs AHORA ║ ╚════════════════════════════════════════════════════════════════════╝ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ❌ ANTES - Versión complicada y manual ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # El usuario tenía que hacer TODO esto manualmente: # 1️⃣ Obtener el documento doc = get_document(document_id) # 2️⃣ Dividir en chunks (MANUAL) chunks = [] content = doc['content'] chunk_size = 1000 for i in range(0, len(content), chunk_size): chunk = content[i:i+chunk_size] chunks.append({ 'index': len(chunks), 'content': chunk }) # 3️⃣ Para CADA chunk, llamar la función (MÚLTIPLES LLAMADAS) for chunk in chunks: await store_document_chunk( classroom_document_id=document_id, chunk_index=chunk['index'], # ❌ Usuario tiene que manejarlo content=chunk['content'], # ❌ Usuario tiene que dividirlo token_count=len(chunk['content'].split()) # ❌ Usuario calcula tokens ) # 🤯 PROBLEMAS: # - 50 líneas de código # - Múltiples llamadas a la API # - Propenso a errores # - Usuario debe manejar índices # - Usuario debe calcular tokens # - No hay overlap entre chunks # - Usuario debe hacer chunking inteligente ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ AHORA - Versión simple y automática ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # ¡SOLO UNA LÍNEA! result = await store_document_chunks( classroom_document_id=document_id ) # 🎉 VENTAJAS: # - 1 línea de código # - 1 llamada a la función # - TODO automático # - Sin errores manuales # - Chunking inteligente # - Overlap automático # - Generación de embeddings automática # - Almacenamiento automático ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📊 COMPARACIÓN DE CÓDIGO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┌─────────────────────┬─────────────┬──────────────┐ │ Métrica │ ANTES │ AHORA │ ├─────────────────────┼─────────────┼──────────────┤ │ Líneas de código │ ~50 │ 1 │ │ Llamadas a función │ N chunks │ 1 │ │ Complejidad │ Alta │ Baja │ │ Manejo de errores │ Manual │ Automático │ │ Overlap de chunks │ Manual │ Automático │ │ Cálculo de tokens │ Manual │ Automático │ │ Índices de chunks │ Manual │ Automático │ └─────────────────────┴─────────────┴──────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 EJEMPLO REAL ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Documento: "Manual de IA.pdf" (15,000 caracteres) ANTES: ------ 1. Obtener documento de DB [Manual] 2. Leer contenido [Manual] 3. Dividir en 15 chunks [Manual] 4. Para cada chunk: - Calcular índice [Manual] - Generar embedding [15 llamadas] - Calcular tokens [Manual] - Almacenar en DB [15 llamadas] Total: ~50 líneas de código + 30 llamadas a funciones Tiempo de desarrollo: ~30 minutos Probabilidad de error: ALTA 🔴 AHORA: ------ result = await store_document_chunks( classroom_document_id="xxx-xxx-xxx", chunk_size=1000, chunk_overlap=200 ) Total: 1 línea de código + 1 llamada a función Tiempo de desarrollo: ~10 segundos Probabilidad de error: BAJA 🟢 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 💡 RESULTADO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ { "success": true, "message": "Documento procesado y almacenado en 15 chunks", "classroom_document_id": "xxx-xxx-xxx", "total_chunks": 15, "chunks": [ { "chunk_id": "abc-123", "chunk_index": 0, "content_length": 987 }, // ... 14 más ], "document_length": 15000, "chunk_size": 1000, "chunk_overlap": 200 } ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🚀 MEJORA GENERAL ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ 98% menos código ✅ 93% menos llamadas a funciones ✅ 100% automático ✅ Chunking inteligente con overlap ✅ Manejo de errores incluido ✅ Más fácil de usar ✅ Más mantenible ✅ Mejor experiencia de desarrollador ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📚 DOCUMENTACIÓN ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Para más detalles, consulta: 📄 STORE_DOCUMENT_CHUNKS_UPDATE.md - Documentación completa 🧪 test_store_document_chunks.py - Test de ejemplo 📝 README.md - Actualizado con la nueva función ╔════════════════════════════════════════════════════════════════════╗ ║ ¡La nueva versión es MUCHO mejor! 🎉 ║ ╚════════════════════════════════════════════════════════════════════╝ """)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JpAboytes/estudIA-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server