Mejores Prácticas para LLMs
Reglas para construir aplicaciones LLM fiables, seguras y rentables. Revisa esta lista durante la revisión del diseño y antes del lanzamiento a producción.
Cómo Usar Esta Lista
- Las reglas A-B cubren seguridad e higiene de la API.
- Las reglas C-D rigen la calidad del prompt y el manejo de la salida.
- Las reglas E-F cubren costos, evaluación y operaciones.
- Revisa cuando agregues un nuevo modelo, proveedor o función.
A - Seguridad y Claves
- Carga las claves de API desde variables de entorno. Nunca incluyas claves en git; usa gestores de secretos en producción.
- Rota las claves si se exponen. Trata los commits accidentales como incidentes: revoca y emite de nuevo inmediatamente.
- Sanea la entrada del usuario antes de incluirla en los prompts. Usa delimitadores; nunca concatenes la entrada del usuario en prompts del sistema.
- Valida las salidas del modelo antes de la ejecución. Nunca uses
eval()oexec()código generado por LLM sin sandboxing. - Registra hashes de prompts, no prompts completos. Protege los datos del usuario en los logs; registra lo suficiente para depuración.
B - Uso de la API
- Establece
max_tokensen cada solicitud. Evita la generación descontrolada y sorpresas en los costos. - Maneja los límites de tasa con retroceso exponencial. Captura errores 429; usa semáforos para la concurrencia.
- Usa el nivel de modelo correcto. Mini/haiku para tareas simples; completo/sonnet solo cuando sea necesario.
- Establece tiempos de espera en las llamadas a la API. Evita que las solicitudes colgadas bloqueen tu aplicación.
- Usa clientes asíncronos en servidores web.
AsyncOpenAIen FastAPI; nunca bloquees el bucle de eventos.
C - Calidad del Prompt
- Escribe prompts de sistema específicos. Rol, restricciones, formato de salida y comportamiento en caso de fallo.
- Usa
temperature=0para extracción y clasificación. Reserva temperaturas más altas para tareas creativas. - Basa las respuestas en contexto recuperado (RAG). Indica "di que no lo sé" cuando el contexto sea insuficiente.
- Versiona los prompts en git. Rastrea los cambios de prompts como el código; realiza pruebas A/B de variantes.
- Itera los prompts antes del fine-tuning. La ingeniería de prompts es más barata y rápida de iterar.
D - Manejo de Salida
- Valida la salida estructurada con Pydantic. Nunca confíes en el JSON crudo del modelo.
- Reintenta en caso de fallo de validación (máximo 3). Incluye el error de validación en el prompt de reintento.
- Maneja contenido nulo y
tool_calls. Ramifica segúnfinish_reasony el tipo de respuesta. - Agrega puntuaciones de confianza o revisión humana para campos de alto riesgo. La salida del modelo es probabilística, no garantizada.
- Transmite a los usuarios para respuestas largas. Mejora la latencia percibida con la transmisión de tokens.
E - Costo y Rendimiento
- Registra el uso de tokens en cada llamada. Rastrea
response.usagepor función para la atribución de costos. - Recorta el historial de conversación. Resume o descarta turnos antiguos para permanecer dentro de los límites de contexto.
- Caché de consultas repetidas. Hashea el prompt + modelo; devuelve la respuesta en caché cuando sea idéntica.
- Procesa trabajos sin conexión en lotes. Usa la API de Batch para incrustaciones y evaluación masivas.
- Considera modelos locales para tareas simples de alto volumen. Ollama/vLLM cuando el costo de la API supere el costo de la GPU.
F - Evaluación y Seguridad
- Crea un conjunto de evaluación antes de desplegar. Mínimo 20-50 pares de entrada/salida esperada etiquetados.
- Mide la precisión, no las "vibes". Métricas automatizadas en el conjunto de evaluación para cada cambio de prompt.
- Prueba casos extremos. Entrada vacía, entrada muy larga, prompts adversarios, texto no inglés.
- Implementa filtrado de contenido. Maneja rechazos, violaciones de políticas y salidas dañinas con gracia.
- Monitorea la calidad en producción. Rastrea la retroalimentación del usuario, las tasas de error y los fallos de validación de salida.
Preguntas Frecuentes
¿Cuál es el error de seguridad número uno en LLMs?
- Codificar claves de API en el código fuente.
- Las claves se incluyen en git y son escaneadas por bots.
- Usa variables de entorno y gestores de secretos.
¿Cómo prevengo la inyección de prompts?
- Separa claramente el contenido del sistema y del usuario.
- Usa delimitadores XML para la entrada del usuario.
- Nunca sigas instrucciones incrustadas en datos del usuario.
¿Cuándo debo usar RAG en lugar de fine-tuning?
- RAG: las respuestas necesitan datos actuales o privados.
- Fine-tuning: formato/estilo consistente a alto volumen.
- Empieza con RAG + ingeniería de prompts.
¿Cómo pruebo las funciones de LLM?
- Conjunto de evaluación con salidas esperadas.
- Mock de API en pruebas unitarias; pruebas de integración con fixtures grabadas.
- Pruebas de regresión en cambios de prompt.
¿Qué debo registrar?
- Modelo, recuentos de tokens, latencia, versión del prompt, resultado de validación.
- No prompts completos si contienen PII del usuario.
¿Cómo manejo los rechazos del modelo?
- Verifica
finish_reasony contenido vacío. - Muestra un mensaje de respaldo amigable para el usuario.
- Registra para revisión pero no reintentes indefinidamente.
¿Debo usar un proveedor o muchos?
- Empieza con un proveedor por simplicidad.
- Agrega la abstracción LiteLLM cuando necesites fallback u optimización de costos.
¿Cómo configuro un entorno de desarrollo sin costos de API?
- Ollama para desarrollo local.
- Respuestas simuladas en pruebas unitarias.
- Claves de API de desarrollo separadas con límites de gasto.
¿Qué es un eval mínimo viable?
- 20 ejemplos que cubren el camino feliz y casos extremos.
- Puntuación automatizada (coincidencia exacta, F1, o LLM-como-juez).
- Ejecuta en cada cambio de prompt o modelo.
¿Cómo reviso un PR de función LLM?
- Verifica el manejo de claves, validación de salida, manejo de errores y registro.
- Verifica que el conjunto de evaluación exista y pase.
- Prueba con entradas adversarias.
¿Cuándo está bien ejecutar código generado por LLM?
- Nunca directamente en producción sin sandboxing.
- Usa contenedores aislados con límites de recursos.
- Revisión humana para cualquier cosa que toque la infraestructura.
¿Cómo documento una función LLM?
- Modelo, versión del prompt, comportamiento esperado, limitaciones conocidas.
- Precisión de la evaluación, costo por solicitud y latencia p50/p99.
Relacionados
- Ingeniería de Prompts - patrones de prompts
- Salida Estructurada - validación de salida
- Tokens, Costos y Límites de Tasa - presupuestación
- Evaluación y Guardrails - medición de calidad
- Mejores Prácticas para Agentes de IA - reglas específicas para agentes
Versiones de Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.