Integrar IA en una web significa conectar una interfaz y un backend con un modelo, una fuente de datos o una herramienta. El navegador no debe contener secretos ni decidir permisos. La aplicación recibe la petición, construye el contexto, llama al servicio y valida la respuesta antes de mostrarla o actuar.
El recorrido de una solicitud
El usuario envía una entrada, el backend autentica y aplica límites, y la integración prepara instrucciones y contexto. Después llega una respuesta que puede contener texto, estructura o una solicitud de herramienta. La aplicación debe comprobar el resultado y tratar los datos generados como no confiables.
Secretos y autenticación
Las claves de API se guardan en el servidor o en un almacén de secretos, no en JavaScript público. Limita permisos, rota claves y separa entornos. Un usuario no debería poder alterar el endpoint o el modelo mediante campos que la aplicación acepta sin validar.
Timeouts, límites y reintentos
Una API externa puede tardar, devolver error o limitar solicitudes. Define timeout, backoff y número máximo de reintentos. Un circuit breaker y una respuesta alternativa evitan que una caída externa bloquee toda la web. También limita tokens, tamaño de entrada y gasto.
Contexto y datos enviados
Envía solo la información necesaria para resolver la tarea. Revisa si el texto contiene datos personales, secretos o contenido de terceros. Una conversación larga puede aumentar coste y latencia; resumir o recuperar solo documentos relevantes puede ser más adecuado.
Validar antes de usar la salida
Si la respuesta debe ser JSON, valida esquema y valores. Si propone una acción, comprueba autorización e idempotencia en el backend. Un modelo puede producir una estructura válida con un dato falso, por lo que el formato no sustituye la verificación semántica.
Prueba y observabilidad
Mide latencia por etapa, errores, tokens, coste, uso y derivaciones. Prueba con respuestas largas, servicio no disponible, entradas mal formadas y usuarios no autorizados. Registra lo necesario para diagnosticar sin guardar automáticamente todo el contenido.
Cuándo no integrarla
Si una regla determinista resuelve la tarea con menos coste y más previsibilidad, no necesitas un modelo. Para funciones sensibles, la IA puede proponer y una regla o persona decidir. La integración debe aportar valor verificable, no solo una interfaz novedosa.
Estado de conversación
Si la web mantiene historial, decide dónde se guarda y cuánto contexto se envía. El navegador no debe ser la única fuente de estado ni almacenar secretos. Resume o recorta conversaciones con una política clara para evitar costes y contexto innecesario.
Contenido externo no es una instrucción
Documentos, comentarios y páginas recuperadas pueden contener texto que intenta influir en el modelo. Trátalos como datos y no como autorizaciones. El backend debe conservar límites de herramienta y permisos aunque la salida del modelo pida una acción distinta.
Formato y validación
Si la integración espera JSON, valida tipos, campos obligatorios, rangos y referencias. Una estructura válida puede contener un importe erróneo o un identificador inexistente. Antes de guardar, contrasta con la base de datos o con el sistema que tiene autoridad.
Degradación controlada
Define qué verá el usuario cuando la API no responda, cuando supere el límite o cuando la confianza sea baja. Puede intervenir una persona, utilizarse una respuesta fija o guardarse una solicitud para revisión. La experiencia no debe depender de que el proveedor esté siempre disponible.
Estado y sesiones
Define si la conversación se guarda, cuánto dura y qué parte se envía en cada solicitud. No uses el navegador como almacén de secretos ni confíes en un identificador enviado por el cliente para decidir permisos. El backend debe reconstruir el contexto permitido.
Contenido no confiable
Comentarios, documentos y páginas externas pueden contener instrucciones dirigidas al modelo. Trátalos como datos. Las herramientas y sus permisos deben permanecer bajo control de la aplicación aunque el modelo solicite otra cosa.
Errores visibles y seguros
Un timeout o una respuesta inválida debe producir una salida manejable. No muestres claves, prompts internos ni trazas al usuario. Registra el detalle técnico en un canal protegido y limita reintentos para evitar costes repetidos.
Validar acciones
Si la salida propone enviar, borrar o cambiar algo, el servidor debe comprobar usuario, autorización, valores y estado actual. El modelo no debe poder saltarse esa capa mediante texto generado.
Medir la dependencia
Registra tokens, latencia, errores, reintentos y coste por función. Así puedes decidir si una regla determinista, una caché o una revisión humana es más adecuada.
Separar propuesta y ejecución
Un modelo puede proponer texto o una acción, pero el backend decide si es válida. Comprueba permisos, estado y formato antes de guardar. Una respuesta estructurada no garantiza que sus valores sean correctos.
Documenta cada integración y su ruta de error.
Contenido no confiable y permisos
Comentarios, documentos y páginas externas pueden contener instrucciones dirigidas al modelo. Trátalos como datos y conserva los permisos de herramientas en el backend. Una solicitud generada no puede autorizar por sí sola una modificación.
Observación de la integración
Registra latencia, tokens, errores, reintentos, coste y derivaciones. Prueba servicio caído, entrada larga, respuesta inválida y usuario no autorizado. La integración debe tener una salida controlada en todos esos casos.
El sistema debe separar propuesta y ejecución. El backend valida identidad, permisos y valores antes de guardar o actuar. La respuesta generada no es una autorización.

