Este documento apresenta uma visão geral dos principais conceitos da API do agente de IA para pedidos de comida.
Configuração do agente
O comportamento do agente de IA para pedidos de comida é influenciado pela configuração de
vários recursos de API: Brand, Store e Menu. Esses recursos definem a identidade do restaurante, os locais físicos e os produtos oferecidos, fornecendo o contexto necessário para que o agente de IA processe os pedidos.
Marca
Um Brand é o recurso de nível superior, representando uma marca de restaurante correspondente a um ou mais locais dessa marca.
Ele contém a configuração compartilhada em todos os locais do restaurante.
O Brand pode incluir a configuração de muitos recursos da personalidade do agente, como comportamento de saudação e características de voz. Muitos desses recursos podem ser substituídos por valores configurados no recurso Store ou até mesmo na configuração por sessão (consulte Ciclo de vida da sessão).
Loja
Um recurso Store representa um único local físico de restaurante pertencente a um
Brand. Ele define configurações específicas para esse local, como fuso horário, status (por exemplo, ACTIVE, DISABLED), horários de funcionamento e períodos do dia (por exemplo, períodos como "Café da manhã" ou "Almoço" em que determinados itens do cardápio estão disponíveis).
Menu
Um recurso Menu define todos os produtos oferecidos por um restaurante, incluindo todas as opções e personalizações possíveis para cada produto vendável. Um Menu
precisa estar associado a um Store.
O menu foi projetado para ser flexível e acomodar várias estruturas, desde
pequenas listas de itens independentes até árvores complexas de refeições combinadas com modificadores aninhados.
Os principais componentes de um Menu incluem:
- Itens: produtos de nível superior vendáveis, como entradas à la carte, bebidas, acompanhamentos ou refeições combinadas.
- ModifierGroups: coleções de opções aplicáveis a um
Itemou outroModifier, como "Escolha um lado" ou "Adicionar complementos". - Modificadores: opções individuais em um
ModifierGroup, como "Batata frita", "Queijo extra" ou "Refrigerante". Os modificadores podem ajustar o preço do item e conterModifierGroups aninhados para mais personalização. - MenuCategories: unidades organizacionais como "Aperitivos" ou "Bebidas".
Um recurso Menu é identificado por um nome no seguinte formato:
projects/{project}/locations/{location}/menus/{menu}.
Para mais detalhes sobre como estruturar dados de menu, consulte Integrar dados de menu.
Sessões de entrega de comida
As sessões de pedido de comida são a base do agente de IA do Pedido de comida, permitindo interações multimodais em tempo real entre um cliente e o agente de IA. Cada sessão
representa uma única conversa de pedido de comida e é gerenciada usando o método
RPC FoodOrderingService.BidiProcessOrder.
Método RPC BidiProcessOrder
Essa é uma RPC de streaming bidirecional: o aplicativo cliente transmite a entrada para o agente, e o agente transmite respostas simultaneamente de volta para o cliente. Isso permite interações em tempo real de baixa latência.
- Fluxo do cliente para o agente: o cliente envia um fluxo de mensagens
BidiProcessOrderRequestque contêm entrada de áudio (fala do cliente), entrada de texto ou entradas de eventos (como uma atualização do carrinho do lado do cliente feita por um cliente usando uma interface de toque ou um evento de saída detectado por hardware de um restaurante drive-thru). - Fluxo do agente para o cliente: o agente retorna um fluxo de mensagens
BidiProcessOrderResponseque contêm saída de áudio (fala sintetizada do agente), saída de texto, transcrições de fala reconhecida, atualizações do estado do pedido do cliente ou outros sinais, como interrupções detectadas.
Ciclo de vida da sessão
Toda sessão no agente de IA para pedidos de comida precisa começar com uma configuração fornecida pelo cliente
especificada usando uma mensagem BidiProcessOrderRequest que contenha um Config. O Config precisa especificar dois campos:
store: o nome completo do recurso doStorepara o qual o pedido está sendo feito (por exemplo,projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). A sessão assume a configuração especificada no recursoStorereferenciado e no recursoBrandpai dessa loja. Quando há conflitos de configuração entre oBrande oStore, a configuração doStoretem precedência.session: um identificador de sessão exclusivo no formatoprojects/PROJECT/locations/LOCATION/sessions/SESSION. Osession_idé um ID gerado pelo cliente que identifica de forma exclusiva uma interação ou conversa com o cliente.