← Arquitectura por épica

FT-IA-01 · Prellenado con IA y validación obligatoria del usuario

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-01: 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-01.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-IA-01-prellenado-ia-validacion-usuario.md.

En 30 segundos

Capturar a mano una plantilla de hasta 50 atributos es lento, y lo que el seller ya publica en su página no debería recapturarse. Esta épica propone valores con IA a partir de la URL, la imagen o un producto del catálogo y los muestra aparte, como sugerencias. El usuario confirma, corrige o quita cada uno antes de avanzar: nada sugerido llega al SKU sin que una persona lo confirme, y queda registrado qué propuso la IA y qué se aceptó.

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

1. Dónde encaja

Recibe

DeQué
PE-3 · Plantilla asignadaLa propuesta con plantilla asignada: la vista efectiva de su negocio dice qué atributos pedir.
FT-IA-02 · Sugerencia de plantilla por IA a partir del producto…La plantilla aceptada y el trabajo de IA con lo extraído de la página o de la imagen.
FT-REF-04 · Matching por imagen y por URL del sellerLo extraído en la identificación (EAN, atributos, fotos), que se reusa sin volver a leer la página.
FT-PLT-06 · Configuración de atributos por plantilla y por negocio…Qué atributos pide la plantilla por negocio y cuáles son de contexto, para prellenar sólo lo que se ve.

Entrega

AQué
FT-PRD-07 · Captura guiada por pasos con los mínimos primeroLa ficha con los valores sugeridos ya confirmados o corregidos y su procedencia, para seguir la captura guiada.
FT-RAC-01 · Motor de validación en línea y candados de datos…La marca de «sugerencias de IA por confirmar» en la propuesta: mientras exista, el candado de envío no pasa.
FT-IA-03 · Enriquecimiento de atributos opcionales con IA y política…El mismo mecanismo de sugerencia con confirmación, para los bloques opcionales.

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

Prellenar la plantilla o un bloque co…
Estado y resultado de un trabajo de IA

Vista efectiva de una plantilla por n…

Foto del producto para publicar

Propone valores desde la URL, la imag…
Propone sólo lo que la foto deja infe…

AI_SUGGESTION_READY

AI_SUGGESTION_READY

Revisar valores en el momento
Confirmar un plan de Producto
y 1 más

PRODUCT_UPDATED

PRODUCT_UPDATED

Responde «confirma o quita las sugere…

Buscar productos que ya existen

Responde un producto que sirve de base

Seller

Proveedor

Entrada Única · Vendor Center

BFF del portal

MS-01 Catálogo

MS-02 Producto

MS-06 Evaluación

★ MS-15 IA y enriquecimiento

Base pim

Eventos

Modelos de IA

