En esta guía, se explica cómo usar el framework de evaluación en el Agente de IA para Pedidos de comida para probar, validar y comparar tus agentes de IA para pedidos de comida.
La evaluación automatizada te permite verificar que tu agente de pedidos tome pedidos con precisión, maneje selecciones complejas de modificadores, aplique las reglas del menú correctamente y verifique el comportamiento del agente.
Descripción general del framework de evaluación
El framework de evaluación proporciona simulación y verificación automatizadas para las conversaciones de pedidos de comida. En lugar de probar manualmente cada elemento del menú y caso extremo conversacional, puedes definir paquetes de pruebas que ejecuten sesiones de clientes simuladas en tu agente y verificar el estado y el diálogo del carrito resultantes.
Durante una ejecución de evaluación, el framework simula el lado del cliente de la conversación con uno de los dos tipos de casos de prueba:
- Turnos de conversación predefinidos: Proporciona una secuencia de comandos de entradas de texto del cliente para pruebas de regresión deterministas. Usa este modo para verificar que las frases exactas del cliente produzcan las respuestas esperadas del agente o para reproducir sesiones y escalamientos reales de clientes de producción.
- Simulación de sesión basada en instrucciones dinámicas: Proporciona una instrucción de pedido de lenguaje natural de alto nivel (como pedir artículos específicos, solicitar sustituciones o preguntar sobre alérgenos). Un simulador de clientes LLM interpreta la conversación de forma dinámica y prueba cómo tu agente maneja el diálogo realista, las preguntas aclaratorias, los cambios de opinión en medio del pedido y las diferentes frases de los clientes.
Modelo de recursos de evaluación
El framework de evaluación se estructura en torno a cuatro recursos principales:
EvaluationDataset: Es una colección con nombre de casos de evaluación que representan un paquete de pruebas, como un paquete de pruebas de regresión del menú principal o pruebas de combos de desayuno.EvaluationCase: Es un caso de prueba individual que evalúa una interacción de pedidos (con turnos predefinidos o instrucciones dinámicas) en función de un contexto de evaluación y un conjunto de comparadores.EvaluationContext: Es el entorno de ejecución de un caso de prueba o conjunto de datos, incluida la ubicación de la tienda objetivo, el menú activo, el horario y la hora de inicio de la sesión simulada.EvaluationMatcher: Es una regla de aserción que se evalúa al final de la sesión de pedidos y que verifica estados específicos del carrito, texto de expresiones o criterios semánticos.
Comparadores de evaluación
Un EvaluationMatcher define una condición que el agente debe satisfacer para que el caso de prueba se apruebe. Un caso de evaluación puede hacer referencia a varios comparadores, y cada comparador produce un resultado booleano de aprobado o reprobado:
- Comparador de resultados de pedidos: Compara el carrito final del cliente con un
Orderesperado. El comparador verifica que todos los artículos, los grupos de modificadores, los modificadores anidados y las cantidades de artículos coincidan después de la normalización. - Comparador de cadenas de expresiones del agente: Verifica si las respuestas del agente contienen una subcadena específica o coinciden con una expresión regular. Puedes invertir la condición de coincidencia para verificar que el agente no diga frases prohibidas.
- Comparador de juicios de LLM: Usa un juez de LLM para evaluar criterios de lenguaje natural que no se pueden validar con la coincidencia exacta de cadenas. Por ejemplo, puedes afirmar: "El agente confirmó si el cliente quería queso antes de finalizar el pedido" o "El agente le informó amablemente al cliente que los batidos no están disponibles durante el desayuno".
Contextos de evaluación
Un EvaluationContext configura el entorno del restaurante en el que se ejecuta la sesión de evaluación:
- Tienda: Es el nombre del recurso de la tienda objetivo (
projects/{project}/locations/{location}/brands/{brand}/stores/{store}). La tienda determina el menú activo, los precios, la zona horaria y las anulaciones de personalización del agente. - Menú: Es un nombre de recurso de menú opcional para probar un menú candidato antes de asociarlo con una tienda en producción.
- ID de horario: Es un ID de horario opcional (como
breakfastodinner) para verificar la disponibilidad de los elementos del menú y las reglas de fijación de precios durante períodos de comida específicos. - Hora de inicio de la sesión de prueba: Es una marca de tiempo ISO opcional para simular pedidos realizados a una hora específica del día o de la semana.
Cómo evaluar en la consola del Agente de IA para Pedidos de comida
La consola del Agente de IA para Pedidos de comida proporciona una interfaz interactiva para administrar conjuntos de datos de evaluación, ejecutar pruebas y analizar resultados.
1. Crea un contexto de evaluación
- En la consola del Agente de IA para Pedidos de comida, selecciona tu proyecto y marca.
- En el menú de navegación, haz clic en Evaluación.
- Haz clic en la pestaña Contextos.
- Haz clic en Nuevo contexto.
- Ingresa un nombre visible y selecciona la Tienda objetivo.
- Opcional: Selecciona una anulación específica de Menú o Horario.
- Haz clic en Crear.
2. Crea comparadores de evaluación
- En la página Evaluación, haz clic en la pestaña Comparadores.
- Haz clic en Nuevo comparador.
- Ingresa un nombre visible y elige el tipo de comparador:
- Resultado del pedido: Para crear el pedido esperado, selecciona artículos, modificadores y cantidades.
- Expresión del agente: Ingresa la subcadena o el patrón de expresión regular requeridos.
- Juicio de LLM: Ingresa los criterios de lenguaje natural para el juez de LLM.
- Haz clic en Crear.
3. Crea conjuntos de datos y, luego, importa casos de prueba
En la consola, los casos de prueba pueden existir por sí solos o estar organizados en conjuntos de datos. Puedes crear conjuntos de datos directamente en la consola, pero los casos de prueba se deben importar desde archivos YAML o convertir desde sesiones de producción.
Crea un conjunto de datos
- En la consola del Agente de IA para Pedidos de comida, navega a Evaluación > Conjuntos de datos y casos.
- En el panel Conjuntos de datos, haz clic en Nuevo conjunto de datos.
- Ingresa un nombre visible (como
Combo Meals Regression) y una descripción opcional. - Haz clic en Crear.
También puedes hacer clic en Importar en el panel Conjuntos de datos para importar conjuntos de datos desde un archivo YAML.
En el siguiente archivo YAML de muestra, se define un conjunto de datos de evaluación con casos de evaluación intercalados:
- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationDatasets/DATASET_ID
displayName: Core Combo Regression
description: Core combo ordering and modifier selection regression suite
evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
evaluationCases:
- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_1
displayName: double_cheeseburger_combo
description: Tests combo meal ordering with side and drink modifier selections
evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
evaluationMatchers:
- projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/ORDER_MATCHER_ID
staticTextTurnCase:
textTurns:
- userTextInput: "I'd like a double cheeseburger combo."
exampleAgentResponse: "What drink and side would you like with your combo?"
- userTextInput: "Onion rings and a large diet cola, please."
exampleAgentResponse: "Got it, a double cheeseburger combo with onion rings and a large diet cola. Anything else?"
- userTextInput: "No, that's everything."
exampleAgentResponse: ''
Importa casos de evaluación
- En el panel Casos, haz clic en Importar.
- Selecciona un archivo YAML que defina tus casos de evaluación.
- Confirma la carga. Los casos importados aparecen en la lista Casos.
También puedes hacer clic en Exportar en el panel Conjuntos de datos o Casos para descargar las definiciones existentes como archivos YAML.
En el siguiente archivo YAML de muestra, se definen casos de evaluación con turnos de conversación, contextos de evaluación y comparadores predefinidos:
- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_1
displayName: Double Cheeseburger Combo
description: Tests combo meal ordering with side and drink modifier selections
evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
evaluationMatchers:
- projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/ORDER_MATCHER_ID
- projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/UTTERANCE_MATCHER_ID
staticTextTurnCase:
textTurns:
- userTextInput: "I'd like a double cheeseburger combo."
exampleAgentResponse: "What drink and side would you like with your combo?"
- userTextInput: "Onion rings and a large diet cola, please."
exampleAgentResponse: "Got it, a double cheeseburger combo with onion rings and a large diet cola. Anything else?"
- userTextInput: "No, that's everything."
- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_2
displayName: Breakfast Allergen Inquiry
description: Tests agent handling of customer allergy questions during breakfast
evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
evaluationMatchers:
- projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/LLM_JUDGEMENT_MATCHER_ID
staticTextTurnCase:
textTurns:
- userTextInput: "Are your pancakes prepared with peanut oil?"
- userTextInput: "Okay, I'll take the oatmeal instead."
Organiza los casos en conjuntos de datos
Los casos de evaluación pueden existir de forma independiente sin pertenecer a un conjunto de datos. Para organizar los casos en un conjunto de datos, haz lo siguiente:
- En el panel Casos, selecciona uno o más casos de prueba con sus casillas de verificación.
- Arrastra los casos seleccionados al conjunto de datos objetivo en el panel Conjuntos de datos.
- Haz clic en el conjunto de datos en el panel Conjuntos de datos para expandirlo y revisar sus casos asignados.
4. Convierte sesiones de clientes del Historial de pedidos
Para reproducir problemas informados por los clientes o crear paquetes de pruebas directamente a partir del tráfico de producción real, haz lo siguiente:
- En el menú de navegación, haz clic en Historial de pedidos.
- Haz clic en la fila de la sesión de pedidos que deseas probar.
- En el panel Detalles del pedido, haz clic en Convertir en caso de evaluación.
- Selecciona o crea un contexto de evaluación y comparadores.
- Haz clic en Convertir. Las expresiones de los clientes paso a paso se convierten automáticamente en un caso de evaluación.
5. Ejecuta evaluaciones y revisa los resultados
Puedes ejecutar un conjunto de datos completo o ejecutar casos individuales seleccionados:
- Ejecutar un conjunto de datos: En el panel Conjuntos de datos, haz clic en Ejecutar conjunto de datos junto al conjunto de datos objetivo.
- Ejecutar casos individuales: En el panel Casos, selecciona uno o más casos con las casillas de verificación y, luego, haz clic en Ejecutar en la barra de acciones de selección.
Para supervisar las ejecuciones y revisar los resultados detallados, haz lo siguiente:
- Haz clic en la pestaña Historial para hacer un seguimiento del progreso de la ejecución, la tasa de aprobación general y la duración de la ejecución.
- Haz clic en cualquier ejecución de la tabla de historial para ver los resultados detallados de los casos:
- Resumen: Revisa el porcentaje general de aprobación o reprobación y los casos totales aprobados.
- Transcripciones de turnos: Inspecciona el diálogo paso a paso entre el cliente simulado y el agente.
- Detalles del comparador: Revisa qué comparadores se aprobaron o reprobaron, incluidas las explicaciones del juez de LLM para los criterios cualitativos reprobados.
¿Qué sigue?
- Obtén información para configurar las ubicaciones de las tiendas y explorar los menús.
- Prueba las interacciones de pedidos de forma interactiva con la vista previa del agente.