← Arquitectura por épica

FT-IA-04 · Integración de los modelos de IA existentes

Arquitectura del Nuevo PIM por épica · corte del 18-oct-2026

Propuesta del TL: no sustituye la spec de cada épica

Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.

Qué responde. Cómo funciona por dentro FT-IA-04: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.

Para quién. Los equipos que van a construir la épica, QA y arquitectura.

Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.

Fuente. docs/arquitectura/por-epica/epicas/FT-IA-04.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-IA-04-integracion-modelos-ia-existentes.md.

En 30 segundos

Los modelos de IA que ya existen (plantillas, títulos, categorías y grupo de artículos) viven fuera de cualquier PIM: cargan a P360 por rutas propias y nadie mide si aciertan. Esta épica los conecta a través de un solo módulo, IA y enriquecimiento: la predicción del grupo de artículos de Marketplace con su regla de hoy, los títulos, la categoría sugerida, la IA que propone plantillas que una persona aprueba, la réplica del catálogo al embedding lake y las métricas de cada modelo.

  • Módulo dueño: MS-15 IA y enriquecimiento. También participan: MS-01 Catálogo, MS-02 Producto.
  • Etapa 4 · Visto bueno. Recibe «PE-4 · Propuesta enviada» y entrega a otras épicas.
  • APIs: construye 8 y usa 10 que construyen otras épicas.
  • Eventos: publica 4 y consume 3.

1. Dónde encaja

Recibe

DeQué
PE-4 · Propuesta enviadaLa propuesta de Marketplace enviada: en su Validación automática hace falta el grupo de artículos para pedir el SKU.
FT-CAT-04 · Clasificación SAP derivadaLos casos en que la tabla de Catálogo da varios grupos posibles (o ninguno) para un producto de Marketplace.
FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…El árbol de plantillas, sus metadatos (orden de atributos para el nombre) y los grupos de artículo que usan los modelos.
FT-PLT-08 · Títulos, nombres y descripciones de productoLa regla de nombre de la plantilla como respaldo y contexto del modelo de títulos.

Entrega

AQué
FT-CAT-04 · Clasificación SAP derivadaEl grupo de artículos, la sección y la dirección elegidos por la IA con su confianza, o «no alcanza» para abrir Gobierno de Datos.
FT-RAC-02 · Score de calidad del productoLa propuesta con su grupo de artículos y sección listos para la calificación de visto bueno.
FT-CAT-03 · Categorización de productosLa categoría web sugerida con su certeza cuando la plantilla no tiene mapeo.
FT-PLT-08 · Títulos, nombres y descripciones de productoEl título y la descripción que propone el modelo de títulos, como sugerencia.
FT-PLT-01 · Fundamentos de gobierno de plantillasLa plantilla que propone la IA, como solicitud de cambio con canal IA que Gobierno de Producto aprueba o rechaza.

Tareas que abre o cierra: Gobierno de Datos.

2. Diagrama de contexto

Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.

🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño

Sistemas externos

Nuevo PIM · un solo sistema

Pantallas y sistemas

Personas

Derivar la clasificación SAP

Responde varios grupos posibles

Predecir el grupo de artículos y suge…

Metadatos de una plantilla
Subir una carga para validarla
y 1 más

Foto del producto para publicar
Responde grupo, sección y dirección:…
y 1 más

Pide la predicción al modelo que ya c…
Propone atributos y secciones con pro…
y 2 más

CLASSIFICATION_CHANGED
TASK_CHANGED
y 1 más

CLASSIFICATION_CHANGED
STATUS_CHANGED
y 1 más

Asignar plantilla o categorías web
Confirmar un plan de Producto

Pedir a la IA una plantilla nueva

AI_SUGGESTION_READY

Detalle de una solicitud de cambio
Aprobar o rechazar una solicitud

TEMPLATE_CHANGED

Gobierno de Datos

Administración del catálogo

Entrada Única · Vendor Center

BFF del portal

MS-01 Catálogo

MS-02 Producto

★ MS-15 IA y enriquecimiento

Base pim

Eventos

Modelos de IA

Contexto de FT-IA-04

3. Diagrama de flujo

El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.

