← Arquitectura por épica

FT-IA-02 · Sugerencia de plantilla por IA a partir del producto…

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-02: 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-02.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-IA-02-sugerencia-plantilla-por-homologo.md.

En 30 segundos

El seller no conoce el árbol de plantillas y elige mal, lo que causa rechazos y cobros por grupos de artículo equivocados. Esta épica toma lo que se sacó de la imagen o de la URL, busca en el catálogo el producto más parecido y propone su plantilla general de familia con la pregunta «¿es tu plantilla?». Si dice que no, elige otra en el árbol; si ninguna sirve, elige su familia y se le asigna la plantilla general o «otros», sin levantar un ticket.

  • Módulo dueño: MS-15 IA y enriquecimiento. También participan: MS-01 Catálogo, MS-02 Producto.
  • Etapa 2 · Plantilla. Recibe «PE-2 · Sin duplicado» y entrega «PE-3 · Plantilla asignada».
  • APIs: construye 1 y usa 5 que construyen otras épicas.
  • Eventos: publica 1 y consume 2.

1. Dónde encaja

Recibe

DeQué
PE-2 · Sin duplicadoLa propuesta de un seller sin duplicado que entró por imagen o URL, con su evaluación guardada.
FT-REF-04 · Matching por imagen y por URL del sellerLo extraído de la página o de la imagen (en un trabajo de IA) y los productos parecidos que no llegaron a coincidencia.
FT-REF-03 · Servicio de matchingLos candidatos cercanos de la evaluación, como pista del homólogo.
FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…El árbol, las palabras clave y las plantillas generales de familia en las que se busca la sugerencia.

Entrega

AQué
PE-3 · Plantilla asignadaLa propuesta con plantilla asignada, por sugerencia aceptada o elegida en el árbol, y la vista efectiva de su negocio lista para capturar.
FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…La plantilla general de familia que sugiere la IA, con su confianza, para el selector de plantillas.
FT-IA-01 · Prellenado con IA y validación obligatoria del usuarioLa plantilla aceptada y el trabajo de IA con lo extraído, para prellenar sin volver a leer la página.

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

Sugerir la plantilla por el producto…
Métricas de cada modelo

Busca el producto homólogo más pareci…

Árbol validado

Responde la plantilla y «¿es tu plant…
Responde sin homólogo, con las famili…
y 1 más

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

CLASSIFICATION_CHANGED

CLASSIFICATION_CHANGED

Selector de plantillas

Seller

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-02

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.

EventosMS-02 ProductoMS-01 CatálogoModelos de IABase·pimMS-15 IA y enriquecimientoEntrada Única · Vendor CenterEventosMS-02 ProductoMS-01 CatálogoModelos de IABase·pimMS-15 IA y enriquecimientoEntrada Única · Vendor CenterSellerBFF1. Sigue su alta por imagen o URL, sin coincidencia2. Pide plantillas sugeridas para su propuestaPOST /api/v2/ai/template-suggestions3. Toma lo extraído en la identificación4. Busca el producto homólogo más parecido5. Sube a la plantilla general de su familiaGET /api/v2/structures/{id}/tree6. Guarda la sugerencia con su confianza7. Responde la plantilla y «¿es tu plantilla?»8. Responde «sí, es mi plantilla»9. Pide asignar la plantilla con la sugerencia aceptadaPOST /api/v2/products/classifications/plans10. Confirma el planPOST /api/v2/product-plans/{planId}/apply11. Avisa la plantilla asignadaCLASSIFICATION_CHANGED12. Entrega la respuesta para medir la sugerenciaCLASSIFICATION_CHANGEDSellerBFF
Flujo principal de FT-IA-02
Los pasos en texto
PasoDeAQué haceAPI o evento
1SellerEntrada Única · Vendor CenterSigue su alta por imagen o URL, sin coincidencia—
2Entrada Única · Vendor CenterMS-15 IA y enriquecimiento (por el BFF)Pide plantillas sugeridas para su propuestaAPI-15-001
3MS-15 IA y enriquecimientoBase pimToma lo extraído en la identificación—
4MS-15 IA y enriquecimientoModelos de IABusca el producto homólogo más parecido—
5MS-15 IA y enriquecimientoMS-01 CatálogoSube a la plantilla general de su familiaAPI-01-021
6MS-15 IA y enriquecimientoBase pimGuarda la sugerencia con su confianza—
7MS-15 IA y enriquecimientoEntrada Única · Vendor CenterResponde la plantilla y «¿es tu plantilla?»—
8SellerEntrada Única · Vendor CenterResponde «sí, es mi plantilla»—
9Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide asignar la plantilla con la sugerencia aceptadaAPI-02-016
10Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el planAPI-02-057
11MS-02 ProductoEventosAvisa la plantilla asignadacatalog.product.changed/CLASSIFICATION_CHANGED
12EventosMS-15 IA y enriquecimientoEntrega la respuesta para medir la sugerenciacatalog.product.changed/CLASSIFICATION_CHANGED

3.1 No es mi plantilla

