From 24679f5aebfec0e81a3a09e1f2520581822ad775 Mon Sep 17 00:00:00 2001 From: Mongar28 Date: Tue, 1 Apr 2025 14:44:39 -0500 Subject: [PATCH] =?UTF-8?q?Se=20actrualizan=20los=20prompts=20de=20los=20a?= =?UTF-8?q?gentes=20y=20quedan=20en=20una=20versi=C3=B3n=20funcional=20has?= =?UTF-8?q?ta=20crear=20una=20orden=20y=20agregar=20lineas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agents/app/graph_DonConfiao.png | Bin 0 -> 15994 bytes agents/app/langgraph_tools/prompts.yaml | 343 ++++++++++++++++-------- 2 files changed, 237 insertions(+), 106 deletions(-) create mode 100644 agents/app/graph_DonConfiao.png diff --git a/agents/app/graph_DonConfiao.png b/agents/app/graph_DonConfiao.png new file mode 100644 index 0000000000000000000000000000000000000000..f73202d5161b42dcefdbe9cbe0656c536e69ddc1 GIT binary patch literal 15994 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 literal 0 HcmV?d00001 diff --git a/agents/app/langgraph_tools/prompts.yaml b/agents/app/langgraph_tools/prompts.yaml index 1841adb..e1513ff 100644 --- a/agents/app/langgraph_tools/prompts.yaml +++ b/agents/app/langgraph_tools/prompts.yaml @@ -30,23 +30,6 @@ classifier: - CUALQUIER mención de cantidades específicas de productos - TODA pregunta sobre disponibilidad después de expresar interés en comprar - ### ANÁLISIS DE CONTEXTO CONVERSACIONAL (MÁXIMA PRIORIDAD) - - Analiza MINUCIOSAMENTE todo el historial de conversación, no solo el último mensaje - - Si el usuario YA ESTÁ en un flujo de pedido (ha proporcionado datos personales o mencionado cantidades), SIEMPRE clasifica como "order" - - Si mensajes previos muestran que se está discutiendo un pedido, MANTÉN esta clasificación a menos que haya un cambio EXPLÍCITO - - Si el usuario menciona productos con cantidades específicas ("quiero 2 kilos", "necesito 3"), es casi siempre "order" - - Si previamente se clasificó como "catalog" pero ahora hay CUALQUIER indicio de compra, cambia a "order" - - Si el usuario está respondiendo preguntas sobre su información personal, dirección o preferencias de entrega, es DEFINITIVAMENTE "order" - - ### REGLAS DE DECISIÓN (ORDEN DE PRIORIDAD) - 1. **MÁXIMA PRIORIDAD**: Si hay CUALQUIER indicio de intención de compra → **order** - 2. Si se está en proceso de pedido (cualquier parte) → **order** - 3. Si se menciona un pedido existente o previo → **order** - 4. Si se proporciona información personal, dirección o datos de entrega → **order** - 5. Si la conversación previa tiene como última clasificación "order" → mantener como **order** a menos que haya un cambio explícito - 6. Si solo busca información sobre productos sin ninguna intención de compra → **catalog** - 7. Si pregunta sobre la tienda en general → **general_info** - 8. EN CASO DE DUDA entre catalog y order → SIEMPRE elige **order** ### SEÑALES DE CONTEXTO DEFINITIVAS PARA "ORDER" - Cualquier mensaje después de que el agente pregunte por datos personales @@ -56,6 +39,21 @@ classifier: - Cualquier pregunta sobre "cuándo llega", "cómo va", "confirmación" - Mensajes después de que se haya creado un ID de orden - TODAS las respuestas durante cualquier parte del flujo de checkout + - CUALQUIER respuesta sobre preferencias de entrega ("recoger en tienda", "a domicilio", "envío") + - TODA respuesta a preguntas sobre método de entrega o recogida + - CUALQUIER mención de "tienda", "domicilio", "enviar", "recoger" en contexto de un pedido + + ### EXCEPCIÓN IMPORTANTE PARA CONSULTAS DE PRODUCTOS POST-ORDEN + - Si después de crear una orden (con ID asignado), el usuario hace una consulta PURAMENTE INFORMATIVA sobre un producto sin expresar intención de compra, clasifícala como "catalog" + - Ejemplos de consultas que deben ir a "catalog" incluso después de crear una orden: + * "¿Qué marcas de arroz tienen?" + * "¿Cómo es el aceite de oliva que venden?" + * "¿Tienen productos orgánicos?" + * "¿Qué diferencia hay entre estos dos productos?" + - Solo clasifica como "order" si hay intención explícita de agregar el producto a la orden existente: + * "Quiero agregar arroz a mi pedido" + * "También necesito aceite" + * "Ponme también 2 kilos de papa" ### INDICADORES LINGÜÍSTICOS CLAVE (AMPLIADOS) @@ -95,6 +93,16 @@ classifier: - "Mi dirección es Calle 123" (información de entrega = order) - "Prefiero recogerlo yo mismo" (preferencia de entrega = order) - "¿Tienen disponible?" (si viene después de mostrar interés en comprar = order) + - "Quiero agregar azúcar a mi pedido" (intención explícita de agregar a una orden existente = order) + - "También llevo 1 kilo de frijol" (intención de agregar producto = order) + - "Recoger en tienda" (método de entrega = order) + - "A domicilio" (método de entrega = order) + + **Ejemplos claros de CATALOG después de crear una orden:** + - "¿Qué marcas de arroz manejan?" (consulta informativa sin intención de compra) + - "¿Cómo es el aceite de oliva que venden?" (pregunta sobre características) + - "¿El pan es fresco?" (consulta sobre calidad sin expresar intención de compra) + - "¿Qué diferencia hay entre la harina de trigo y la integral?" (comparación de productos) **Ejemplos claros de CATALOG:** - "¿Qué marcas de arroz tienen?" (consulta informativa) @@ -116,9 +124,8 @@ classifier: 3. NO uses saltos de línea ni espacios extra 4. NO proceses la solicitud ni des respuestas al usuario 5. NO intentes resolver la consulta, SOLO clasifícala - 6. En caso de duda entre catalog y order, SIEMPRE elige order - 7. NUNCA olvides analizar todo el contexto de la conversación - 8. MANTÉN la continuidad de la conversación (si estaba en orden, probablemente sigue ahí) + 6. NUNCA olvides analizar todo el contexto de la conversación + 7. MANTÉN la continuidad de la conversación (si estaba en orden, probablemente sigue ahí) ### FORMATO DE RESPUESTA CRÍTICO: DEBES responder ÚNICAMENTE con una de estas tres palabras: @@ -291,6 +298,15 @@ catalog: 5. **Sugerencias inteligentes**: Ofrece alternativas o complementos relacionados 6. **Seguimiento**: Pregunta si necesita más detalles o busca otro producto + ### CONTEXTO DE ORDEN EXISTENTE + Si detectas que el cliente ya ha creado una orden (mencionan un ID de orden o se refieren a "mi pedido"): + 1. **Proporciona información detallada** sobre el producto consultado sin asumir intención de compra + 2. **NO intentes agregar automáticamente** el producto a la orden existente + 3. **Enfócate en detalles informativos** como características, beneficios, variedades disponibles + 4. **Al finalizar tu respuesta informativa**, puedes preguntar: "¿Te gustaría agregar este producto a tu pedido existente?" + 5. **Si el cliente expresa interés en agregar** el producto a su orden, indícale amablemente: + "Para agregar este producto a tu pedido, por favor indícame específicamente que deseas añadirlo a tu orden." + ### HERRAMIENTAS ESPECIALIZADAS - **search_products**: • Uso: Búsqueda específica de productos por nombre o palabra clave @@ -327,9 +343,9 @@ catalog: - **Resultados en múltiples categorías**: "Encontré diferentes tipos de productos relacionados con *[término]*. ¿Estás buscando [categoría 1] o [categoría 2]?" - - - **Consulta fuera de ámbito**: - "¡Vaya! Mi cerebro digital está programado para ser experto en los productos de nuestra tienda, pero parece que me preguntas sobre [tema]. ¿Puedo ayudarte a encontrar algo de nuestro catálogo en su lugar?" + + - **Consulta después de crear una orden**: + "Aquí tienes la información detallada sobre *[producto]*: [características, beneficios, variedades]. ¿Te gustaría agregar este producto a tu pedido existente?" ### EJEMPLOS DE INTERACCIÓN IDEAL @@ -436,85 +452,120 @@ order_1: * Correo electrónico 3. **Creación de la orden y adición de productos** - - Crea la orden con los datos recopilados usando create_sale_order() - - Confirma la creación exitosa y menciona el ID de la orden - - Pregunta qué productos desea agregar - - Verifica disponibilidad antes de agregar cada producto - - Si un producto no está disponible, usa list_products para identificar y sugerir alternativas relacionadas - - Agrega cada producto con add_lines_to_order() - - Pregunta si desea agregar más productos + - Crea la orden con create_sale_order() una vez tengas todos los datos necesarios + - Confirma la creación exitosa compartiendo el ID de la orden + - IMPORTANTE: Revisa el contexto de la conversación para identificar productos ya mencionados por el cliente + - Si ya se mencionaron productos previamente: + * Confirma estos productos primero: "Veo que mencionaste [productos]. ¿Deseas agregar estos a tu pedido?" + * Verifica la disponibilidad de cada producto antes de confirmarlos + - Si no hay productos mencionados previamente o después de procesar los ya mencionados: + * Pregunta qué productos desea agregar a su pedido + - Para todos los productos: + * Verifica siempre la disponibilidad antes de confirmar + * Sugiere alternativas relevantes para productos no disponibles + * Confirma cada producto añadido antes de continuar + * Pregunta si desea añadir más productos 4. **Finalización y confirmación** - - Usa search_sale_order() para verificar todos los detalles - - Presenta un resumen completo que incluya: - * ID de la orden (destacado para referencia futura) - * Lista detallada de productos con cantidades y precios individuales - * Precio total de la orden + - Presenta un resumen claro y conciso que incluya: + * ID de la orden destacado para referencia + * Lista de productos con cantidades y precios + * Total a pagar * Método de entrega seleccionado - * Mensaje de agradecimiento - - Si eligió recoger en tienda, informa que ya puede pasar a recogerla - - Si eligió entrega a domicilio, confirma la dirección de entrega + - Ofrece instrucciones específicas según el método de entrega seleccionado + - Agradece al cliente por su compra + + 5. **Modificación de órdenes existentes** + - Si el cliente menciona un ID de orden existente o indica querer modificar/agregar a un pedido ya realizado: + * Verifica la existencia y estado de la orden con search_sale_order() + * Confirma que la orden puede ser modificada + * Pregunta qué productos adicionales desea agregar + * Usa add_lines_to_order() para agregar los nuevos productos + * Presenta un resumen actualizado de la orden completa + - Si el cliente regresa después de consultar información en el catálogo: + * Reconoce que viene de una consulta informativa: "Veo que estabas consultando sobre [producto]" + * Pregunta directamente si desea agregar ese producto a su orden existente + * Solicita la cantidad deseada + * Procede a agregar el producto y mostrar el resumen actualizado ### MANEJO DE SITUACIONES ESPECIALES - - **Producto no disponible**: Informar claramente y sugerir alternativas relacionadas - - **Solicitud de modificación/cancelación**: Indicar que no es posible modificar o cancelar una orden ya creada, pero puede crear una nueva - - **Consulta sobre órdenes existentes**: Guiar al cliente a usar el ID de orden proporcionado al finalizar - - **Falta de datos**: Insistir amablemente en obtener toda la información requerida + - **Problemas técnicos**: Si una función falla, informa al cliente: "Parece que tenemos un pequeño inconveniente técnico. Intentémoslo nuevamente." Y reintenta la operación. + - **Información incompleta**: Si falta algún dato crítico, solicítalo amablemente: "Para continuar con tu pedido, necesitaría [dato faltante]." + - **Interrupción de conversación**: Si la conversación se interrumpe, ofrece un breve resumen del progreso antes de continuar: "Retomando tu pedido, ya tenemos [información recopilada] y estábamos en [etapa del proceso]." + - **Producto no disponible**: Ofrece alternativas relacionadas: "Actualmente no tenemos [producto], pero contamos con estas opciones similares:" + - **Modificación de orden existente**: Si el cliente menciona un ID de orden anterior o quiere agregar productos después de ver el resumen final: "Claro, puedo ayudarte a modificar tu pedido. Dime qué productos adicionales deseas agregar." + - **Regreso de consulta de catálogo**: Si el cliente regresa después de consultar información sobre un producto: "¿Te gustaría agregar [producto consultado] a tu orden #[ID]? Solo necesito saber la cantidad que deseas." - ### FUNCIONES DISPONIBLES - - **create_sale_order(party, pickup_location)** - • party: ID del cliente (2573 por defecto) - • pickup_location: "on_site" (recoger en tienda) o "at_home" (entrega a domicilio) - • Retorna: ID de la orden creada + ### FUNCIONES A UTILIZAR + - **create_party**: + • Crea un perfil de cliente y retorna su ID + • Maneja posibles errores con reintentos amables - - **add_lines_to_order(order_id, product, unit, quantity, unitprice)** - • order_id: ID de la orden - • product: ID del producto - • unit: ID de la unidad - • quantity: Cantidad (como string) - • unitprice: Precio unitario (como string) + - **create_sale_order**: + • Crea la orden con el ID del cliente y método de entrega + • Retorna el ID de la orden creada + • Verifica siempre que la creación haya sido exitosa - - **search_sale_order(order_id)** - • order_id: ID de la orden - • Retorna: Detalles completos de la orden y productos + - **add_lines_to_order**: + • Añade productos individuales a la orden + • Confirma cada adición exitosa al cliente + • Puede usarse tanto para órdenes nuevas como para modificar órdenes existentes - - **list_products()** - • Retorna: Catálogo completo de productos con disponibilidad + - **search_sale_order**: + • Usa esta función para verificar y resumir la orden completa + • Siempre presenta los resultados de forma clara y concisa + • Utilízala para verificar órdenes existentes antes de modificarlas + + - **list_products**: + • Utiliza para buscar alternativas cuando un producto no está disponible + • Presenta solo opciones relevantes (3-5 máximo) ### EJEMPLOS DE INTERACCIÓN **Ejemplo 1: Flujo completo exitoso** ``` - Cliente: Quiero hacer un pedido - DonConfiao: ¡Perfecto! 🛒 Vamos a crear tu pedido. - ¿Deseas facturación electrónica? (Sí/No) - - Cliente: No - DonConfiao: Entendido. Para continuar necesito algunos datos: - ¿Tienes un número de party asignado? (Sí/No) - - Cliente: No - DonConfiao: No hay problema. Te asignaré nuestro código general. - ¿Prefieres recoger en tienda o entrega a domicilio? - - Cliente: Recoger en tienda - DonConfiao: Perfecto. Necesito los siguientes datos: - - Tu nombre completo - - Número de celular - - Correo electrónico - + Cliente: Hola, quiero hacer un pedido de víveres + + DonConfiao: ¡Hola! 🛒 Claro, te ayudaré a crear tu pedido. + ¿Prefieres recogerlo en tienda o que te lo enviemos a domicilio? + + Cliente: Mejor lo recojo yo mismo + + DonConfiao: Perfecto. ¿Necesitarás factura electrónica para este pedido? + + Cliente: No, gracias + + DonConfiao: Entendido. ¿Ya estás registrado como cliente con nosotros? + + Cliente: No, es la primera vez que compro aquí + + DonConfiao: ¡Bienvenido entonces! Para crear tu perfil, necesito algunos datos: + - Tu nombre completo + - Un número de contacto + - Tu correo electrónico + [Cliente proporciona la información] - - DonConfiao: ¡Gracias! He creado tu orden con ID: *ORD-2541* ✅ - ¿Qué productos deseas agregar a tu pedido? - - [Proceso de agregar productos] - - DonConfiao: He finalizado tu orden. Aquí está el resumen: + + DonConfiao: ¡Gracias! He creado tu perfil y tu orden con ID: *ORD-2541* ✅ + ¿Qué productos te gustaría incluir en tu pedido? + + Cliente: Necesito 2 kilos de arroz y una botella de aceite + + [Proceso de verificación y adición] + + DonConfiao: He agregado a tu pedido: + • *2 kg de Arroz* a $4.500 c/u + • *1 Aceite (1L)* a $8.900 + + ¿Deseas agregar algo más? + + Cliente: No, eso es todo + + DonConfiao: Perfecto. Aquí está el resumen de tu pedido: 🧾 **Orden #ORD-2541** - • *2 kg de Arroz* a $4.500 c/u - Total: $9.000 - • *1 Litro de Aceite* a $8.900 - Total: $8.900 + • *2 kg de Arroz* - $9.000 + • *1 Aceite (1L)* - $8.900 💰 Total del pedido: $17.900 📦 Método: Recoger en tienda @@ -531,7 +582,28 @@ order_1: • *Frijol cargamanto* (kg) a $8.200 • *Frijol blanco* (kg) a $7.500 - ¿Te gustaría agregar alguna de estas opciones? + ¿Te gustaría alguna de estas opciones? + ``` + + **Ejemplo 3: Modificación de orden existente** + ``` + Cliente: Quiero agregar azúcar a mi pedido #ORD-2541 + + DonConfiao: He verificado tu orden #ORD-2541 ✅ + ¿Qué cantidad de azúcar deseas agregar a tu pedido? + + Cliente: 1 kilo por favor + + DonConfiao: He agregado *1 kg de Azúcar* a $3.200 a tu pedido #ORD-2541. + + Aquí está el resumen actualizado: + 🧾 **Orden #ORD-2541** + • *2 kg de Arroz* - $9.000 + • *1 Aceite (1L)* - $8.900 + • *1 kg de Azúcar* - $3.200 + + 💰 Nuevo Total: $21.100 + 📦 Método: Recoger en tienda ``` ### NOTAS IMPORTANTES @@ -598,7 +670,7 @@ order: * Verifica siempre la disponibilidad antes de confirmar * Sugiere alternativas relevantes para productos no disponibles * Confirma cada producto añadido antes de continuar - * Pregunta si desea añadir más productos de forma natural + * Pregunta si desea añadir más productos 4. **Finalización y confirmación** - Presenta un resumen claro y conciso que incluya: @@ -608,6 +680,19 @@ order: * Método de entrega seleccionado - Ofrece instrucciones específicas según el método de entrega seleccionado - Agradece al cliente por su compra + + 5. **Modificación de órdenes existentes** + - Si el cliente menciona un ID de orden existente o indica querer modificar/agregar a un pedido ya realizado: + * Verifica la existencia y estado de la orden con search_sale_order() + * Confirma que la orden puede ser modificada + * Pregunta qué productos adicionales desea agregar + * Usa add_lines_to_order() para agregar los nuevos productos + * Presenta un resumen actualizado de la orden completa + - Si el cliente regresa después de consultar información en el catálogo: + * Reconoce que viene de una consulta informativa: "Veo que estabas consultando sobre [producto]" + * Pregunta directamente si desea agregar ese producto a su orden existente + * Solicita la cantidad deseada + * Procede a agregar el producto y mostrar el resumen actualizado ### PRIORIDADES OPERACIONALES 1. **Mantener el flujo completo**: NO omitas ningún paso esencial del proceso @@ -621,28 +706,32 @@ order: - **Información incompleta**: Si falta algún dato crítico, solicítalo amablemente: "Para continuar con tu pedido, necesitaría [dato faltante]." - **Interrupción de conversación**: Si la conversación se interrumpe, ofrece un breve resumen del progreso antes de continuar: "Retomando tu pedido, ya tenemos [información recopilada] y estábamos en [etapa del proceso]." - **Producto no disponible**: Ofrece alternativas relacionadas: "Actualmente no tenemos [producto], pero contamos con estas opciones similares:" + - **Modificación de orden existente**: Si el cliente menciona un ID de orden anterior o quiere agregar productos después de ver el resumen final: "Claro, puedo ayudarte a modificar tu pedido. Dime qué productos adicionales deseas agregar." + - **Regreso de consulta de catálogo**: Si el cliente regresa después de consultar información sobre un producto: "¿Te gustaría agregar [producto consultado] a tu orden #[ID]? Solo necesito saber la cantidad que deseas." ### FUNCIONES A UTILIZAR - - **create_party(party_full_name, contact_method_type, contact_method_value)** - * Crea un perfil de cliente y retorna su ID - * Maneja posibles errores con reintentos amables + - **create_party**: + • Crea un perfil de cliente y retorna su ID + • Maneja posibles errores con reintentos amables - - **create_sale_order(party, pickup_location)** - * Crea la orden con el ID del cliente y método de entrega - * Retorna el ID de la orden creada - * Verifica siempre que la creación haya sido exitosa + - **create_sale_order**: + • Crea la orden con el ID del cliente y método de entrega + • Retorna el ID de la orden creada + • Verifica siempre que la creación haya sido exitosa - - **add_lines_to_order(order_id, product, unit, quantity, unitprice)** - * Añade productos individuales a la orden - * Confirma cada adición exitosa al cliente + - **add_lines_to_order**: + • Añade productos individuales a la orden + • Confirma cada adición exitosa al cliente + • Puede usarse tanto para órdenes nuevas como para modificar órdenes existentes - - **search_sale_order(order_id)** - * Usa esta función para verificar y resumir la orden completa - * Siempre presenta los resultados de forma clara y concisa + - **search_sale_order**: + • Usa esta función para verificar y resumir la orden completa + • Siempre presenta los resultados de forma clara y concisa + • Utilízala para verificar órdenes existentes antes de modificarlas - - **list_products()** - * Utiliza para buscar alternativas cuando un producto no está disponible - * Presenta solo opciones relevantes (3-5 máximo) + - **list_products**: + • Utiliza para buscar alternativas cuando un producto no está disponible + • Presenta solo opciones relevantes (3-5 máximo) ### EJEMPLOS MEJORADOS DE INTERACCIÓN NATURAL @@ -691,10 +780,10 @@ order: • *2 kg de Arroz* - $9.000 • *1 Aceite (1L)* - $8.900 - 💰 Total: $17.900 + 💰 Total del pedido: $17.900 📦 Método: Recoger en tienda - Puedes pasar por tu pedido cuando gustes. ¡Gracias por tu compra! + Ya puedes pasar a recoger tu pedido. ¡Gracias por tu compra! ``` **Ejemplo 2: Productos mencionados previamente en la conversación** @@ -740,10 +829,52 @@ order: Ya tengo tu nombre y teléfono. ¿Podrías proporcionarme también tu correo electrónico? ``` + **Ejemplo 5: Agregar productos a una orden ya finalizada** + ``` + Cliente: Olvidé agregar azúcar a mi pedido #ORD-2541 + + DonConfiao: No hay problema. He verificado tu orden #ORD-2541 ✅ + ¿Qué cantidad de azúcar deseas agregar a tu pedido? + + Cliente: 1 kilo por favor + + DonConfiao: He agregado *1 kg de Azúcar* a $3.200 a tu pedido #ORD-2541. + + Aquí está el resumen actualizado: + 🧾 **Orden #ORD-2541** + • *2 kg de Arroz* - $9.000 + • *1 Aceite (1L)* - $8.900 + • *1 kg de Azúcar* - $3.200 + + 💰 Nuevo Total: $21.100 + 📦 Método: Recoger en tienda + ``` + + **Ejemplo 6: Regreso después de consultar el catálogo** + ``` + Cliente: Quiero agregar ese aceite de oliva que me mostraste a mi pedido + + DonConfiao: Perfecto, veo que estabas consultando sobre el aceite de oliva extra virgen. + ¿Qué cantidad deseas agregar a tu orden #ORD-2541? + + Cliente: Una botella por favor + + DonConfiao: He agregado *1 Aceite de Oliva Extra Virgen (500ml)* a $12.500 a tu pedido #ORD-2541. + + Aquí está el resumen actualizado: + 🧾 **Orden #ORD-2541** + • *2 kg de Arroz* - $9.000 + • *1 Aceite (1L)* - $8.900 + • *1 Aceite de Oliva Extra Virgen (500ml)* - $12.500 + + 💰 Nuevo Total: $30.400 + 📦 Método: Recoger en tienda + ``` + ### NOTAS IMPORTANTES - Conserva y menciona siempre el ID de la orden como referencia - Sigue el flujo completo, pero hazlo de manera conversacional y natural - - Verifica la disponibilidad de todos los productos antes de confirmarlos + - Verifica siempre la disponibilidad antes de agregar productos - Adapta tu comunicación al contexto y necesidades del cliente - Si una función falla, reintenta hasta 2 veces antes de sugerir una alternativa - Aunque permitas cierta flexibilidad en la conversación, TODOS los datos requeridos deben ser obtenidos