Contexto de FT-IA-01

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-02 ProductoMS-01 CatálogoMS-15 IA y enriquecimientoEntrada Única · Vendor CenterEventosBase·pimModelos de IAMS-02 ProductoMS-01 CatálogoMS-15 IA y enriquecimientoEntrada Única · Vendor CenterBFFSeller1. Pide prellenar la plantilla con lo extraídoPOST /api/v2/ai/prefill2. Lee qué atributos ve el negocio en la plantillaGET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective3. Lee lo ya capturado en la propuestaGET /internal/product/products/{id}/publication-snapshot?versio…4. Propone valores desde la URL, la imagen o el homólogo5. Guarda cada sugerencia con su confianza y su fuente6. Avisa que las sugerencias están listasAI_SUGGESTION_READY7. Entrega el aviso: marca sugerencias por confirmarAI_SUGGESTION_READY8. Trae las sugerencias para mostrarlas aparteGET /api/v2/ai/jobs/{jobId}9. Confirma, corrige o quita cada valor sugerido10. Pide el plan con los valores y su procedenciaPOST /api/v2/products/{id}/values/plans11. Confirma el planPOST /api/v2/product-plans/{planId}/apply12. Avisa los valores y lo que hizo el usuarioPRODUCT_UPDATED13. Entrega lo aceptado y lo corregido para medirPRODUCT_UPDATEDBFFSeller
Flujo principal de FT-IA-01
Los pasos en texto
PasoDeAQué haceAPI o evento
1Entrada Única · Vendor CenterMS-15 IA y enriquecimiento (por el BFF)Pide prellenar la plantilla con lo extraídoAPI-15-003
2MS-15 IA y enriquecimientoMS-01 CatálogoLee qué atributos ve el negocio en la plantillaAPI-01-028
3MS-15 IA y enriquecimientoMS-02 ProductoLee lo ya capturado en la propuestaAPI-02-054
4MS-15 IA y enriquecimientoModelos de IAPropone valores desde la URL, la imagen o el homólogo—
5MS-15 IA y enriquecimientoBase pimGuarda cada sugerencia con su confianza y su fuente—
6MS-15 IA y enriquecimientoEventosAvisa que las sugerencias están listascatalog.ai.result/AI_SUGGESTION_READY
7EventosMS-02 ProductoEntrega el aviso: marca sugerencias por confirmarcatalog.ai.result/AI_SUGGESTION_READY
8Entrada Única · Vendor CenterMS-15 IA y enriquecimiento (por el BFF)Trae las sugerencias para mostrarlas aparteAPI-15-008
9SellerEntrada Única · Vendor CenterConfirma, corrige o quita cada valor sugerido—
10Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide el plan con los valores y su procedenciaAPI-02-012
11Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el planAPI-02-057
12MS-02 ProductoEventosAvisa los valores y lo que hizo el usuariocatalog.product.changed/PRODUCT_UPDATED
13EventosMS-15 IA y enriquecimientoEntrega lo aceptado y lo corregido para medircatalog.product.changed/PRODUCT_UPDATED

3.1 Valores sin confirmar al enviar

MS-02 ProductoEntrada Única · Vendor CenterMS-02 ProductoEntrada Única · Vendor CenterSellerBFF1. Intenta enviar con sugerencias sin confirmar2. Pregunta qué le falta para enviarGET /api/v2/products/{id}/gates3. Responde «confirma o quita las sugerencias de IA»4. Quita las que no quiere y confirma el resto5. Pide el plan con sus decisionesPOST /api/v2/products/{id}/values/plans6. Confirma, el candado ya pasaPOST /api/v2/product-plans/{planId}/applySellerBFF
Valores sin confirmar al enviar

3.2 Primer corte: prellenar con el catálogo

Base·pimMS-02 ProductoMS-15 IA y enriquecimientoMS-06 EvaluaciónEntrada Única · Vendor CenterBase·pimMS-02 ProductoMS-15 IA y enriquecimientoMS-06 EvaluaciónEntrada Única · Vendor CenterProveedorBFF1. Busca su producto por EAN o marca y modelo2. Pregunta si ya existe en el catálogoPOST /api/v2/matches3. Responde un producto que sirve de base4. Pide prellenar con ese producto del catálogoPOST /api/v2/ai/prefill5. Lee la ficha del producto baseGET /internal/product/products/{id}/publication-snapshot?versio…6. Guarda sus valores como sugerencias, sin IAProveedorBFF
Primer corte: prellenar con el catálogo

3.3 Atributos desde la foto del proveedor

Base·pimModelos de IAMS-01 CatálogoMS-15 IA y enriquecimientoEntrada Única · Vendor CenterBase·pimModelos de IAMS-01 CatálogoMS-15 IA y enriquecimientoEntrada Única · Vendor CenterProveedorBFF1. Sube sus fotos y pide sugerencias2. Pide prellenar desde la foto y el tipoPOST /api/v2/ai/prefill3. Lee qué atributos son de contextoGET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective4. Propone sólo lo que la foto deja inferir5. Deja medidas y material como «falta contexto»ProveedorBFF
Atributos desde la foto del proveedor

