Unidad 5 / 11

Integración de API en la nube y LLM: chat, flujo y seguridad

Ganancias:

  • Capacidad para establecer una arquitectura LLM en la nube segura que no mantiene la clave API en el cliente sino que pasa por un proxy de back-end.
  • Capacidad para escribir integraciones sólidas que aumenten la velocidad percibida con la transmisión y manejen suavemente situaciones como tiempos de espera, errores de red y límites de velocidad.
  • Capacidad de reducir el costo acortando el token enviado y cuestionando la necesidad de datos personales antes de ir a la nube.

La IA en el dispositivo es poderosa pero limitada. Cuando desea agregar un verdadero “asistente de chat inteligente”, resúmenes de texto largos o producción creativa compleja a una aplicación, necesita modelos que sean demasiado grandes para caber en un teléfono. Aquí es donde entra en juego la IA en la nube: su aplicación se conecta a un modelo de lenguaje grande (LLM) a través de una API (interfaz de programación de aplicaciones: la interfaz estándar donde dos software envían y reciben datos entre sí). En esta unidad aprenderemos cómo integrar el LLM en la nube en una aplicación móvil de una manera segura, rápida y económica. El énfasis crítico estará en la seguridad: una integración LLM instalada incorrectamente podría filtrar su clave API y generar facturas por valor de miles de libras.

La regla de oro de la arquitectura: dejar la llave en manos del cliente

El error más peligroso que se puede cometer en la integración de la IA en la nube es incrustar la clave API (la contraseña secreta que autoriza el uso del servicio) directamente en el código de la aplicación móvil. Las aplicaciones móviles se descargan en el dispositivo del usuario y el código se puede leer mediante ingeniería inversa: analizando la aplicación compilada y viendo qué hay dentro de ella. Si su clave está dentro de la aplicación, alguien puede extraerla y realizar solicitudes ilimitadas desde su cuenta.

La arquitectura correcta es la siguiente: la aplicación móvil envía solicitudes a su propio servidor backend (el servidor proxy que usted controla); La clave reside únicamente en el servidor; El servidor va al servicio LLM y devuelve la respuesta a la aplicación. Este middleware también proporciona limitación de velocidad, prevención de abusos y control de costos.

Enfoque

donde esta la llave

Seguridad

La clave está en la aplicación (FALSO)

En cliente, público

Se filtra, el billete explota

La clave está en el backend (VERDADERO)

En el servidor, oculto

Seguro, controlable

Precaución: cuando le solicita a AI la integración de LLM en la nube, puede generar un ejemplo que escriba la clave directamente en el código de la aplicación para su conveniencia. Nunca tomes esto en vivo. Asegúrese de incluir la frase "La clave API no debe estar en el cliente, pase por el proxy backend" en el mensaje.

Streaming: aumentando la velocidad percibida

Las respuestas de un LLM pueden ser largas y tardar unos segundos en producirse en su totalidad. Dejar al usuario esperando con una pantalla en blanco es una mala experiencia. La solución es la transmisión por secuencias: muestra la respuesta palabra por palabra a medida que se genera. El usuario controla la ortografía del texto, como en ChatGPT; esto aumenta dramáticamente la velocidad y fluidez percibidas. Fluir en dispositivos móviles significa agregar piezas (tokens, el fragmento de texto producido por el modelo) desde el servidor a la interfaz a medida que llegan. Solicite explícitamente el flujo al imprimir la integración con la IA.

Consejo: agregue un botón de "pausa" en la respuesta de transmisión. El usuario debería poder detener la producción cuando obtenga la respuesta que desea; Esto mejora la experiencia y reduce los costos al eliminar la generación innecesaria de tokens. En medio de la respuesta larga, es posible que el usuario ya haya encontrado su respuesta.

Gestión de costes, retrasos y errores

Cloud LLM conlleva un costo monetario (tarifa por token) y un costo de tiempo (latencia) con cada solicitud. Tres disciplinas son esenciales. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Latencia: use transmisión, establezca tiempo de espera, notifique al usuario si la red es lenta. Error: interrupción de la red, el servicio puede devolver 429 (demasiadas solicitudes) o 500 (error del servidor); maneje cada uno con cuidado, no bloquee la aplicación. Además, LLM a veces da respuestas sin sentido o incorrectas (alucinaciones); Agregue una capa de verificación de la respuesta en áreas críticas.

tres mini casos

Caso 1: Clave filtrada. Una startup incorporó la clave OpenAI directamente en su aplicación React Native para salir rápidamente. Tres semanas después del lanzamiento de la aplicación, se realizó ingeniería inversa a la clave y se utilizó un valor de $2,400 de la noche a la mañana. El equipo tuvo que revocar la clave y configurar un proxy de backend. Lección: el atajo tomado por conveniencia se convirtió en la ruta más cara.

