Lleva las preferencias del cliente (estilo, color, material) al render
Hasta ahora el render solo se condicionaba con tipo/m²/calidad + notas de texto
libre por zona; lo que el cliente decía hablando con Luisa o en la llamada
(estilo, colores, materiales) se guardaba en estilo/tasteText pero NO viajaba al
generador de imagen, así que el render no lo representaba.
- b2c (perfil.ts): el payload de PERFIL_WEBHOOK_URL incluye ahora
preferencias:{estilo, gustos} (gustos = tasteText). Claves vacías se omiten.
- worker (webhook.dto): nuevo PreferenciasDto opcional.
- worker (prompt-builder): construirUserContent (función pura) inyecta el estilo
y los gustos del cliente como bloque dedicado y omite el "modern" por defecto
cuando hay preferencias; el system prompt prioriza colores/materiales del
cliente sobre un estilo genérico.
- worker (pipeline): enhebra preferencias hasta generarPrompt.
- worker (sandbox): acepta estilo/gustos para poder probarlos.
- docs/arquitectura-integracion: documenta el campo preferencias.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -52,6 +52,13 @@ export async function señalarPerfilCompleto(leadId: string): Promise<boolean> {
|
||||
urgencia: lead.urgencia,
|
||||
presupuestoTarget: lead.presupuestoTarget,
|
||||
},
|
||||
// Gustos estéticos del cliente (estilo + resumen en texto libre de lo que pidió hablando con
|
||||
// Luisa / en la llamada): se mandan al generador para que el render los represente. Se omiten
|
||||
// las claves vacías (JSON.stringify descarta undefined).
|
||||
preferencias: {
|
||||
estilo: lead.estilo || undefined,
|
||||
gustos: lead.tasteText || undefined,
|
||||
},
|
||||
empresa: { tenantId: lead.tenantId, nombre: tenant.nombreEmpresa },
|
||||
zonas: Array.from(zonas, ([zona, d]) => ({
|
||||
zona,
|
||||
|
||||
Reference in New Issue
Block a user