Concepts de l'agent IA pour la commande de repas

Ce document fournit une vue d'ensemble des concepts clés de l'API Food Ordering AI Agent.

Configurer l'agent

Le comportement de l'agent d'IA pour la commande de repas est influencé par la configuration de plusieurs ressources d'API : Brand, Store et Menu. Ces ressources définissent l'identité du restaurant, ses établissements physiques et les produits qu'il propose, fournissant ainsi le contexte nécessaire à l'agent d'IA pour traiter les commandes.

Marque

Un Brand est la ressource de premier niveau. Elle représente une marque de restaurant correspondant à un ou plusieurs établissements de cette marque. Il contient une configuration partagée par tous les établissements de ce restaurant. Brand peut inclure la configuration de nombreuses caractéristiques de la personnalité de l'agent, telles que le comportement d'accueil et les caractéristiques vocales. De nombreuses fonctionnalités peuvent être remplacées par des valeurs configurées dans la ressource Store ou même dans la configuration par session (voir Cycle de vie d'une session).

Magasin

Une ressource Store représente un seul établissement physique appartenant à un Brand. Il définit la configuration spécifique à cet emplacement, comme son fuseau horaire, son état (par exemple, ACTIVE, DISABLED), les horaires d'ouverture et les tranches horaires (par exemple, les périodes "Petit-déjeuner" ou "Déjeuner" pendant lesquelles certains éléments du menu sont disponibles).

Une ressource Menu définit tous les produits proposés par un restaurant, y compris tous les choix et personnalisations possibles pour chaque produit vendable. Un Menu doit être associé à un Store. Le menu est conçu pour être flexible et s'adapter à différentes structures de menu, qu'il s'agisse de petites listes d'éléments autonomes ou d'arborescences complexes de menus combinés avec des modificateurs imbriqués.

Voici les principaux composants d'un Menu :

  • Articles : produits de premier niveau vendables, comme des plats à la carte, des boissons, des accompagnements ou des menus combinés.
  • ModifierGroups : collections de choix applicables à un Item ou à un autre Modifier, comme "Choisir un accompagnement" ou "Ajouter des garnitures".
  • Modificateurs : options individuelles d'un ModifierGroup, comme "Frites", "Fromage supplémentaire" ou "Coca-Cola". Les modificateurs peuvent ajuster le prix de l'article et contenir des ModifierGroup imbriqués pour une personnalisation plus poussée.
  • MenuCategories : unités organisationnelles telles que "Entrées" ou "Boissons".

Une ressource Menu est identifiée par un nom au format suivant : projects/{project}/locations/{location}/menus/{menu}.

Pour en savoir plus sur la structuration des données de menu, consultez Intégrer les données de menu.

Sessions de commande de repas

Les sessions de commande de repas sont au cœur de l'agent IA de commande de repas. Elles permettent des interactions multimodales en temps réel entre un client et l'agent IA. Chaque session représente une seule conversation de commande de nourriture et est gérée à l'aide de la méthode RPC FoodOrderingService.BidiProcessOrder.

Méthode RPC BidiProcessOrder

Il s'agit d'un RPC de streaming bidirectionnel : l'application cliente transmet des entrées à l'agent, et l'agent renvoie simultanément des réponses au client. Cela permet des interactions en temps réel à faible latence.

  • Flux client vers agent : le client envoie un flux de messages BidiProcessOrderRequest contenant des entrées audio (parole du client), des entrées de texte ou des entrées d'événement (par exemple, une mise à jour du panier côté client effectuée par un client à l'aide d'une interface tactile, ou un événement de départ détecté par le matériel d'un restaurant drive-in).
  • Flux agent-client : l'agent renvoie un flux de messages BidiProcessOrderResponse contenant une sortie audio (discours de l'agent synthétisé), une sortie texte, des transcriptions de la parole reconnue, des mises à jour de l'état de la commande du client ou d'autres signaux tels que les interruptions détectées.

Cycle de vie d'une session

Chaque session de l'agent d'IA de commande de repas doit commencer par une configuration fournie par le client et spécifiée à l'aide d'un message BidiProcessOrderRequest contenant un Config. Le Config doit spécifier deux champs :

  • store : nom complet de la ressource Store pour laquelle la commande est passée (par exemple, projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). La session adopte la configuration spécifiée dans la ressource Store référencée et dans la ressource Brand parente de ce magasin. En cas de conflit de configuration entre Brand et Store, la configuration Store est prioritaire.
  • session : identifiant de session unique au format projects/PROJECT/locations/LOCATION/sessions/SESSION. L'session_id est un ID généré par le client qui identifie de manière unique une interaction ou une conversation avec un client.