Objetivo técnico
Al terminar podrás revisar una API RAG antes de compartirla: validarás input, protegerás secretos y documentarás cómo reproducir el proyecto. Seguridad y documentación se encuentran en la misma pregunta: ¿otra persona puede usarlo sin acceder a información que no le corresponde?
Antes de empezar
Necesitas un repositorio de práctica con .gitignore, .env.example, una ruta HTTP y README. Usa claves falsas. Si sospechas que una clave real estuvo en Git, debes rotarla antes de continuar.
Paso a paso
- Define un inventario de datos: preguntas del usuario, documentos, embeddings, logs y credenciales.
- Para cada dato, escribe quién puede leerlo y cuánto tiempo debe conservarse.
- Verifica que la ruta valide antes de llamar al proveedor:
if (typeof message !== 'string' || message.trim().length < 3) {
return reply.code(400).send({ code: 'VALIDATION_ERROR' });
}
- Confirma auth y rate limit en el endpoint costoso, no solo en la interfaz.
- Busca secretos antes de publicar con
git diff --cachedy una revisión de patrones comoAPI_KEY=. No imprimas el valor encontrado. - Completa el README: objetivo, instalación,
.env.example, comandos, contrato, corpus permitido, reindexación y límites conocidos. - Pide a otra persona que siga el README en una carpeta limpia.
Verificación
Una petición inválida debe fallar antes de gastar tokens. Una persona nueva debe ejecutar tests y una consulta de ejemplo sin pedirte instrucciones privadas. Los logs no deben contener claves, preguntas completas ni chunks sensibles.
Errores frecuentes
- Confiar en que ocultar un botón protege el endpoint.
- Guardar documentos personales en logs para “debuggear”.
- Documentar solo el camino feliz y omitir corpus, costos o reindexación.
Práctica
Escribe una tabla de amenazas con tres filas: abuso de costo, acceso a documentos ajenos y prompt con datos sensibles. Para cada una define prevención, señal observable y respuesta.
Puente al RAG
El proyecto final del Bloque 5 debe declarar qué sabe, qué no sabe y cómo actualiza su corpus. Este gate evita que una demo funcional se presente como un sistema seguro.