EventosBase·pimModelos de IAMS-15 IA y enriquecimientoMS-01 CatálogoMS-02 ProductoEventosBase·pimModelos de IAMS-15 IA y enriquecimientoMS-01 CatálogoMS-02 Producto1. Pide derivar el grupo de artículos con la tablaPOST /api/v2/rules/derive-item-group2. Responde varios grupos posibles3. Pide a la IA elegir el grupo con su confianzaPOST /api/v2/ai/category-suggestions4. Revisa que la plantilla tenga orden para el nombreGET /api/v2/taxonomies/{t}/nodes/{id}/metadata5. Lee nombre, descripción, tipo SAP e imagenGET /internal/product/products/{id}/publication-snapshot?versio…6. Pide la predicción al modelo que ya corre7. Guarda la predicción, su confianza y el modelo8. Responde grupo, sección y dirección: aceptado9. Guarda la clasificación con origen IA10. Avisa la clasificación del productoCLASSIFICATION_CHANGED11. Entrega la clasificación final para medir el modeloCLASSIFICATION_CHANGED
Flujo principal de FT-IA-04
Los pasos en texto
PasoDeAQué haceAPI o evento
1MS-02 ProductoMS-01 CatálogoPide derivar el grupo de artículos con la tablaAPI-01-204
2MS-01 CatálogoMS-02 ProductoResponde varios grupos posibles—
3MS-02 ProductoMS-15 IA y enriquecimientoPide a la IA elegir el grupo con su confianzaAPI-15-002
4MS-15 IA y enriquecimientoMS-01 CatálogoRevisa que la plantilla tenga orden para el nombreAPI-01-026
5MS-15 IA y enriquecimientoMS-02 ProductoLee nombre, descripción, tipo SAP e imagenAPI-02-054
6MS-15 IA y enriquecimientoModelos de IAPide la predicción al modelo que ya corre—
7MS-15 IA y enriquecimientoBase pimGuarda la predicción, su confianza y el modelo—
8MS-15 IA y enriquecimientoMS-02 ProductoResponde grupo, sección y dirección: aceptado—
9MS-02 ProductoBase pimGuarda la clasificación con origen IA—
10MS-02 ProductoEventosAvisa la clasificación del productocatalog.product.changed/CLASSIFICATION_CHANGED
11EventosMS-15 IA y enriquecimientoEntrega la clasificación final para medir el modelocatalog.product.changed/CLASSIFICATION_CHANGED

3.1 Confianza baja: decide Gobierno de Datos

Entrada Única · Vendor CenterEventosBase·pimMS-02 ProductoMS-15 IA y enriquecimientoEntrada Única · Vendor CenterEventosBase·pimMS-02 ProductoMS-15 IA y enriquecimientoGobierno de DatosBFF1. Responde confianza 0.9991, debajo de 0.9995172. Falta grupo o sección: abre Gobierno de Datos3. Avisa la tarea nuevaTASK_CHANGED4. Elige el grupo de artículos correcto5. Pide el plan de la clasificaciónPOST /api/v2/products/classifications/plans6. Confirma y cierra la tareaPOST /api/v2/product-plans/{planId}/apply7. Entrega la corrección: cuenta como error del modeloCLASSIFICATION_CHANGEDGobierno de DatosBFF
Confianza baja: decide Gobierno de Datos

3.2 La IA propone una plantilla nueva

EventosMS-01 CatálogoModelos de IAMS-15 IA y enriquecimientoEntrada Única · Vendor CenterEventosMS-01 CatálogoModelos de IAMS-15 IA y enriquecimientoEntrada Única · Vendor CenterAdministración del catálogoBFF1. Pide una plantilla para una familia sin plantilla2. Pide la propuesta a la IA de plantillasPOST /api/v2/ai/template-proposals3. Propone atributos y secciones con productos parecidos4. Sube la propuesta como carga con canal IAPOST /api/v2/catalog-imports5. La confirma: queda solicitud pendiente de aprobarPOST /api/v2/catalog-imports/{id}/apply6. Avisa que la propuesta está listaAI_SUGGESTION_READY7. Muestra la solicitud campo por campoGET /api/v2/catalog-change-requests/{changeRequestId}8. Revisa y aprueba o rechaza la plantilla9. Registra la decisiónPOST /api/v2/catalog-change-requests/{changeRequestId}/decision10. Avisa la plantilla nuevaTEMPLATE_CHANGEDAdministración del catálogoBFF
La IA propone una plantilla nueva

