Buenas prácticas
Flujo recomendado
1. (opcional) GET /v1/history?q=<pregunta> → ¿ya existe una respuesta guardada?
2. POST /v1/ask → solo si no existe (gasta LLM)
3. ejecutar sql + params en tu base de datos (usuario de solo lectura)
4. POST /v1/feedback → 👍 / 👎 del usuario
Lista de verificación
- La llamada a Datafala sale de tu backend; la API key nunca llega al navegador ni a la app.
- El SQL se ejecuta con un usuario de solo lectura, con acceso solo a las tablas registradas y tiempo máximo por consulta.
-
paramsse pasa siempre al driver, incluso vacío. -
end_userse envía en todas las preguntas, generado con HMAC y un secreto fijo del servidor. - Si el sistema es multiempresa, hay RLS, vistas filtradas o acceso restringido (consulta Alcance de datos).
- El timeout de tu cliente HTTP en
/v1/askes de al menos 60 s, y un timeout no se repite automáticamente. - Los errores se tratan por el
code, conRetry-Afterrespetado en429y503. - El
request_id(o el headerX-Request-ID) se registra en tus logs. - El usuario puede dar 👍 / 👎, enviado a
/v1/feedback.
Ahorra tokens
- Reutiliza antes de generar. Las preguntas repetidas pueden venir de
/v1/history?q=o de tu propia caché porrequest_id. - Cuidado con las fechas relativas al reutilizar: los
paramsguardados son los del día de la pregunta. - Muestra la
explanational usuario. Le ayuda a notar cuando la consulta no es lo que quería, y el 👎 se convierte en señal para que el administrador mejore el contexto y los ejemplos.