EventosBase·pimMS-02 ProductoMS-01 CatálogoEntrada Única · Vendor CenterEventosBase·pimMS-02 ProductoMS-01 CatálogoEntrada Única · Vendor CenterSellerBFF1. Responde «no es mi plantilla»2. Busca en todas las plantillas que tiene permitidasGET /api/v2/structures/{id}/leaves3. Elige otra plantilla4. Pide asignar la plantilla elegidaPOST /api/v2/products/classifications/plans5. Confirma el planPOST /api/v2/product-plans/{planId}/apply6. Conserva por confirmar sólo lo que existe en la nueva7. Avisa el cambio de plantillaCLASSIFICATION_CHANGEDSellerBFF
No es mi plantilla

3.2 Ninguna plantilla sirve

MS-02 ProductoMS-01 CatálogoEntrada Única · Vendor CenterMS-15 IA y enriquecimientoMS-02 ProductoMS-01 CatálogoEntrada Única · Vendor CenterMS-15 IA y enriquecimientoSellerBFF1. Responde sin homólogo, con las familias a elegir2. Elige su familia: ropa, calzado, electrónica…3. Pide la plantilla general de esa familiaPOST /api/v2/ai/template-suggestions4. Busca la general o «otros» de la familiaGET /api/v2/structures/{id}/tree5. Responde la plantilla general6. Asigna la plantilla generalPOST /api/v2/products/classifications/plansSellerBFF
Ninguna plantilla sirve

3.3 Medir las sugerencias

Base·pimMS-15 IA y enriquecimientoEntrada Única · Vendor CenterBase·pimMS-15 IA y enriquecimientoEntrada Única · Vendor CenterAdministración del catálogoBFF1. Revisa cuántas sugerencias se aceptan por familia2. Pide las métricas de la sugerencia de plantillaGET /api/v2/ai/metrics3. Cuenta aceptadas, rechazadas y cambiadasAdministración del catálogoBFF
Medir las sugerencias

4. Si algo sale mal

  • La IA no responde. La pantalla muestra el selector de plantillas completo, con la plantilla general de cada familia primero; el seller no se queda detenido.
  • La sugerencia es equivocada. El seller responde «no es mi plantilla» y elige otra; cuenta como sugerencia rechazada en las métricas de esa familia.
  • El seller cambia de plantilla con valores ya prellenados. Se conservan, como sugerencias por confirmar, sólo los valores cuyos atributos existen en la plantilla nueva; los demás se descartan y quedan en el trabajo de IA.
  • La familia no tiene plantilla general. Se asigna «otros» de la familia y el caso queda en las métricas para que Gobierno de Producto decida si crea una plantilla (FT-IA-04).

5. APIs

Las que construye esta épica (1)

POST /api/v2/ai/template-suggestions · Sugerir la plantilla por el producto homólogo
CampoValor
APIAPI-15-001 · MS-15 IA y enriquecimiento
Para quéBusca en el catálogo el producto más parecido (el homólogo) con lo que se extrajo de la imagen o de la URL y propone su plantilla general de familia, no una por producto, para preguntarle al seller «¿es tu plantilla?». Sirve antes de guardar la propuesta (con el evaluationId de la identificación) o después (con el productId). Si no encuentra ninguna, propone las familias; con la familia que elija el seller devuelve la plantilla general o «otros» de esa familia.
En esta épicaSugerir la plantilla general de familia del homólogo, o la general de la familia que elija el seller
Quién la llamaEntrada Única · Vendor Center (por el BFF), MS-02 Producto, Gateway de terceros /partner/v1
PermisoEl dueño de la propuesta (seller o proveedor); MS-02 como servicio
CabecerasAuthorization, X-Request-Id
Escribe enai_jobs
También la usanFT-FLU-02, FT-PLT-05

Request

{
  "business": "MKP",
  "evaluationId": "evl-0000733",
  "productId": null,
  "inputs": {
    "sourceJobId": "job-0003311",
    "imageAssetIds": [
      "ast-0004410"
    ],
    "title": "Bujía de iridio para motor de 4 tiempos",
    "homologueHints": [
      "PRD-0002277"
    ],
    "family": null
  },
  "max": 3
}

Response · 200

