Conceptoactiveverificado 2026-04-15#backend#auto-plan#performance#ai#gemini#optimization#map-editor#audit-abril-2026
Auto-Plan Performance Optimization
Fecha: 29-01-2026
Versión: v6.0.9
Archivo principal: blueprints/services/autoplan.py
Resumen
Optimizaciones aplicadas al sistema Auto-Plan para reducir la latencia de análisis de blueprints con Gemini AI.
Problema Original
| Métrica | Valor Original |
|---|---|
| Tiempo total | ~76 segundos |
| Tamaño imagen enviada | 1.47 MB (PNG) |
| Dimensión máxima | 3072 px |
| Formato | PNG |
Optimizaciones Aplicadas
1. Reducción de MAX_DIMENSION (3072 → 2048)
# Antes
MAX_DIMENSION = 3072
# Después
MAX_DIMENSION = 2048
Impacto: Imagen 2953x2125 se redimensiona a 2048x1473 (~50% menos píxeles)
2. Cambio de formato PNG → JPEG
# Antes
img.save(img_bytes, format='PNG')
# Después
img.save(img_bytes, format='JPEG', quality=90, optimize=True)
Impacto: Reducción de ~75% en tamaño de archivo (1.47MB → 368KB)
3. Timing Logs para Debugging
import time as _time
t_start = _time.time()
# ... procesamiento ...
t_prep = _time.time() - t_start
logger.info(f"[AutoPlan] Processed image: {img.size}, format=JPEG, size={img_size_kb:.1f}KB (prep: {t_prep:.2f}s)")
# ... llamada API ...
t_api_start = _time.time()
response = client.models.generate_content(...)
t_api = _time.time() - t_api_start
logger.info(f"[AutoPlan] Gemini API completed in {t_api:.2f}s ({len(text_response)} chars)")
Resultados
| Métrica | Antes | Después | Mejora |
|---|---|---|---|
| Tamaño imagen | 1.47 MB | 368 KB | -75% |
| Dimensiones | 2953x2125 | 2048x1473 | -50% píxeles |
| Tiempo preparación | N/A | 0.48s | Medible |
| Tiempo API Gemini | N/A | 67.31s | Medible |
| Tiempo total | 76s | 68s | -10% |
Distribución del Tiempo (Post-Optimización)
Total: 68.02s
├── Preparación imagen: 0.48s (0.7%)
├── Gemini API: 67.31s (98.9%)
└── Procesamiento DB: ~0.23s (0.4%)
Conclusión: El 99% del tiempo es la API de Gemini. Las optimizaciones de imagen reducen la latencia de transmisión pero el procesamiento de IA es el factor dominante.
Configuración Actual
# blueprints/services/autoplan.py
MAX_DIMENSION = 2048 # Máximo px en cualquier dimensión
FORMAT = 'JPEG' # Formato de salida
QUALITY = 90 # Calidad JPEG (0-100)
# Gemini API Config
generation_config = types.GenerateContentConfig(
temperature=0.1, # Baja para resultados determinísticos
top_p=0.95,
top_k=40,
max_output_tokens=16384, # 16K tokens (respuesta típica ~3K)
)
Posibles Mejoras Futuras
Baja prioridad (impacto mínimo)
| Mejora | Impacto Esperado | Riesgo |
|---|---|---|
| Reducir max_output_tokens a 8192 | Mínimo (~0%) | Bajo |
| Reducir JPEG quality a 85 | ~10% menos tamaño | Posible pérdida detalle |
| Reducir MAX_DIMENSION a 1536 | ~20% menos tiempo API | Pérdida de precisión |
Media prioridad (requiere testing)
| Mejora | Impacto Esperado | Riesgo |
|---|---|---|
| Caché de análisis por hash de imagen | 100% en repetidos | Complejidad |
| Modelo más rápido (gemini-2.0-flash) | Desconocido | Pérdida precisión |
| Prompt simplificado | ~10-20% menos tiempo | Menos detalle en análisis |
Alta prioridad (si se necesita <30s)
| Mejora | Impacto Esperado | Riesgo |
|---|---|---|
| Procesamiento en background (async) | UX inmediata | Complejidad UI |
| Pre-análisis con modelo ligero | Filtrar imágenes simples | Doble costo API |
Logs de Referencia
[AutoPlan] Using Gemini 3 Flash Preview for blueprint analysis
[AutoPlan] Input file: /app/static/uploads/blueprints/mapa1_1769701085.PNG
[AutoPlan] Original image size: (2953, 2125), mode: RGBA
[AutoPlan] Resized image from (2953, 2125) to (2048, 1473)
[AutoPlan] Converted image from RGBA/P to RGB
[AutoPlan] Processed image: (2048, 1473), format=JPEG, size=368.2KB (prep: 0.48s)
[AutoPlan] Sending to Gemini (attempt 1/3)...
[AutoPlan] Config: temperature=0.1, max_tokens=16384
[AutoPlan] Gemini API completed in 67.31s (11739 chars)
[AutoPlan] Detection summary: 68 racks, 67 connections, 16 walls, 18 texts, 2 symbols
Variables de Entorno
# .env
GEMINI_API_KEY=tu_api_key_aqui
# compose.yml
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
Comandos de Debug
# Ver logs de Auto-Plan en tiempo real
docker compose logs -f web | grep AutoPlan
# Ver últimos análisis
docker compose logs web --tail=100 | grep -E "AutoPlan|autoplan"
Última actualización: 29-01-2026 Autor: Claude Code Assistant
Véase también
- [[crearack-tech—backend—auto-plan-technical-reference]] — referencia técnica de Auto-Plan
- [[crearack-tech—architecture—performance-optimization]] — optimización de rendimiento a nivel arquitectura
- [[crearack-tech—agents—dev-map-editor]] — agente técnico del Map Editor
- [[concept—blueprints—map-editor]] — concepto del editor de planos Map Editor
- [[crearack—blueprints—auto-plan-ai]] — funcionalidad Auto-Plan AI para el usuario