4. Si algo sale mal

  • La IA tarda o no responde. El usuario captura a mano; si las sugerencias llegan después, aparecen aparte y el candado sólo cuenta las que llegaron. Nada se queda detenido esperando a la IA.
  • La IA propone un valor que no está en la lista de valores del atributo. MS-15 lo descarta antes de mostrarlo (valida contra la vista efectiva); si el atributo acepta solicitudes de valor nuevo, se muestra como «pedir valor» y no como sugerencia.
  • La plantilla cambió entre la sugerencia y la confirmación. El plan de valores avisa por campo qué ya no aplica; las sugerencias de atributos que ya no existen se descartan.
  • El usuario corrige casi todo lo que propone la IA. Las métricas por modelo lo muestran; Administración del catálogo puede subir el umbral para mostrar sugerencias o apagar la tarea.

5. APIs

Las que construye esta épica (1)

POST /api/v2/ai/prefill · Prellenar la plantilla o un bloque con sugerencias
CampoValor
APIAPI-15-003 · MS-15 IA y enriquecimiento
Para quéPropone valores para los atributos visibles de la plantilla (o sólo de un bloque opcional) a partir de lo extraído de la URL, la imagen o un producto del catálogo. Todo llega como sugerencia que el usuario confirma, corrige o quita. Si se pide un bloque opcional con obligatorios incompletos, no corre. Responde 202 y avisa con AI_SUGGESTION_READY.
En esta épicaPedir sugerencias para la plantilla o para un bloque
Quién la llamaEntrada Única · Vendor Center (por el BFF), MS-02 Producto
PermisoEl dueño de la propuesta (seller o proveedor); MS-02 como servicio
CabecerasAuthorization, X-Request-Id, Idempotency-Key
Escribe enai_jobs
Publicacatalog.ai.result/AI_SUGGESTION_READY
También la usanFT-ACT-06, FT-FLU-02, FT-IA-03, FT-REF-04

Request

{
  "productId": "PRD-0004812",
  "version": 2,
  "business": "MKP",
  "templateId": "EU4-0412",
  "scope": {
    "type": "TEMPLATE",
    "attributeGroup": null
  },
  "sources": {
    "sourceJobId": "job-0003311",
    "imageAssetIds": [
      "ast-0004410"
    ],
    "catalogProductId": null
  }
}

Response · 202

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

Errores

HTTPCódigoCuándo
409BUSINESS_ERRORSe pidió un bloque opcional y faltan obligatorios: primero se completan (candado)
422VALIDATION_ERRORNo trae ninguna fuente o el bloque no es de la plantilla
404NOT_FOUNDLa propuesta no existe o no es de quien llama

Las que usa y construye otra épica (8)

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-008GET /api/v2/ai/jobs/{jobId}Traer las sugerencias con su confianza y su fuenteFT-IA-04 · Integración de los modelos de IA existentes
API-15-010GET /api/v2/ai/configVer si la búsqueda por marca y modelo está encendida (apagada por ahora)FT-IA-04 · Integración de los modelos de IA existentes
API-01-028GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effectiveLeer qué atributos ve el negocio y cuáles son de contextoFT-PLT-06 · Configuración de atributos por plantilla y por negocio…
API-02-054GET /internal/product/products/{id}/publication-snapshot?version=Leer lo ya capturado o el producto base del catálogoFT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio
API-02-012POST /api/v2/products/{id}/values/plansGuardar los valores confirmados con su procedenciaFT-RAC-01 · Motor de validación en línea y candados de datos…
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar los valoresFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-101GET /api/v2/products/{id}/gatesVer el candado de envío con las sugerencias pendientesFT-RAC-01 · Motor de validación en línea y candados de datos…
API-06-005POST /api/v2/matchesEncontrar en el catálogo un producto que sirva de baseFT-REF-03 · Servicio de matching

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.ai.result/AI_SUGGESTION_READYMS-15 termina las sugerencias de una propuestaFT-ARQ-02
catalog.product.changed/PRODUCT_UPDATEDMS-02 guarda los valores confirmados o corregidos con su procedenciaFT-ACT-05, FT-ARQ-02, FT-PLT-07, FT-PRD-05, FT-RAC-06

Consume

