NutriSync ya tiene la materia prima que hace útil a la IA: un motor de contenido estructurado (content-i18n, 14 idiomas), datos longitudinales por usuaria (ciclos, síntomas, comidas, movimiento, CAS/CSS) y una arquitectura serverless donde enchufar inferencia sin servidores nuevos. La propuesta: usar IA en cuatro frentes — diálogo (recoger inputs conversando, no rellenando formularios), análisis (patrones personales narrados en lenguaje humano), recomendación (catálogo + preferencias vía búsqueda semántica) y operaciones (triage de feedback y contenido para founders) — con una arquitectura de tres niveles de coste que mantiene el gasto marginal cercano a cero para el 90% del valor.
La tesis de negocio: la capa personal de IA es el argumento natural del tier premium (conecta con Epic L / Doc 29): gratis = inteligencia compartida por segmento; premium = tu analista personal. Y la capa de operaciones devuelve horas de founders desde la semana uno.
1 · Coste marginal ≈ 0 por diseño. Todo lo que pueda generarse UNA vez y servirse a muchas (insights por fase×objetivo×idioma) se pre-genera y cachea en Supabase — igual que hoy servimos el catálogo. La inferencia por usuaria queda para donde de verdad personaliza, con presupuesto por usuaria y caché diaria.
2 · Privacidad primero. Los prompts nunca llevan PII (ni nombre, ni email, ni ciudad): viajan datos pseudonimizados (fase, día, agregados de logs). Procesamiento en región UE con DPA firmado. Consentimiento explícito y separado para funciones de IA (encaja con nuestra capa de consentimiento existente) — datos de salud = Art. 9 RGPD, el abogado revisa el addendum (mismo flujo que G4 del plan).
3 · Nunca diagnóstico. La IA narra patrones y sugiere hábitos del catálogo aprobado; jamás diagnostica ni prescribe. Guardrails de temas + disclaimer de salud + escalada a "consulta a un profesional" (coherente con el Aviso de Salud y con la Propuesta 31: tono de cuidado).
4 · Con las manos en el catálogo. Las recomendaciones se anclan (RAG) en NUESTRO contenido validado por Pilar — la IA elige y explica, no inventa consejos de salud. Human-in-the-loop para todo contenido nuevo.
5 · Proveedor intercambiable. Un router propio con registro de modelos en base de datos: cambiar de proveedor o modelo = 1 fila, 0 deploys. Cero lock-in.
ai-routerDeno · auth + límites + logging→
API LLM (región UE)modelo pequeño por defecto
La clave: toda inferencia pasa por Edge Functions (las claves API viven en secrets, jamás en el cliente — misma regla que ya cumplimos con service_role), y toda respuesta cacheable se guarda en Postgres. El streaming al móvil va por SSE desde la función. No hay servidores, colas ni vector-DBs externos que operar: pgvector y pg_cron ya vienen con Supabase.
| Nivel | Qué | Coste marginal por usuaria | Quién lo recibe |
|---|---|---|---|
| N1 · Batch compartido | Insights por segmento (4 fases × objetivos × 14 idiomas) pre-generados cada noche y cacheados — como el motor diario actual | ≈ 0 € (coste fijo total <1 €/día) | Todas (free) |
| N2 · Personal cacheado | 1 análisis personal/día máx. (patrones de SUS logs), modelo pequeño, se guarda y sirve | ~0,001-0,003 €/día | Premium (y piloto) |
| N3 · Interactivo | Chat/check-in conversacional con presupuesto mensual de tokens por usuaria | ~0,05-0,15 €/mes con tope | Premium |
Con 10.000 usuarias y mezcla realista: <100 €/mes de inferencia. El tope por usuaria hace el coste lineal y predecible — entra en el ARPU del Doc 29 con margen de sobra.
Criterios: endpoint en UE + DPA · calidad multilingüe real (14 idiomas incl. co-oficiales) · coste clase "small" (0,1-1 €/millón tokens entrada) · políticas que permitan contenido de salud/bienestar · salida estructurada fiable (JSON) para extraer logs del diálogo. Los modelos pequeños de los tres grandes (Anthropic Haiku, OpenAI mini, Google Flash) cumplen; los open-weights vía proveedor UE son el plan B de coste. Recomendación operativa: empezar con UNO (el que mejor DPA/UE nos firme) y decidirlo en D12 — el router hace que la elección sea reversible en minutos. Evaluación con un golden-set propio (50 casos × idioma clave) antes de encender nada de cara a usuarias.
| Claude Haiku (Anthropic) | GPT mini (OpenAI) | Gemini Flash (Google) | |
|---|---|---|---|
| Carácter | Fiel a instrucciones, tono muy controlable, JSON fiable | El barato ubicuo del ecosistema; function-calling maduro | Precio/velocidad agresivos, contexto 1M, multimodal |
| Fortaleza para NutriSync | Tono de salud con voz de marca + extracción precisa (caso A) | Coste mínimo por token; Azure UE muy rodado | Batch masivo baratísimo (insights N1); Vertex UE nativo |
| Debilidad para NutriSync | Algo más caro en gama pequeña | Verborrea/tono genérico — más prompt-work | Filtros que históricamente se disparan con contenido menstrual/salud |
| UE/DPA | Bedrock/Vertex región UE + DPA | Azure OpenAI UE | Vertex AI UE |
| 14 idiomas (incl. cooficiales) | Bueno, correcto en cooficiales | Bueno en grandes, flojo en minoritarios | Bueno en grandes, irregular en minoritarios |
Sesgo declarado: este análisis lo escribe un modelo de Anthropic — por eso D12 se decide con DPA/UE + golden-set en nuestros idiomas y contenido, no con opiniones.
gpt-5.6-luna (visión, Responses API, salida JSON estricta por json_schema) para el volumen; gpt-5.6-terra como reintento cuando la confianza baja de 0,65 o el plato es mixto; si sigue dudoso, UNA pregunta simple a la usuaria. Alternativas evaluables con el mismo golden-set: visión de Claude y Gemini.gpt-5.6-luna (vision, Responses API, strict JSON via json_schema) for volume; gpt-5.6-terra retry when confidence drops below 0.65 or the dish is mixed; if still uncertain, ONE simple question to the user. Claude and Gemini vision remain evaluable with the same golden-set.Neo4j / grafos: hoy no — nuestros datos son relacionales/temporales con saltos de 1-2 relaciones (Postgres + pgvector los cubren). Disparador para reabrir: features sociales/comunidad con grafo de relaciones, o un grafo de conocimiento nutricional donde las preguntas dominantes sean multi-salto (>3). Primer paso lean incluso entonces: tabla de aristas en Postgres. Horizonte: 2027 o nunca.
ContextForge / LangChain / orquestadores de contexto: hoy no — el router propio + pgvector + caché ES la orquestación para AI-0/1/2, y la memoria de la usuaria son sus datos estructurados (mejores que cualquier vector de conversación). Disparador: AI-3 (copiloto multi-turno con >3 herramientas y estado largo) o multi-proveedor simultáneo con políticas complejas; incluso entonces, primero tabla conversations + registro de tools propio.
La excepción probable: Langfuse auto-alojado (observabilidad/evals de LLM) en AI-2, si el volumen de evaluación supera la tabla de telemetría. Es la única pieza del ecosistema AI con papeletas de ganarse el sitio pronto.
Regla de la casa (CLAUDE.md): cada pieza entra con un dolor real que resuelve — el stack son 4 proveedores y 0 servidores, y eso es un feature.
| # | Caso de uso | Valor | Nivel coste | Fase |
|---|---|---|---|---|
| A | Check-in conversacional — "¿cómo estás hoy?" en lenguaje libre; la IA extrae síntomas/ánimo/energía/comidas a datos estructurados (salida JSON → mismas tablas de logs de hoy). El formulario queda como alternativa, no como peaje. | Más datos y mejores (el activo nº1 del producto) + usabilidad radical | N3 | AI-2 |
| B | Insight diario narrado — el motor actual elige QUÉ decir (recs por segmento); la IA lo convierte en UN párrafo cálido y contextual por fase×objetivo×idioma, pre-generado | El "para mí" que diferencia de un listado; retención diaria | N1 | AI-1 |
| C | Análisis de patrones personal — SQL calcula (correlaciones logs↔ciclo sobre cycle_records de la Propuesta 31); la IA narra: "tus migrañas aparecen los días 24-26 en 3 de tus últimos 4 ciclos". Alimenta la pantalla Trends (sinergia directa con Epic M) | El momento "wow" — nadie más se lo dice; driver premium nº1 | N2 | AI-2 |
| D | Recomendación semántica — embeddings del catálogo (pgvector): "algo vegetal, rápido y rico en hierro" → platos del catálogo filtrados por alérgenos/dieta/fase | Recomendaciones que respetan el diseño de Pilar, explicadas | N2 | AI-2 |
| E | Guía de uso in-app — "¿cómo registro mi período?" respondido sobre NUESTRA documentación (RAG de la guía/FAQ), con deep-link a la pantalla | Menos fricción, menos tickets a contact@ | N1/N3 | AI-1 |
| F | Mensajes de estado inteligentes — los copys de gracia/deriva/rebaseline (Prop. 31) con matiz de contexto, dentro del registro de notificaciones | Comunicación que no suena a plantilla | N1 | AI-1/M-3 |
| G | OPS · Triage de feedback — en el hub: clustering y etiquetado automático del feedback del piloto (tema, severidad, screen), resumen semanal para founders | Horas de founders devueltas desde la semana 1; cero exposición a usuarias | interno | AI-0 |
| H | OPS · Contenido y traducciones — asistente en el hub Translations: primera pasada de los 12 idiomas + QA de coherencia (hoy lo hacemos a mano fuera) | La pasada de revisores ×12 idiomas deja de ser cuello de botella | interno | AI-0 |
| I | Señales de cuidado — detección de valores fuera de patrón sostenidos (ya definidos en Prop. 31) con mensaje empático y derivación a profesional. IA solo REDACTA; la regla la decide SQL | Confianza y responsabilidad — nunca diagnóstico | N1 | AI-2 |
ai-router Edge Function + registro de modelos + tabla de presupuestos/telemetría · triage de feedback en hub (caso G) · asistente de traducciones (caso H) · golden-set de evaluación v1. Riesgo cero (nada de cara a usuarias), valor inmediato para el piloto de septiembre.cycle_records (Epic M-1) · Todo depende de D12 (proveedor).| Pregunta | Opciones | |
|---|---|---|
| D12 | Proveedor LLM primario de TEXTO + proveedor de VISIÓN (Epic P) — pueden ser distintos; ambos reversibles vía router · Primary TEXT provider + VISION provider — may differ; both reversible via the router | A · El grande con mejor DPA/endpoint UE que firmemos primero (recomendada) · B · Open-weights vía proveedor UE (más barato, más QA nuestro) · C · Dual desde el día 1 (más coste de eval) |
| D13 | Consentimiento de IA | A · Opt-in explícito con pantalla propia (recomendada — salud manda) · B · Incluido en el consentimiento general con toggle en Settings |
| D14 | Papel comercial de la IA | A · Free = compartido (N1), Premium = personal (N2/N3) (recomendada — driver claro del Doc 29) · B · Todo premium · C · Todo free durante 2027 (coste asumido como marketing) |
Como siempre: "D12-A, D13-A, D14-A" por WhatsApp vale. D12 conviene decidirla en agosto para que AI-0 arranque con el proveedor definitivo.