3.3 Réplica del catálogo al embedding lake

Modelos de IAMS-15 IA y enriquecimientoEventosMS-02 ProductoModelos de IAMS-15 IA y enriquecimientoEventosMS-02 Producto1. Avisa un producto creado, catalogado o aprobadoSTATUS_CHANGED2. Entrega el cambio del productoSTATUS_CHANGED3. Lee la foto completa del productoGET /internal/product/products/{id}/publication-snapshot?versio…4. Manda el producto al embedding lake5. Entrega la imagen congelada del productoASSET_FROZEN6. Actualiza los vectores de esa imagen
Réplica del catálogo al embedding lake

4. Si algo sale mal

  • El modelo de grupo de artículos no responde en 3 segundos. MS-02 lo trata como confianza baja: abre Gobierno de Datos y la propuesta no se queda detenida esperando a la IA.
  • La plantilla que propone la IA choca con otra o no pasa las validaciones. Catálogo la rechaza al validar la carga, como a una manual; Gobierno de Producto ve el error en la solicitud y la IA no crea nada.
  • El embedding lake no recibe un cambio. MS-15 lo reintenta desde su suscripción; los cambios se aplican por versión, así que uno viejo no pisa a uno nuevo.
  • Un modelo empieza a acertar menos. Las métricas lo muestran por versión; Administración del catálogo cambia de modelo o lo apaga con un plan, y su tarea cae a la persona o a la regla que tenga configurada.

5. APIs

Las que construye esta épica (8)

POST /api/v2/ai/category-suggestions · Predecir el grupo de artículos y sugerir la categoría web
CampoValor
APIAPI-15-002 · MS-15 IA y enriquecimiento
Para quéPide al modelo de predicción de grupo de artículos que ya corre hoy el grupo, la sección y la dirección de un producto, con su confianza, y dice si alcanza el umbral para aceptarlo sin persona; si la tabla de Catálogo dio varios candidatos, elige entre ellos. También sugiere categorías web con su certeza, cuando la plantilla no tiene mapeo. Para el grupo de artículos conserva la regla de hoy: sólo Marketplace y sólo si la plantilla tiene orden de atributos para el nombre.
En esta épicaElegir el grupo de artículos con su confianza y sugerir la categoría web
Quién la llamaMS-02 Producto, Entrada Única · Vendor Center (por el BFF)
PermisoMS-02 como servicio; QA y Category para la categoría web
CabecerasAuthorization, X-Request-Id
Escribe enai_jobs
También la usanFT-CAT-03, FT-CAT-04

Request

