
🐍 Los decoradores de Python son la forma más elegante de optimizar tus apps con LLMs sin ensuciar el código principal.
Trabajar con LLMs implica lidiar con APIs lentas, costosas e impredecibles. Estos 5 decoradores resuelven los problemas más comunes:
1. @lru_cache (in-memory caching) — evita llamadas repetidas a la API para el mismo prompt en la misma sesión. Si mandás el mismo texto dos veces, el segundo es instantáneo.
2. @cache.memoize (disk caching con diskcache) — igual que el anterior pero persiste entre ejecuciones, guardando en SQLite. Ideal cuando tu script se ejecuta múltiples veces.
3. @retry con tenacity — maneja fallos de red, timeouts y “502 Bad Gateway” automáticamente con backoff exponencial. Define cuántos reintentos y cuánto esperar entre ellos.
4. @limits + @sleep_and_retry (rate limiting) — controla la frecuencia de llamadas para no superar los RPM (requests per minute) del proveedor. El 4to request espera automáticamente hasta que pueda pasar.
5. @prompt con magentic + Pydantic — convierte una función en una llamada LLM directamente, con output estructurado validado por Pydantic. Sin boilerplate, sin parsing manual.
💡 Explicación en pocas palabras#
Cada decorator encapsula un problema de infraestructura que de otra manera estarías resolviendo inline con try/except, time.sleep() y condicionales. El resultado es código más limpio, más testeable y más robusto para producción.
Más información en el link 👇