EventoPara quéQuién lo publica
catalog.ai.result/AI_SUGGESTION_READYMS-02 marca la propuesta con sugerencias por confirmar y no deja enviarla hasta resolverlasesta misma épica
catalog.product.changed/PRODUCT_UPDATEDMS-15 registra qué sugerencias se aceptaron, se corrigieron o se quitaronesta misma épica

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
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
lov_valuesMS-01Cada valor de lista: código, etiqueta, orden y equivalencias por sistema.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-IA-01·H1 · La plantilla con lo que la IA encontróP1pasos 1, 2, 3, 4, 5, 8; API-15-003
FT-IA-01·H2 · Confirmar o corregir cada valor prellenado antes de avanzarP1pasos 9, 10, 11; flujo «Valores sin confirmar al enviar»; API-02-012, API-02-101
FT-IA-01·H3 · Atributos sugeridos desde la foto y el tipo de productoP2flujo «Atributos desde la foto del proveedor»
FT-IA-01·H4 · Saber si con marca y modelo la IA puede buscar y prellenar el camino…P2API-15-010. Fuera: Depende de PEN-46 y PEN-21: la búsqueda por marca y modelo queda apagada (D-IA-01-5) y el camino características elige plantilla sin prellenado.
FT-IA-01·H5 · Primer corte: prellenar con el catálogoP1flujo «Primer corte: prellenar con el catálogo»; API-06-005

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-01-1. Todo lo prellenado es sugerencia: vive en el trabajo de IA (ai_jobs de MS-15) y no entra al producto hasta que la persona lo confirma o lo corrige con el plan de valores de MS-02, que guarda la procedencia de cada valor (sugerido por IA, confirmado o corregido, quién y cuándo). Por qué: La validación del usuario siempre va; además así se sabe de dónde salió cada dato, que hoy P360 no guarda. Se apoya en RN-ENR-05, DEC-50, RF-CAL-12.
  • D-IA-01-2. El candado es del servidor: con AI_SUGGESTION_READY, MS-02 marca la propuesta con sugerencias por confirmar y el candado de envío (FT-RAC-01) no pasa hasta que cada una se confirme, se corrija o se quite. La pantalla sólo lo muestra. Por qué: Si sólo lo cuidara la pantalla, la API o una pantalla vieja podrían enviar valores de IA sin revisar. Se apoya en RF-ENR-02, RN-ENR-05.
  • D-IA-01-3. Sólo se prellenan los atributos que el negocio ve en la plantilla (vista efectiva de MS-01); los marcados como de contexto (medidas, material sin empaque) no se infieren de la foto y quedan como «falta contexto». Por qué: La IA no deduce medidas de una imagen; prellenarlas daría datos falsos con apariencia de buenos. Se apoya en PEN-45, RF-ENR-10.
  • D-IA-01-4. Primer corte sin IA: si la búsqueda encontró un producto del catálogo que sirve de base, se prellena con sus datos como sugerencia; la imagen y la URL esperan a que entre la IA. Por qué: Da valor desde el primer corte aunque la IA sea prioridad 2 del BRD. Se apoya en PD-01, DUD-35.
  • D-IA-01-5. Por características (marca y modelo, sin página ni imagen) no se prellena mientras no se confirme que la IA puede buscar fuera con certeza; la opción existe apagada en la configuración de MS-15. Por qué: Sin certeza de la búsqueda externa se llenaría la ficha con el producto equivocado. Se apoya en PEN-46, PEN-21, RN-ENR-06.
  • D-IA-01-6. Lo que viene de la página del seller o de la imagen se toma del trabajo de IA de la identificación (FT-REF-04): no se vuelve a leer la página. Por qué: Un solo pago del modelo por propuesta y la misma lectura en todo el alta. Se apoya en RF-ENR-05, RF-MAT-05.

Qué falta decidir

IDQué falta
DUD-35Con el equipo de IA: qué atributos puede proponer el modelo de prellenado y con qué confianza mínima mostrarlos.
PD-27Regla única de validación humana: aquí, en el alta, la confirmación es siempre obligatoria.

También siguen abiertos: PEN-45, La lista de atributos que la IA puede inferir y los que necesitan contexto; PEN-46, Si la IA puede buscar fuera con marca y modelo con certeza (camino características).

Fuentes

  1. [D] trazabilidad/features/FT-IA-01-prellenado-ia-validacion-usuario.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.