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
| De | Qué |
|---|---|
| PE-4 · Propuesta enviada | La 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 derivada | Los 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 producto | La regla de nombre de la plantilla como respaldo y contexto del modelo de títulos. |
Entrega
| A | Qué |
|---|---|
| FT-CAT-04 · Clasificación SAP derivada | El 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 producto | La propuesta con su grupo de artículos y sección listos para la calificación de visto bueno. |
| FT-CAT-03 · Categorización de productos | La categoría web sugerida con su certeza cuando la plantilla no tiene mapeo. |
| FT-PLT-08 · Títulos, nombres y descripciones de producto | El título y la descripción que propone el modelo de títulos, como sugerencia. |
| FT-PLT-01 · Fundamentos de gobierno de plantillas | La 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
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.
Los pasos en texto
| Paso | De | A | Qué hace | API o evento |
|---|---|---|---|---|
| 1 | MS-02 Producto | MS-01 Catálogo | Pide derivar el grupo de artículos con la tabla | API-01-204 |
| 2 | MS-01 Catálogo | MS-02 Producto | Responde varios grupos posibles | — |
| 3 | MS-02 Producto | MS-15 IA y enriquecimiento | Pide a la IA elegir el grupo con su confianza | API-15-002 |
| 4 | MS-15 IA y enriquecimiento | MS-01 Catálogo | Revisa que la plantilla tenga orden para el nombre | API-01-026 |
| 5 | MS-15 IA y enriquecimiento | MS-02 Producto | Lee nombre, descripción, tipo SAP e imagen | API-02-054 |
| 6 | MS-15 IA y enriquecimiento | Modelos de IA | Pide la predicción al modelo que ya corre | — |
| 7 | MS-15 IA y enriquecimiento | Base pim | Guarda la predicción, su confianza y el modelo | — |
| 8 | MS-15 IA y enriquecimiento | MS-02 Producto | Responde grupo, sección y dirección: aceptado | — |
| 9 | MS-02 Producto | Base pim | Guarda la clasificación con origen IA | — |
| 10 | MS-02 Producto | Eventos | Avisa la clasificación del producto | catalog.product.changed/CLASSIFICATION_CHANGED |
| 11 | Eventos | MS-15 IA y enriquecimiento | Entrega la clasificación final para medir el modelo | catalog.product.changed/CLASSIFICATION_CHANGED |
3.1 Confianza baja: decide Gobierno de Datos
3.2 La IA propone una plantilla nueva
3.3 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Elegir el grupo de artículos con su confianza y sugerir la categoría web |
| Quién la llama | MS-02 Producto, Entrada Única · Vendor Center (por el BFF) |
| Permiso | MS-02 como servicio; QA y Category para la categoría web |
| Cabeceras | Authorization, X-Request-Id |
| Escribe en | ai_jobs |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe |
| 422 | BUSINESS_ERROR | No aplica: el negocio no es Marketplace o la plantilla no tiene orden de atributos para el nombre |
| 503 | DEPENDENCY_UNAVAILABLE | El 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Proponer título y descripción con el modelo de títulos |
| Quién la llama | MS-02 Producto |
| Permiso | Sólo MS-02 (cuenta de servicio) |
| Cabeceras | Authorization, X-Request-Id |
| Escribe en | ai_jobs |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe |
| 503 | DEPENDENCY_UNAVAILABLE | El 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Leer un trabajo de IA, como la plantilla propuesta |
| Quién la llama | MS-02 Producto, Entrada Única · Vendor Center (por el BFF), MS-06 Evaluación |
| Permiso | Quien pidió el trabajo; el dueño de la propuesta para sus sugerencias; Gobierno de Datos y Administración del catálogo |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | jobId = job-0003320 |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El trabajo no existe o no es visible para quien llama |
GET /api/v2/ai/config · Configuración de la IA
| Campo | Valor |
|---|---|
| API | API-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 épica | Ver qué modelo atiende cada tarea, su umbral y a dónde cae si falla |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Administración del catálogo y Gobierno de Datos |
| Cabeceras | Authorization, X-Request-Id |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 403 | AUTHORIZATION_ERROR | Quien llama no administra la IA |
POST /api/v2/ai/config/plans · Preparar un cambio de la configuración de IA
| Campo | Valor |
|---|---|
| API | API-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 épica | Cambiar el modelo, el umbral o apagar una tarea, con su impacto |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Administración del catálogo; los umbrales de QA con IA, con Gobierno de Datos |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key, If-Match |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | VERSION_CONFLICT | La configuración cambió desde que se leyó |
| 422 | VALIDATION_ERROR | Un 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Confirmar el cambio de configuración de la IA |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | El mismo que pidió el plan |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Parámetros | planId = pln-a91f20 |
| Escribe en | ai_config |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | PLAN_EXPIRED | Pasaron más de 10 minutos desde la vista previa |
| 409 | VERSION_CONFLICT | Otra persona cambió la configuración después de la vista previa |
GET /api/v2/ai/metrics · Métricas de cada modelo
| Campo | Valor |
|---|---|
| API | API-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 épica | Ver las métricas de cada modelo: aceptado, corregido o quitado |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Administración del catálogo, Gobierno de Datos y QA y Category |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | task = TITLES, from = 2026-09-01, to = 2026-09-30 |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | Un 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Pedir a la IA de plantillas una plantilla nueva para una familia |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Administración del catálogo (Gobierno de Producto) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | ai_jobs |
| Publica | catalog.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
| HTTP | Código | Cuándo |
|---|---|---|
| 422 | VALIDATION_ERROR | La familia no existe en el árbol de plantillas |
| 503 | DEPENDENCY_UNAVAILABLE | La 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.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-15-005 | POST /api/v2/ai/quality-reviews | Revisión de anomalías de la imagen principal, apagada hasta decidir el modelo | FT-IA-05 · Enriquecimiento continuo después de crear el SKU y después… |
| API-01-204 | POST /api/v2/rules/derive-item-group | Derivar el grupo de artículos con la tabla de Catálogo | FT-CAT-04 · Clasificación SAP derivada |
| API-01-026 | GET /api/v2/taxonomies/{t}/nodes/{id}/metadata | Leer el orden de atributos para el nombre de la plantilla | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | Leer el producto completo para la predicción y para el embedding lake | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
| API-02-016 | POST /api/v2/products/classifications/plans | Asignar a mano el grupo de artículos en Gobierno de Datos | FT-CAT-03 · Categorización de productos |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar la clasificación y cerrar la tarea | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-01-031 | POST /api/v2/catalog-imports | Subir la plantilla propuesta como carga con canal IA | FT-PLT-09 · Carga masiva de configuración de plantillas con… |
| API-01-032 | POST /api/v2/catalog-imports/{id}/apply | Dejar la plantilla propuesta como solicitud pendiente de aprobar | FT-PLT-09 · Carga masiva de configuración de plantillas con… |
| API-01-102 | GET /api/v2/catalog-change-requests/{changeRequestId} | Ver la solicitud de plantilla campo por campo | FT-PLT-01 · Fundamentos de gobierno de plantillas |
| API-01-103 | POST /api/v2/catalog-change-requests/{changeRequestId}/decision | Aprobar o rechazar la plantilla propuesta | FT-PLT-01 · Fundamentos de gobierno de plantillas |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.ai.result/AI_SUGGESTION_READY | La IA de plantillas termina una propuesta | FT-ARQ-02, FT-IA-01 |
catalog.product.changed/CLASSIFICATION_CHANGED | MS-02 guarda el grupo de artículos, elegido por la IA o por Gobierno de Datos | FT-ACT-05, FT-ACT-06, FT-CAT-05, FT-IA-02 |
catalog.product.changed/TASK_CHANGED | MS-02 abre o cierra la tarea de Gobierno de Datos por confianza baja | FT-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_CHANGED | Gobierno de Producto aprueba una plantilla propuesta por la IA | FT-ARQ-02, FT-PLT-01, FT-PLT-08 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.changed/CLASSIFICATION_CHANGED | MS-15 mide si la persona dejó o corrigió el grupo que propuso el modelo | esta misma épica |
catalog.product.changed/STATUS_CHANGED | MS-15 manda al embedding lake los productos que se crean, se catalogan o se aprueban | FT-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_FROZEN | MS-15 actualiza en el embedding lake la imagen congelada del producto | FT-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ón | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
ai_jobs | MS-15 | Cada trabajo de IA con su entrada, su resultado y su confianza. | escribe |
ai_config | MS-15 | Qué modelo atiende cada tarea y con qué umbral. | escribe |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | lee |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-IA-04·H1 · Recibir sólo las propuestas sin grupo de artículos o sección cuya confianza de… | P1 | pasos 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… | P1 | flujo «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, p | P2 | pasos 11; API-15-013 |
| FT-IA-04·H4 · Sugerencias de categoría por IA con porcentaje de certeza | P2 | API-15-002 |
| FT-IA-04·H5 · Anomalías de la imagen principal | P3 | API-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 IA | P1 | flujo «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
| ID | Qué falta |
|---|---|
| DUD-35 | Con 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-01 | Si la predicción de grupo, los títulos y la IA de plantillas son paridad del primer corte o mejora posterior. |
| DUD-04 | Confirmar qué copia del catálogo toca hoy la IA de plantillas, para migrar bien lo que ya creó. |
Fuentes
- [D]
trazabilidad/features/FT-IA-04-integracion-modelos-ia-existentes.md: la ficha de la épica, con sus historias, reglas y bloqueos. - [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
- [D]
docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta. - [D]
docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida. - [D]
docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md§7: estados, tareas y canales. - [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.