En este documento, se proporciona una descripción general de alto nivel de los conceptos clave de la API del agente de IA para pedidos de comida.
Configuración del agente
El comportamiento del agente de IA de pedidos de comida se ve influenciado por la configuración de varios recursos de API: Brand, Store y Menu. Estos recursos definen la identidad del restaurante, sus ubicaciones físicas y los productos que ofrece, y proporcionan el contexto necesario para que el agente de IA gestione los pedidos.
Marca
Un Brand es el recurso de nivel superior que representa una marca de restaurante correspondiente a una o más ubicaciones de esa marca.
Contiene la configuración que se comparte en todas las ubicaciones de ese restaurante.
Brand puede incluir la configuración de muchas características de la personalidad del agente, como el comportamiento de saludo y las características de voz. Muchas de esas funciones se pueden anular con los valores configurados en el recurso Store o incluso en la configuración por sesión (consulta Ciclo de vida de la sesión).
Espacio de nombres
Un recurso Store representa una sola ubicación física de un restaurante que pertenece a un Brand. Define la configuración específica de esa ubicación, como su zona horaria, su estado (p.ej., ACTIVE, DISABLED), horarios de atención y segmentos del día (p.ej., períodos como "Desayuno" o "Almuerzo" durante los cuales hay disponibles ciertos elementos del menú).
Menú
Un recurso Menu define todos los productos que ofrece un restaurante, incluidas todas las opciones y personalizaciones posibles para cada producto vendible. Un Menu debe estar asociado a un Store.
El menú está diseñado para ser flexible y adaptarse a varias estructuras de menú, desde listas pequeñas de elementos independientes hasta árboles complejos de comidas combinadas con modificadores anidados.
Los componentes clave de un Menu incluyen los siguientes:
- Artículos: Son los productos de nivel superior que se pueden vender, como entradas a la carta, bebidas, guarniciones o comidas combinadas.
- ModifierGroups: Colecciones de opciones aplicables a un
Itemo a otroModifier, como "Elige un acompañamiento" o "Agrega ingredientes". - Modificadores: Son las opciones individuales dentro de un
ModifierGroup, como "Papas fritas", "Queso extra" o "Cola". Los modificadores pueden ajustar el precio del artículo y contener objetosModifierGroupanidados para una mayor personalización. - MenuCategories: Son las unidades organizativas, como "Aperitivos" o "Bebidas".
Un recurso Menu se identifica con un nombre en el siguiente formato:
projects/{project}/locations/{location}/menus/{menu}.
Para obtener más detalles sobre cómo estructurar los datos del menú, consulta Cómo integrar datos del menú.
Sesiones de pedidos de comida
Las sesiones de pedidos de comida son la base del agente de IA de Pedidos de comida, ya que permiten interacciones multimodales en tiempo real entre un cliente y el agente de IA. Cada sesión representa una sola conversación de pedido de comida y se administra con el método de RPC FoodOrderingService.BidiProcessOrder.
Método RPC BidiProcessOrder
Se trata de una RPC de transmisión bidireccional: la aplicación cliente transmite la entrada al agente, y el agente transmite simultáneamente las respuestas al cliente. Esto permite interacciones en tiempo real y de baja latencia.
- Transmisión del cliente al agente: El cliente envía una transmisión de mensajes
BidiProcessOrderRequestque contienen entrada de audio (voz del cliente), entrada de texto o entradas de eventos (como una actualización del carrito del cliente realizada por un cliente con una interfaz de toques o un evento de salida detectado por el hardware de un restaurante de comida rápida). - Agent-to-Client Stream: El agente devuelve una transmisión de mensajes
BidiProcessOrderResponseque contienen salida de audio (voz sintetizada del agente), salida de texto, transcripciones del habla reconocida, actualizaciones del estado del pedido del cliente o cualquier otro indicador, como interrupciones detectadas.
Ciclo de vida de la sesión
Cada sesión del agente de IA para pedidos de comida debe comenzar con la configuración proporcionada por el cliente, que se especifica con un mensaje BidiProcessOrderRequest que contiene un Config. El Config debe especificar dos campos:
store: Es el nombre completo del recurso delStorepara el que se realiza el pedido (p.ej.,projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). La sesión adopta la configuración especificada en el recursoStoreal que se hace referencia y en el recursoBrandprincipal de ese comercio. Cuando hay conflictos de configuración entreBrandyStore, la configuración deStoretiene prioridad.session: Es un identificador de sesión único con el formatoprojects/PROJECT/locations/LOCATION/sessions/SESSION. Elsession_ides un ID generado por el cliente que identifica de forma única una interacción o conversación del cliente.