Caso 2: la deserción disminuyó con el flujo. Una aplicación educativa lanzó por primera vez su función de preguntas y respuestas sin transmisión; los usuarios salían después de 6 segundos de espera inactiva. Cuando se agregó el flujo, la primera palabra comenzó a aparecer en 0,8 segundos y la tasa de abandono cayó del 48 % al 12 %. Mismo modelo, misma velocidad, sólo una diferencia en la presentación.

Caso 3: Control de costos. Una aplicación enviaba todo el historial de chat al modelo con cada mensaje de usuario; En largas conversaciones, una sola solicitud alcanzó los 8.000 tokens, inflando el costo. Al enviar solo los últimos mensajes y un resumen, el equipo redujo los tokens por solicitud en un 70 %, reduciendo la factura mensual a un tercio. Lección: mide lo que envías.

Aviso débil / Aviso fuerte

Mensaje débil: "Agregar un chat como ChatGPT a mi aplicación".

Mensaje potente: "Agregue un asistente de chat a mi aplicación iOS/Swift. Arquitectura: la aplicación envía una solicitud a mi propio backend, la clave API LLM NO está en el CLIENTE, pasa a través del proxy. - La respuesta se transmite, se muestra palabra por palabra - El botón 'Detener' interrumpe la producción - Maneja el tiempo de espera, el error de red, las situaciones 429 y 500 con elegancia - Acorte el historial de chat: envíe los últimos 6 mensajes + resumen (control de costos) Explique el diagrama arquitectónico primero, luego proporcione el código de cliente y proxy por separado".

Plantillas copiables

Plantilla de arquitectura segura: "Diseñe la integración de LLM en la nube en mi aplicación [plataforma]. Regla: clave API solo en el backend. Cliente -> mi proxy -> LLM. En proxy: autenticación, límite de tasa por usuario, registro de solicitudes. Enumere las responsabilidades del cliente y del proxy por separado, luego exporte el código".

Plantilla de transmisión: "Agregue una respuesta de transmisión a esta pantalla de chat: - Agregue fragmentos a la burbuja del mensaje a medida que lleguen - Muestre un cursor/animación mientras escribe - Haga que el botón 'Detener' cancele la transmisión - Preservar texto parcial y advertir si hay un error mientras finaliza la transmisión [código existente]"

Plantilla de latencia de costos: "Reduzca el costo y la latencia en esta integración de LLM: - ¿Cómo reduzco el token enviado (abreviatura del historial, resumen)? - ¿En qué caso un modelo más pequeño/más barato es suficiente? - Sugerir estrategia de tiempo de espera y reintento [código]"

Plantilla de tolerancia a fallos: "Haga que esta llamada de LLM sea resistente: - Comportamiento separado sin red, tiempo de espera, 429 (límite de velocidad), 500 (servidor) - Mensaje cortés y no técnico para el usuario - Nota de verificación contra el riesgo de alucinaciones en respuestas críticas [código]"

Errores comunes

  • Incrustar la clave API en la aplicación. El error de seguridad más caro y común; La clave definitivamente está en la parte trasera.
  • No usar flujo. Dejar al usuario esperando respuestas largas lo alejará.
  • Envío de todo el historial de chat con cada solicitud. Multiplica el costo del token y la latencia.
  • Evitar condiciones de error. Si no se soluciona 429/500/timeout, la aplicación fallará o se congelará.
  • Considerando la respuesta del LLM como correcta sin lugar a dudas. La alucinación es real; Agregue una capa de verificación en el área crítica.
  • Envío de datos de usuario a LLM innecesario. Pregunte si los datos personales son necesarios o deben enmascararse antes de ir a la nube.

En resumen

Cloud LLM ofrece grandes capacidades que no se adaptan al dispositivo móvil, pero requieren seguridad y disciplina de costos. Regla de oro: la clave API nunca está en el cliente, pasa a través del proxy backend. El flujo aumenta en gran medida la velocidad percibida y la retención; Apoyado por el botón "detener". El coste se determina acortando el token enviado; La resiliencia se logra manejando todos los casos de error con elegancia. Las respuestas de LLM pueden incluir alucinaciones; En áreas críticas la verificación es fundamental y los datos personales se revisan antes de enviarlos a la nube.

Tarea de aplicación

Solicite un diseño de proxy de cliente + backend a la IA utilizando la “plantilla de arquitectura segura” para una función de “resumen de texto” o “chat”. Verifique que la clave API solo resida en el backend del diseño generado. Luego, extraiga al menos dos formas de reducir el token enviado con el "patrón de costo-retraso" y escriba el mensaje cortés que se mostrará al usuario en caso de una condición de error (por ejemplo, 429).

lista de verificación

  • [] Verifiqué que la clave API reside en el backend y no en el cliente
  • [] Hice la transmisión de respuesta y agregué un botón de 'pausa'
  • [] Manejé tiempos de espera, errores de red, situaciones 429 y 500
  • [] Reduje el token enviado con la abreviatura/resumen anterior
  • [] Consideré la validación contra el riesgo de alucinaciones en la respuesta del LLM.
  • [ ] Verifiqué la necesidad/enmascaramiento de datos personales antes de ir a la nube