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
| De | Qué |
|---|---|
| PE-3 · Plantilla asignada | La 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 seller | Lo 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
| A | Qué |
|---|---|
| FT-PRD-07 · Captura guiada por pasos con los mínimos primero | La 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
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 | Entrada Única · Vendor Center | MS-15 IA y enriquecimiento (por el BFF) | Pide prellenar la plantilla con lo extraído | API-15-003 |
| 2 | MS-15 IA y enriquecimiento | MS-01 Catálogo | Lee qué atributos ve el negocio en la plantilla | API-01-028 |
| 3 | MS-15 IA y enriquecimiento | MS-02 Producto | Lee lo ya capturado en la propuesta | API-02-054 |
| 4 | MS-15 IA y enriquecimiento | Modelos de IA | Propone valores desde la URL, la imagen o el homólogo | — |
| 5 | MS-15 IA y enriquecimiento | Base pim | Guarda cada sugerencia con su confianza y su fuente | — |
| 6 | MS-15 IA y enriquecimiento | Eventos | Avisa que las sugerencias están listas | catalog.ai.result/AI_SUGGESTION_READY |
| 7 | Eventos | MS-02 Producto | Entrega el aviso: marca sugerencias por confirmar | catalog.ai.result/AI_SUGGESTION_READY |
| 8 | Entrada Única · Vendor Center | MS-15 IA y enriquecimiento (por el BFF) | Trae las sugerencias para mostrarlas aparte | API-15-008 |
| 9 | Seller | Entrada Única · Vendor Center | Confirma, corrige o quita cada valor sugerido | — |
| 10 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide el plan con los valores y su procedencia | API-02-012 |
| 11 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Confirma el plan | API-02-057 |
| 12 | MS-02 Producto | Eventos | Avisa los valores y lo que hizo el usuario | catalog.product.changed/PRODUCT_UPDATED |
| 13 | Eventos | MS-15 IA y enriquecimiento | Entrega lo aceptado y lo corregido para medir | catalog.product.changed/PRODUCT_UPDATED |
3.1 Valores sin confirmar al enviar
3.2 Primer corte: prellenar con el catálogo
3.3 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Pedir sugerencias para la plantilla o para un bloque |
| Quién la llama | Entrada Única · Vendor Center (por el BFF), MS-02 Producto |
| Permiso | El dueño de la propuesta (seller o proveedor); MS-02 como servicio |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | ai_jobs |
| Publica | catalog.ai.result/AI_SUGGESTION_READY |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | BUSINESS_ERROR | Se pidió un bloque opcional y faltan obligatorios: primero se completan (candado) |
| 422 | VALIDATION_ERROR | No trae ninguna fuente o el bloque no es de la plantilla |
| 404 | NOT_FOUND | La 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.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-15-008 | GET /api/v2/ai/jobs/{jobId} | Traer las sugerencias con su confianza y su fuente | FT-IA-04 · Integración de los modelos de IA existentes |
| API-15-010 | GET /api/v2/ai/config | Ver 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-028 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective | Leer qué atributos ve el negocio y cuáles son de contexto | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | Leer lo ya capturado o el producto base del catálogo | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
| API-02-012 | POST /api/v2/products/{id}/values/plans | Guardar los valores confirmados con su procedencia | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar los valores | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-101 | GET /api/v2/products/{id}/gates | Ver el candado de envío con las sugerencias pendientes | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-06-005 | POST /api/v2/matches | Encontrar en el catálogo un producto que sirva de base | FT-REF-03 · Servicio de matching |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.ai.result/AI_SUGGESTION_READY | MS-15 termina las sugerencias de una propuesta | FT-ARQ-02 |
catalog.product.changed/PRODUCT_UPDATED | MS-02 guarda los valores confirmados o corregidos con su procedencia | FT-ACT-05, FT-ARQ-02, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.ai.result/AI_SUGGESTION_READY | MS-02 marca la propuesta con sugerencias por confirmar y no deja enviarla hasta resolverlas | esta misma épica |
catalog.product.changed/PRODUCT_UPDATED | MS-15 registra qué sugerencias se aceptaron, se corrigieron o se quitaron | esta misma épica |
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 |
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 |
lov_values | MS-01 | Cada valor de lista: código, etiqueta, orden y equivalencias por sistema. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-IA-01·H1 · La plantilla con lo que la IA encontró | P1 | pasos 1, 2, 3, 4, 5, 8; API-15-003 |
| FT-IA-01·H2 · Confirmar o corregir cada valor prellenado antes de avanzar | P1 | pasos 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 producto | P2 | flujo «Atributos desde la foto del proveedor» |
| FT-IA-01·H4 · Saber si con marca y modelo la IA puede buscar y prellenar el camino… | P2 | API-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álogo | P1 | flujo «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
| ID | Qué falta |
|---|---|
| DUD-35 | Con el equipo de IA: qué atributos puede proponer el modelo de prellenado y con qué confianza mínima mostrarlos. |
| PD-27 | Regla ú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
- [D]
trazabilidad/features/FT-IA-01-prellenado-ia-validacion-usuario.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.