{
  "success": true,
  "data": {
    "suggestionId": "sug-7f3a",
    "question": "¿Es tu plantilla?",
    "items": [
      {
        "templateId": "EU4-0412",
        "path": "Automotriz > Refacciones > Refacciones generales",
        "family": "REFACCIONES",
        "general": true,
        "confidence": 0.88,
        "homologue": {
          "productId": "PRD-0002277",
          "productName": "Bujía de platino para motocicleta"
        }
      },
      {
        "templateId": "EU4-0398",
        "path": "Automotriz > Motocicletas > Accesorios",
        "family": "MOTOCICLETAS",
        "general": true,
        "confidence": 0.41,
        "homologue": null
      }
    ],
    "fallback": null
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDLa propuesta o la evaluación no existen o no son de quien llama
422BUSINESS_ERRORNo hay insumo (entró por características, sin imagen ni URL) y no trae familia: el seller elige en el árbol
503DEPENDENCY_UNAVAILABLEEl modelo no respondió: la pantalla muestra el árbol completo

Las que usa y construye otra épica (5)

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-013GET /api/v2/ai/metricsMedir cuántas sugerencias se aceptan, se rechazan o se cambianFT-IA-04 · Integración de los modelos de IA existentes
API-01-021GET /api/v2/structures/{id}/treeSubir del homólogo a la plantilla general de su familiaFT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…
API-01-022GET /api/v2/structures/{id}/leavesBuscar en todas las plantillas permitidas cuando la sugerencia no sirveFT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…
API-02-016POST /api/v2/products/classifications/plansAsignar la plantilla a la propuesta, con la sugerencia aceptadaFT-CAT-03 · Categorización de productos
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar la asignación de plantillaFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/CLASSIFICATION_CHANGEDMS-02 asigna la plantilla, sugerida o elegidaFT-ACT-05, FT-ACT-06, FT-CAT-05, FT-IA-04

Consume

EventoPara quéQuién lo publica
catalog.product.changed/CLASSIFICATION_CHANGEDMS-15 registra si la sugerencia se aceptó, se rechazó o se cambióesta misma épica
catalog.governance.changed/TAXONOMY_NODE_CHANGEDMS-15 renueva su índice de plantillas y familiasFT-CAT-04, FT-INT-03, FT-INT-04, FT-PLT-05, FT-PLT-09

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
taxonomy_nodesMS-01Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla.lee
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.lee
validation_resultsMS-06El resultado de cada evaluación: lista negra, coincidencias con su confianza y score.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-IA-02·H1 · Que el PIM me proponga la plantilla del producto más parecido del catálogoP1pasos 2, 3, 4, 5, 7, 8, 9, 10; API-15-001
FT-IA-02·H2 · Responder "no es mi plantilla" y elegir otraP1flujo «No es mi plantilla»; API-01-022
FT-IA-02·H3 · Responder unas preguntas mínimasP2flujo «Ninguna plantilla sirve»
FT-IA-02·H4 · Saber cuántas sugerencias se aceptan o se rechazanP3flujo «Medir las sugerencias»; API-15-013

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-02-1. La sugerencia sale del producto homólogo más parecido del catálogo (búsqueda por imagen y texto en el embedding lake) y siempre propone la plantilla general de su familia, no una por producto; hasta tres opciones con su confianza. Por qué: Las plantillas por producto generan rechazos; cada familia tiene una plantilla general y así siempre hay un papá. Se apoya en RN-PLA-10, RN-PLA-12, RF-ENR-05, FT-PLT-05.
  • D-IA-02-2. Reusa lo extraído en la identificación (el trabajo de IA de FT-REF-04) y los candidatos cercanos de la evaluación; no vuelve a leer la página ni a pagar el modelo. Por qué: Un solo pago por propuesta y la misma lectura del producto en toda el alta. Se apoya en RF-ENR-05, DEC-40.
  • D-IA-02-3. Sólo hay sugerencia cuando el alta entró por imagen o URL; por características el seller elige en el selector de plantillas, y sin insumo no se inventa una. Por qué: Es la ruta acordada por camino; sin imagen ni texto la IA adivinaría. Se apoya en RN-ENR-06, PEN-16.
  • D-IA-02-4. Si el seller cambia de plantilla, se conservan como sugerencias por confirmar sólo los valores cuyos atributos existen en la plantilla nueva; los demás se descartan y quedan en el trabajo de IA por si vuelve atrás. Por qué: No se pierde lo útil, no se arrastran datos que la nueva plantilla no pide y todo sigue pasando por la confirmación del usuario. Se apoya en RN-ENR-05.
  • D-IA-02-5. Sin plantilla que sirva, el seller elige su familia y se le asigna la general o «otros» de esa familia, sin ticket; el caso se cuenta para que Gobierno de Producto decida si pide a la IA una plantilla nueva (FT-IA-04). Por qué: Hoy la plantilla que no existe se resuelve con un ticket que detiene al seller. Se apoya en RF-CAT-09, PEN-15.
  • D-IA-02-6. La aceptación se mide con la asignación que guarda MS-02 con el suggestionId (CLASSIFICATION_CHANGED), no con lo que reporte la pantalla. Por qué: Una sola fuente de verdad para las métricas por familia. Se apoya en RF-ENR-06, RF-ENR-09.

Qué falta decidir

IDQué falta
DUD-35Con el equipo de IA: cómo se elige el homólogo (imagen, texto o ambos) y su umbral.
PD-01Si la sugerencia por IA entra en el primer corte o es mejora posterior.

También siguen abiertos: PEN-15, Confirmar con Marketplace las ramas cuando no hay plantilla (preguntas por familia o «otros»); PEN-16, Qué hacer en un alta manual desde cero sin imagen ni URL (aquí: el seller elige en el selector).

Fuentes

  1. [D] trazabilidad/features/FT-IA-02-sugerencia-plantilla-por-homologo.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.