Por qué nunca debes llamar a OpenAI directamente desde el frontend
El primer error que cometen la mayoría de los constructores no-code: llamar a la API de OpenAI directamente desde WeWeb o FlutterFlow, con la clave API expuesta en el cliente.
Nunca hagas eso. La clave API es visible en las herramientas de desarrollo del navegador, y cualquiera que la encuentre puede generar miles de dólares en llamadas a la API a tu costa. Las claves de la API de OpenAI no tienen límite de velocidad por defecto.
Patrón correcto: todas las llamadas a OpenAI van a través de tu backend (Supabase Edge Function, endpoint de Xano o cualquier servidor). El frontend llama a tu backend, que llama a OpenAI con la clave almacenada como variable de entorno del servidor. Esto añade una capa de indirección y protege tu clave completamente. En España y LATAM, el RGPD también es relevante, tu Edge Function puede estar alojada en la región EU para garantizar que los datos de usuario no salen de Europa.
Configurar Supabase Edge Functions para OpenAI
Las Supabase Edge Functions son funciones serverless basadas en Deno que se ejecutan en la red edge. Son la forma más sencilla de hacer proxy de las llamadas a OpenAI.
La estructura básica: recibir mensajes y prompt del sistema desde el frontend WeWeb, llamar a la API de Chat Completions de OpenAI con tu clave almacenada en Deno.env, y devolver la respuesta. Despliega con supabase functions deploy ai-chat y establece la clave con supabase secrets set OPENAI_API_KEY=sk-....
Elije la región EU-West de Supabase al crear el proyecto. Eso garantiza que todas las ejecuciones de Edge Function y el almacenamiento de datos se producen dentro de la UE, un requisito RGPD para la mayoría de clientes B2B en España y una exigencia formal si los datos de tus clientes se clasifican como sensibles según el artículo 9 del RGPD.
Llamar a la Edge Function desde WeWeb
En WeWeb, crea una fuente de datos REST API que apunte a la URL de tu Edge Function (disponible en la sección Edge Functions del dashboard de Supabase). Configúrala como una solicitud POST con un cuerpo JSON.
Crea una variable chatMessages (array) y aiResponse (string). Al pulsar el botón:
1. Añade el mensaje del usuario a chatMessages
2. Vacía userInput
3. Llama a la acción Edge Function con messages: chatMessages
4. Vincula aiResponse al texto de respuesta
5. Muestra aiResponse en un elemento de texto
Para streaming de respuestas (texto que aparece palabra a palabra), usa el parámetro stream: true en la llamada a OpenAI y maneja el flujo SSE en la Edge Function. Es más complejo pero crea una experiencia de usuario mucho mejor, importante para apps B2B en España y LATAM donde los usuarios profesionales esperan respuesta rápida.
Ingeniería de prompts para funciones de producto
La calidad de tu función de IA depende completamente de tu prompt del sistema. Los prompts genéricos dan resultados genéricos.
Para un generador de contenido: "Eres un copywriter para [Nombre de Empresa], un SaaS de [descripción]. Genera [tipo de output] que coincida con esta voz de marca: [ejemplo]. Responde siempre en este formato: [estructura]. Nunca incluyas [exclusiones]."
Para un analista de datos: "Eres un analista de datos experto. Analiza los datos proporcionados y devuelve insights como: 1) Resumen de una oración, 2) Tres hallazgos clave como puntos, 3) Una acción recomendada. Responde siempre en JSON válido."
Reglas prácticas: Sé específico sobre el formato de salida (JSON cuando el frontend necesita parsearlo), incluye restricciones negativas ("nunca menciones a competidores"), y prueba con 20+ inputs antes del lanzamiento. Para apps en español: especifica que la IA debe responder en español a menos que se indique lo contrario.
Control de costes y limitación de velocidad
Los costes de la API de OpenAI crecen rápidamente en producción. Tres controles a implementar antes del lanzamiento:
1. Límites de tokens: Establece max_tokens para cada solicitud. Para la mayoría de funciones, 500 tokens son suficientes. GPT-4o cuesta 2,50 USD/M tokens de entrada + 10 USD/M tokens de salida, un límite de 500 tokens mantiene el coste por debajo de 0,005 USD por solicitud.
2. Limitación de velocidad por usuario: En tu Edge Function, comprueba cuántas llamadas ha hecho el usuario en la última hora (almacenado en Supabase). Devuelve 429 si supera el límite.
3. Caché: Para outputs deterministas (misma entrada → misma salida), cachea las respuestas en Supabase. Una tabla ai_cache con un hash del prompt como clave elimina llamadas API redundantes.
Para una app SaaS con 500 MAU que cada uno hace 20 solicitudes de IA por día: presupuesta entre 100 y 250 € por mes para GPT-4o.
Funciones de IA no-code habituales que construimos
Generación de contenido con IA: Entradas de blog, descripciones de producto, líneas de asunto de email. Formulario WeWeb → Edge Function → GPT-4o → mostrar output. Clientes de ecommerce pueden generar descripciones de producto en español automáticamente.
Búsqueda inteligente: Incorpora contenido de usuario con OpenAI text-embedding-3-small, almacena vectores en pgvector (Supabase), y ejecuta búsqueda por similitud. Devuelve resultados semánticamente relevantes en lugar de coincidencias de palabras clave.
Resumen de documentos: Sube PDF → extrae texto via Edge Function → resume con GPT-4o → almacena resumen en Supabase.
Onboarding impulsado por IA: Haz 5 preguntas al registrarse, genera una lista de configuración personalizada con GPT-4o, almacena en perfil de usuario.
Todo esto funciona con el stack WeWeb + Supabase + OpenAI sin código personalizado en el frontend.