{
  "productId": "PRD-0004812",
  "version": 7,
  "business": "MKP",
  "templateId": "EU4-0412",
  "want": [
    "ITEM_GROUP",
    "WEB_CATEGORY"
  ],
  "itemGroupCandidates": [
    "MG-04211",
    "MG-04215"
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "suggestionId": "sug-91c0",
    "itemGroup": {
      "code": "MG-04211",
      "section": "SEC-042",
      "direction": "DIR-04",
      "confidence": 0.99973,
      "acceptThreshold": 0.999517,
      "accepted": true
    },
    "webCategories": [
      {
        "categoryId": "catst-00812",
        "path": "Electrónica > Celulares > Baterías externas",
        "confidence": 0.87
      }
    ],
    "model": {
      "task": "ITEM_GROUP",
      "version": "2026-09"
    }
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl producto no existe
422BUSINESS_ERRORNo aplica: el negocio no es Marketplace o la plantilla no tiene orden de atributos para el nombre
503DEPENDENCY_UNAVAILABLEEl modelo no respondió en 3 segundos: MS-02 manda la propuesta a Gobierno de Datos, como cuando la confianza no alcanza
POST /api/v2/ai/titles · Proponer título y descripción
CampoValor
APIAPI-15-007 · MS-15 IA y enriquecimiento
Para quéPropone título y descripción con el modelo de títulos que ya existe, siguiendo las reglas de nombre de la plantilla. Reemplaza la carga de títulos de IA que hoy se hace a P360; después MS-02 aplica la regla de título por orden de atributos, como hoy.
En esta épicaProponer título y descripción con el modelo de títulos
Quién la llamaMS-02 Producto
PermisoSólo MS-02 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id
Escribe enai_jobs
También la usanFT-ACT-06, FT-PLT-08

Request

{
  "productId": "PRD-0004812",
  "version": 8,
  "templateId": "EU4-0412",
  "languages": [
    "es"
  ],
  "want": [
    "TITLE",
    "DESCRIPTION"
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "suggestionId": "sug-a412",
    "title": {
      "value": "Batería externa Marca Uno de 20,000 mAh con carga rápida USB-C",
      "confidence": 0.9
    },
    "description": {
      "value": "Batería portátil de 20,000 mAh con dos salidas y carga rápida de 22.5 W.",
      "confidence": 0.84
    },
    "model": {
      "task": "TITLES",
      "version": "2026-08"
    }
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl producto no existe
503DEPENDENCY_UNAVAILABLEEl modelo no respondió: MS-02 usa sólo la regla de título de la plantilla
GET /api/v2/ai/jobs/{jobId} · Estado y resultado de un trabajo de IA
CampoValor
APIAPI-15-008 · MS-15 IA y enriquecimiento
Para quéDice si un trabajo de IA ya terminó y qué produjo: sugerencias de prellenado, valores enriquecidos, revisión de calidad o plantilla propuesta, cada valor con su confianza y su fuente.
En esta épicaLeer un trabajo de IA, como la plantilla propuesta
Quién la llamaMS-02 Producto, Entrada Única · Vendor Center (por el BFF), MS-06 Evaluación
PermisoQuien pidió el trabajo; el dueño de la propuesta para sus sugerencias; Gobierno de Datos y Administración del catálogo
CabecerasAuthorization, X-Request-Id
ParámetrosjobId = job-0003320
También la usanFT-IA-01, FT-IA-03, FT-IA-05

Request

null

Response · 200

{
  "success": true,
  "data": {
    "jobId": "job-0003320",
    "task": "PREFILL",
    "status": "DONE",
    "productId": "PRD-0004812",
    "createdAt": "2026-10-18T16:06:00Z",
    "finishedAt": "2026-10-18T16:06:09Z",
    "result": {
      "mustConfirm": true,
      "suggestions": [
        {
          "attribute": "CAPACIDAD",
          "label": "Capacidad",
          "value": 20000,
          "unit": "MAH",
          "confidence": 0.95,
          "source": "PDP"
        },
        {
          "attribute": "MATERIAL",
          "label": "Material",
          "value": "PLASTICO_ABS",
          "confidence": 0.71,
          "source": "IMAGEN"
        }
      ],
      "notFound": [
        "PESO_NETO",
        "TIEMPO_CARGA"
      ]
    }
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl trabajo no existe o no es visible para quien llama
GET /api/v2/ai/config · Configuración de la IA
CampoValor
APIAPI-15-010 · MS-15 IA y enriquecimiento
Para quéDice qué modelo atiende cada tarea de IA, si está encendida, con qué confianza se acepta sin persona, a dónde cae si falla, la ventana de enriquecimiento y las fuentes externas con su valor de verdad. Si el resultado de QA con IA decide o sólo se mide lo dice el interruptor del motor de MS-02, no esta configuración.
En esta épicaVer qué modelo atiende cada tarea, su umbral y a dónde cae si falla
Quién la llamaEntrada Única · Vendor Center (por el BFF)
PermisoAdministración del catálogo y Gobierno de Datos
CabecerasAuthorization, X-Request-Id
También la usanFT-IA-01, FT-IA-05, FT-RAC-03

Request

null

Response · 200

{
  "success": true,
  "data": {
    "version": 7,
    "updatedAt": "2026-10-14T20:00:00Z",
    "tasks": [
      {
        "task": "ITEM_GROUP",
        "model": "prediccion-grupo-articulo",
        "modelVersion": "2026-09",
        "enabled": true,
        "acceptThreshold": 0.999517,
        "timeoutMs": 3000,
        "fallback": "GOBIERNO_DE_DATOS",
        "scope": {
          "businesses": [
            "MKP"
          ],
          "requiresNameOrder": true
        }
      },
      {
        "task": "PDP_EXTRACTION",
        "model": "extraccion-pdp",
        "enabled": true,
        "timeoutMs": 15000
      },
      {
        "task": "IMAGE_MATCH",
        "model": "similitud-imagen",
        "enabled": true,
        "minSimilarity": 0.8
      },
      {
        "task": "TEMPLATE_SUGGESTION",
        "model": "homologos-catalogo",
        "enabled": true,
        "minConfidence": 0.6
      },
      {
        "task": "PREFILL",
        "model": "extraccion-atributos",
        "enabled": true,
        "showThreshold": 0.5
      },
      {
        "task": "ENRICHMENT",
        "model": "enriquecimiento-atributos",
        "enabled": true,
        "acceptThreshold": 0.9,
        "fallback": "GOBIERNO_DE_DATOS",
        "policy": {
          "windowDays": 90,
          "passesPerTrigger": 1,
          "triggers": [
            "SKU_ASSIGNED",
            "PUBLISHED"
          ]
        }
      },
      {
        "task": "QA_REVIEW",
        "model": "calidad-coherencia",
        "enabled": true,
        "acceptThreshold": {
          "MKP": 0.85,
          "MER": 0.9,
          "SUB": 0.9
        },
        "fallback": "QA_MANUAL"
      },
      {
        "task": "VARIANT_COLOR",
        "model": "color-contra-imagen",
        "enabled": true,
        "acceptThreshold": 0.8,
        "fallback": "QA_MANUAL"
      },
      {
        "task": "TITLES",
        "model": "titulos",
        "modelVersion": "2026-08",
        "enabled": true
      },
      {
        "task": "MAIN_IMAGE_ANOMALY",
        "model": null,
        "enabled": false
      },
      {
        "task": "ASSISTANT",
        "model": "asistente-sellers",
        "enabled": true
      }
    ],
    "sources": [
      {
        "sourceId": "SRC-SITIO-MARCA",
        "kind": "BRAND_SITE",
        "truthRank": 1,
        "scope": {
          "brands": [
            "MARCA01",
            "MARCA02"
          ]
        }
      },
      {
        "sourceId": "SRC-MARKETPLACE-01",
        "kind": "MARKETPLACE",
        "truthRank": 3,
        "scope": {
          "categories": [
            "TODAS"
          ]
        }
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no administra la IA
POST /api/v2/ai/config/plans · Preparar un cambio de la configuración de IA
CampoValor
APIAPI-15-011 · MS-15 IA y enriquecimiento
Para quéPrepara un cambio de modelo, umbral, modo sombra, ventana o fuentes de una tarea de IA y dice cuántos trabajos recientes habrían terminado distinto (aceptados sin persona contra enviados a revisión), sin cambiar nada todavía.
En esta épicaCambiar el modelo, el umbral o apagar una tarea, con su impacto
Quién la llamaEntrada Única · Vendor Center (por el BFF)
PermisoAdministración del catálogo; los umbrales de QA con IA, con Gobierno de Datos
CabecerasAuthorization, X-Request-Id, Idempotency-Key, If-Match
También la usanFT-IA-03, FT-IA-05, FT-RAC-02, FT-RAC-03

Request

{
  "version": 7,
  "changes": [
    {
      "task": "ENRICHMENT",
      "acceptThreshold": 0.92,
      "policy": {
        "windowDays": 120
      }
    }
  ],
  "reason": "Menos valores aceptados sin revisión en Marketplace"
}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-a91f20",
    "expiresAt": "2026-10-18T16:50:00Z",
    "impact": {
      "window": "últimos 30 días",
      "jobsReplayed": 1200,
      "valuesToReview": {
        "before": 380,
        "after": 455
      },
      "productsReenteringWindow": 2300
    },
    "applyUrl": "/api/v2/ai-plans/pln-a91f20/apply"
  }
}

Errores

HTTPCódigoCuándo
409VERSION_CONFLICTLa configuración cambió desde que se leyó
422VALIDATION_ERRORUn umbral fuera de 0 a 1, un modelo que no existe o una tarea sin a dónde caer si falla
POST /api/v2/ai-plans/{planId}/apply · Confirmar un plan de IA
CampoValor
APIAPI-15-012 · MS-15 IA y enriquecimiento
Para quéConfirma un plan de MS-15: el siguiente trabajo de IA ya usa la configuración nueva; lo ya hecho no se repite.
En esta épicaConfirmar el cambio de configuración de la IA
Quién la llamaEntrada Única · Vendor Center (por el BFF)
PermisoEl mismo que pidió el plan
CabecerasAuthorization, X-Request-Id, Idempotency-Key
ParámetrosplanId = pln-a91f20
Escribe enai_config
También la usanFT-IA-03, FT-IA-05, FT-RAC-02, FT-RAC-03

Request

{}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-a91f20",
    "status": "APPLIED",
    "version": 8,
    "appliedAt": "2026-10-18T16:21:00Z"
  }
}

Errores

HTTPCódigoCuándo
409PLAN_EXPIREDPasaron más de 10 minutos desde la vista previa
409VERSION_CONFLICTOtra persona cambió la configuración después de la vista previa
GET /api/v2/ai/metrics · Métricas de cada modelo
CampoValor
APIAPI-15-013 · MS-15 IA y enriquecimiento
Para quéDice, por tarea y versión de modelo, cuántas sugerencias se hicieron y cuántas se aceptaron, se corrigieron o se quitaron, para saber qué modelo sirve y ajustar plantillas y umbrales. Se calcula con lo que el usuario confirmó en el producto, no con lo que reporta la pantalla.
En esta épicaVer las métricas de cada modelo: aceptado, corregido o quitado
Quién la llamaEntrada Única · Vendor Center (por el BFF)
PermisoAdministración del catálogo, Gobierno de Datos y QA y Category
CabecerasAuthorization, X-Request-Id
Parámetrostask = TITLES, from = 2026-09-01, to = 2026-09-30
También la usanFT-IA-02

Request

null

Response · 200

{
  "success": true,
  "data": {
    "items": [
      {
        "task": "TITLES",
        "modelVersion": "2026-08",
        "suggested": 1840,
        "accepted": 1220,
        "corrected": 470,
        "discarded": 150,
        "acceptanceRate": 0.66
      },
      {
        "task": "TEMPLATE_SUGGESTION",
        "modelVersion": "2026-09",
        "suggested": 610,
        "accepted": 455,
        "corrected": 0,
        "discarded": 155,
        "acceptanceRate": 0.75
      }
    ],
    "page": 1,
    "size": 50,
    "total": 2
  }
}

Errores

HTTPCódigoCuándo
400VALIDATION_ERRORUn rango de fechas de más de 12 meses o una tarea que no existe
POST /api/v2/ai/template-proposals · Pedir a la IA una plantilla nueva
CampoValor
APIAPI-15-014 · MS-15 IA y enriquecimiento
Para quéGobierno de Producto pide a la IA de plantillas que proponga una plantilla nueva para una familia sin plantilla adecuada, con atributos y secciones sugeridos a partir de productos parecidos. La propuesta queda en el trabajo de IA; la plantilla sólo existe cuando una persona la crea en Catálogo con las mismas validaciones que una manual. Responde 202 y avisa con AI_SUGGESTION_READY.
En esta épicaPedir a la IA de plantillas una plantilla nueva para una familia
Quién la llamaEntrada Única · Vendor Center (por el BFF)
PermisoAdministración del catálogo (Gobierno de Producto)
CabecerasAuthorization, X-Request-Id, Idempotency-Key
Escribe enai_jobs
Publicacatalog.ai.result/AI_SUGGESTION_READY

Request

{
  "family": "REFACCIONES",
  "business": "MKP",
  "reason": "Sin plantilla general para bujías y filtros de motocicleta",
  "exampleProductIds": [
    "PRD-0002277",
    "PRD-0004820"
  ]
}

Response · 202

{
  "success": true,
  "data": {
    "jobId": "job-0005007",
    "status": "ACCEPTED",
    "links": {
      "self": "/api/v2/ai/jobs/job-0005007"
    }
  }
}

Errores

HTTPCódigoCuándo
422VALIDATION_ERRORLa familia no existe en el árbol de plantillas
503DEPENDENCY_UNAVAILABLELa IA de plantillas no está disponible

Las que usa y construye otra épica (10)

Su request y su response están en la página de la épica que la construye.

APIMétodo y rutaPara qué, aquíLa construye
API-15-005POST /api/v2/ai/quality-reviewsRevisión de anomalías de la imagen principal, apagada hasta decidir el modeloFT-IA-05 · Enriquecimiento continuo después de crear el SKU y después…
API-01-204POST /api/v2/rules/derive-item-groupDerivar el grupo de artículos con la tabla de CatálogoFT-CAT-04 · Clasificación SAP derivada
API-01-026GET /api/v2/taxonomies/{t}/nodes/{id}/metadataLeer el orden de atributos para el nombre de la plantillaFT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…
API-02-054GET /internal/product/products/{id}/publication-snapshot?version=Leer el producto completo para la predicción y para el embedding lakeFT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio
API-02-016POST /api/v2/products/classifications/plansAsignar a mano el grupo de artículos en Gobierno de DatosFT-CAT-03 · Categorización de productos
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar la clasificación y cerrar la tareaFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-01-031POST /api/v2/catalog-importsSubir la plantilla propuesta como carga con canal IAFT-PLT-09 · Carga masiva de configuración de plantillas con…
API-01-032POST /api/v2/catalog-imports/{id}/applyDejar la plantilla propuesta como solicitud pendiente de aprobarFT-PLT-09 · Carga masiva de configuración de plantillas con…
API-01-102GET /api/v2/catalog-change-requests/{changeRequestId}Ver la solicitud de plantilla campo por campoFT-PLT-01 · Fundamentos de gobierno de plantillas
API-01-103POST /api/v2/catalog-change-requests/{changeRequestId}/decisionAprobar o rechazar la plantilla propuestaFT-PLT-01 · Fundamentos de gobierno de plantillas

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.ai.result/AI_SUGGESTION_READYLa IA de plantillas termina una propuestaFT-ARQ-02, FT-IA-01
catalog.product.changed/CLASSIFICATION_CHANGEDMS-02 guarda el grupo de artículos, elegido por la IA o por Gobierno de DatosFT-ACT-05, FT-ACT-06, FT-CAT-05, FT-IA-02
catalog.product.changed/TASK_CHANGEDMS-02 abre o cierra la tarea de Gobierno de Datos por confianza bajaFT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06
catalog.governance.changed/TEMPLATE_CHANGEDGobierno de Producto aprueba una plantilla propuesta por la IAFT-ARQ-02, FT-PLT-01, FT-PLT-08

Consume

EventoPara quéQuién lo publica
catalog.product.changed/CLASSIFICATION_CHANGEDMS-15 mide si la persona dejó o corrigió el grupo que propuso el modeloesta misma épica
catalog.product.changed/STATUS_CHANGEDMS-15 manda al embedding lake los productos que se crean, se catalogan o se apruebanFT-CAT-03, FT-CAT-05, FT-FLU-01, FT-FLU-02, FT-FLU-04, FT-FLU-06, FT-FLU-07, FT-INT-03, FT-INT-05, FT-INT-06, FT-INT-07, FT-PRD-02, FT-PRD-03, FT-PRD-04, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-09, FT-PRD-10, FT-RAC-01, FT-RAC-02, FT-RAC-03, FT-RAC-05, FT-REF-02
catalog.asset.changed/ASSET_FROZENMS-15 actualiza en el embedding lake la imagen congelada del productoFT-ACT-02, FT-ACT-03, FT-ACT-04, FT-ACT-06

7. Datos

Cada colección tiene un solo dueño, el único que escribe en ella.

ColecciónDueñoQué guardaEsta épica
ai_jobsMS-15Cada trabajo de IA con su entrada, su resultado y su confianza.escribe
ai_configMS-15Qué modelo atiende cada tarea y con qué umbral.escribe
taxonomy_nodesMS-01Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla.lee
template_viewsMS-01La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios.lee
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-IA-04·H1 · Recibir sólo las propuestas sin grupo de artículos o sección cuya confianza de…P1pasos 1, 2, 3, 4, 6, 7, 8, 9; flujo «Confianza baja: decide Gobierno de Datos»; API-15-002
FT-IA-04·H2 · Que la IA de plantillas cree plantillas en el nuevo PIM con el proceso que…P1flujo «La IA propone una plantilla nueva»; API-15-014, API-01-031, API-01-032, API-01-103
FT-IA-04·H3 · Ver las métricas de cada modelo, pP2pasos 11; API-15-013
FT-IA-04·H4 · Sugerencias de categoría por IA con porcentaje de certezaP2API-15-002
FT-IA-04·H5 · Anomalías de la imagen principalP3API-15-005, API-15-010. Fuera: La revisión existe en la configuración pero queda apagada hasta que DUD-35 diga con qué modelo; si se enciende, marca la foto antes de la revisión.
FT-IA-04·H6 · Replicar productos al embedding lake de IAP1flujo «Réplica del catálogo al embedding lake»; API-02-054

9. Decisiones de esta épica

Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.

  • D-IA-04-1. MS-15 es la única puerta a los modelos: los llama él, con petición y respuesta, y ningún modelo llama a otro módulo ni escribe en el PIM. Las rutas de hoy con que la IA carga plantillas y títulos a P360 (RestTemplatesIAToSTEPXMLCreation y RestTitlesIAToSTEPXMLCreation) no se construyen. Por qué: Un solo motor de IA con contrato, interruptor y medición; sin cargas manuales ni rutas sueltas hacia el catálogo. Se apoya en ADR-12, DUD-35, RF-GEN-01.
  • D-IA-04-2. Grupo de artículos: primero la tabla de Catálogo (FT-CAT-04); la IA sólo cuando la tabla da varios o ninguno, sólo en Marketplace y sólo si la plantilla tiene orden de atributos para el nombre, como hoy. Si la confianza queda en 0.999517 o menos y falta grupo o sección, MS-02 abre Gobierno de Datos, como hoy el 1021. El umbral vive en la configuración de MS-15. Por qué: Conserva la paridad de la ruta a Gobierno de Datos y usa la IA sólo donde la regla no alcanza. Se apoya en RF-ENR-09, DUD-35, PD-01, FT-CAT-04.
  • D-IA-04-3. La IA de plantillas propone y una persona decide: su propuesta entra a Catálogo como solicitud de cambio con canal IA (carga de configuración) y sólo existe cuando Gobierno de Producto la aprueba, con las mismas validaciones que una manual. Ya no queda limitada a «Liverpool Marketplace». Por qué: Una plantilla nueva la crea Gobierno de Producto con aprobación; hoy la IA la crea directo y sin control de negocio. Se apoya en DUD-35, DEC-ARQ-12, FT-PLT-05.
  • D-IA-04-4. Métricas: MS-15 mide cada modelo con lo que la persona dejó en el producto (aceptó, corrigió o quitó), que llega en los eventos de MS-02 con la procedencia de cada valor; la pantalla no reporta métricas. Por qué: Una sola fuente de verdad para medir; reportes de pantalla se pierden o se duplican. Se apoya en RF-ENR-09, RF-CAL-12.
  • D-IA-04-5. El embedding lake lo alimenta MS-15 con los eventos de producto y de imágenes congeladas; P360 deja de ser su fuente el día del corte. Lo migrado entra sin eventos, así que la primera carga del lago sale de una corrida que lee el catálogo por páginas. Por qué: Que los modelos trabajen con el catálogo al día sin depender de P360 ni de cargas manuales. Se apoya en DUD-35, ADR-12.
  • D-IA-04-6. Cada tarea de IA tiene un interruptor, un modelo y a dónde cae si falla (Gobierno de Datos, QA manual o el árbol de plantillas), como hoy el interruptor de validación de imágenes de Entrada Única. La revisión de anomalías de la imagen principal queda apagada hasta que se decida con qué modelo. Por qué: Si un modelo se apaga o no responde, el trabajo sigue con personas o reglas y nada se queda detenido. Se apoya en DUD-35, PD-27.

Qué falta decidir

IDQué falta
DUD-35Con el equipo de IA: contrato de cada modelo (predicción de grupo, títulos, plantillas, imagen), si se recupera el clasificador de anomalías y el proceso de la IA de plantillas para Liverpool y Suburbia.
PD-01Si la predicción de grupo, los títulos y la IA de plantillas son paridad del primer corte o mejora posterior.
DUD-04Confirmar qué copia del catálogo toca hoy la IA de plantillas, para migrar bien lo que ya creó.

Fuentes

  1. [D] trazabilidad/features/FT-IA-04-integracion-modelos-ia-existentes.md: la ficha de la épica, con sus historias, reglas y bloqueos.
  2. [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
  3. [D] docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta.
  4. [D] docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida.
  5. [D] docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md §7: estados, tareas y canales.
  6. [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.