- Requête HTTP
- Paramètres de chemin d'accès
- Corps de la requête
- Corps de la réponse
- Niveaux d'accès des autorisations
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- Config
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- LoyaltyInfo
- LoyaltyAmount
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
Exécute une logique à un seul tour pour traiter l'entrée utilisateur et renvoyer le résultat.
Requête HTTP
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
L'URL utilise la syntaxe de transcodage gRPC.
Paramètres de chemin d'accès
| Paramètres | |
|---|---|
config.session |
Obligatoire. Session de la commande. Format : |
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
| Représentation JSON |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean }, "clientAppInfo": { "deviceModel": string, "osVersion": string, "sdkVersion": string }, "mode": enum ( |
| Champs | |
|---|---|
config.store |
Obligatoire. Magasin pour lequel la commande est passée. Format : |
config.laneId |
Facultatif. ID d'une voie de drive spécifique. |
config.enableEchoCancellation |
Facultatif. Indique si l'annulation de l'écho doit être activée pour la session. Si cette option est activée, le client doit fournir les champs customerAudio et crewAudio dans AudioInput. |
config.daypartId |
Facultatif. Moment de la journée pour le menu, y compris le petit-déjeuner, le déjeuner, le dîner, etc. Permet de déterminer le menu à utiliser pour la commande. |
config.featureGate |
Facultatif. Feature gates de la session. Cette option permet d'activer ou de désactiver des fonctionnalités pour la session. |
config.clientAppInfo |
Facultatif. Informations sur l'application cliente et l'environnement de l'appareil. |
config.mode |
Facultatif. Mode de la session. |
config.channelType |
Facultatif. Type de canal utilisé pour la communication de l'agent. |
config.enableListenOnlyDualChannel |
Facultatif. Indique si vous souhaitez activer le double canal en écoute seule pour la session. Si cette option est activée, le client doit fournir customerAudio et crewAudio dans AudioInput, et CES effectuera l'EAC et la sommation sur le serveur de traitement multimédia. |
config.testSessionStartTime |
Facultatif. Heure de début de la session, utilisée à des fins de test ou d'évaluation. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
turnType |
Facultatif. Indicateur explicite de la position de la requête dans le cycle de vie de la session. Permet aux clients de contrôler de manière déterministe le moment où les variables de configuration de la session initiale sont injectées. |
Champ d'union input. Entrée du client. input ne peut être qu'un des éléments suivants : |
|
textInput |
Saisie de texte du client. |
audioInput |
Entrée audio du client. |
eventInput |
Entrée d'événement du client. |
clientExecutionResult |
Résultat d'une requête d'exécution du client. |
blobInput |
Entrée de données binaires génériques. Miroirs http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Corps de la réponse
Message de réponse pour FoodOrderingService.ProcessOrder. Contient les champs de BidiProcessOrderResponse, à l'exception de ceux spécifiques au streaming.
Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :
| Représentation JSON |
|---|
{
"responses": [
{
object ( |
| Champs | |
|---|---|
responses[] |
Uniquement en sortie. Liste des réponses de l'agent à la requête, renvoyées dans l'ordre. |
Niveaux d'accès des autorisations
Requiert le niveau d'accès OAuth suivant :
https://www.googleapis.com/auth/cloud-platform
Pour plus d'informations, consultez la Authentication Overview.
TextInput
Saisie de texte du client. Au lieu d'un contenu audio, le client peut également envoyer une saisie de texte à l'agent. Un client doit utiliser une entrée textuelle ou audio, mais pas les deux.
| Représentation JSON |
|---|
{ "text": string } |
| Champs | |
|---|---|
text |
Obligatoire. Énoncé textuel du client. |
AudioInput
Entrée audio du client. L'audio d'entrée peut comporter plusieurs canaux pour le client, l'équipe, etc. Ils doivent tous être synchronisés et au format spécifié dans la configuration. Les en-têtes audio ne doivent pas être inclus. Par défaut, l'audio doit utiliser l'encodage audio PCM linéaire 16 bits et un taux d'échantillonnage de 16 000 Hz. Le nombre total d'octets de tous les canaux doit être inférieur à 25 600 octets.
| Représentation JSON |
|---|
{ "customerAudio": string, "crewAudio": string } |
| Champs | |
|---|---|
customerAudio |
Obligatoire. Données audio du client. Chaîne encodée en base64. |
crewAudio |
Facultatif. Données audio de l'équipage. Il s'agit d'un canal audio facultatif pour le membre de l'équipe dans la même voie que le client, qui sert de référence audio pour l'annulation de l'écho. Chaîne encodée en base64. |
EventInput
Entrée d'événement du client. Il permet de déclencher des événements spécifiques dans l'agent.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union event. Identifiant suivant : 10 Événement à déclencher. event ne peut être qu'un des éléments suivants : |
|
driveOffEvent |
L'événement de départ. |
crewInterjectionEvent |
Événement d'interjection de l'équipe. |
updateOrderStateEvent |
Mise à jour côté client de l'état de la commande. |
clientEscalationEvent |
Événement d'escalade côté client. |
callerHangupEvent |
Facultatif. Événement de raccrochage de l'appelant. |
posErrorInput |
Facultatif. Événement d'erreur de point de vente. |
DriveOffEvent
L'événement de départ. Cela indique que le client est parti. La session sera fermée après cet événement.
| Représentation JSON |
|---|
{ "reason": string } |
| Champs | |
|---|---|
reason |
Facultatif. Raison du départ, par exemple "commande terminée", "départ inattendu". |
CrewInterjectionEvent
Événement d'interjection de l'équipe. Cela indique qu'un membre de l'équipe est intervenu pendant la session. La session sera fermée après cet événement.
| Représentation JSON |
|---|
{ "mode": string } |
| Champs | |
|---|---|
mode |
Facultatif. Mode dans lequel le membre de l'équipage est intervenu, par exemple "headset" (casque), "pos" (point de vente). |
OrderStateUpdateEvent
Requête de mise à jour de l'état de la commande. Cet événement doit être envoyé lorsque la commande est mise à jour côté client, par exemple lorsqu'un article est ajouté ou supprimé via une interface tactile traditionnelle.
| Représentation JSON |
|---|
{
"order": {
object ( |
| Champs | |
|---|---|
order |
Obligatoire. État mis à jour de la commande associée à cette session. |
ClientEscalationEvent
Indique que le client escalade la session vers un agent humain.
| Représentation JSON |
|---|
{ "reason": string } |
| Champs | |
|---|---|
reason |
Facultatif. Motif de l'escalade du client, par exemple "payment-declined", "pos-error", "integration-error", etc. |
CallerHangupEvent
Ce type ne comporte aucun champ.
Indique que le client a raccroché prématurément (par exemple, par aversion pour l'IA).
PosErrorEvent
Échecs spécifiques au point de vente.
| Représentation JSON |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| Champs | |
|---|---|
errorMessages[] |
Facultatif. Liste de descriptions des erreurs lisibles par l'humain. Plusieurs messages d'erreur peuvent être fournis si plusieurs problèmes surviennent simultanément (par exemple, plusieurs articles sont non disponibles) ou pour fournir une analyse plus détaillée d'un seul échec complexe. L'agent peut utiliser ces messages pour informer le client ou à des fins de journalisation. |
affectedItemUids[] |
Facultatif. UID d'articles uniques générés par l'agent IA pour la commande de repas qui ont causé l'erreur. Correspond à |
affectedExternalIds[] |
Facultatif. Liste des ID externes (du menu) à l'origine de l'erreur. Doit être égal aux représentants réels dans le point de vente, qui se trouvent généralement sous les attributs d'intégration dans menu.proto (par exemple, dans |
metadata |
Facultatif. Métadonnées de forme libre pour le débogage ou la signalisation spécifique à la marque. Peut être utilisé pour transmettre des codes d'erreur ou des catégories spécifiques à la marque (par exemple, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). Objet contenant une liste de paires |
ClientExecutionResult
Résultat d'une requête d'exécution du client.
| Représentation JSON |
|---|
{ "executionId": string, // Union field |
| Champs | |
|---|---|
executionId |
Obligatoire. ID de la requête d'exécution pour laquelle ce résultat est renvoyé. |
Champ d'union response. Résultat spécifique de l'exécution. response ne peut être qu'un des éléments suivants : |
|
finalizeOrderResponse |
Résultat de la finalisation de la commande. |
orderPricesResponse |
Résultat de l'obtention des prix des commandes. |
validateDeliveryAddressResponse |
Résultat de la validation de l'adresse de livraison. |
orderStatusResponse |
Résultat de l'obtention de l'état de la commande. |
FinalizeOrderResponse
Résultat de la finalisation de la commande.
| Représentation JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Champs | |
|---|---|
paymentFlowEnabled |
Facultatif. Indique si le flux de traitement des paiements doit être activé dans l'agent. |
paymentInfo |
Facultatif. Informations de paiement du client. Aucune opération si paymentFlowEnabled est défini sur "false". |
totalAmountDue |
Facultatif. Montant total dû pour la commande. |
orderPriceInfo |
Facultatif. Informations détaillées sur le prix de la commande. |
PaymentInfo
Informations de paiement de l'utilisateur.
| Représentation JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| Champs | |
|---|---|
creditCardLastFourDigits |
Facultatif. Les quatre derniers chiffres de la carte de crédit. Cette information permet de vérifier le numéro de carte de crédit lors de l'étape de paiement. |
creditCardCvv |
Facultatif. CVV de la carte de crédit. |
paymentMethod |
Facultatif. Mode de paiement utilisé |
PaymentMethod
Type de mode de paiement.
| Enums | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
Mode de paiement non spécifié. |
PAYMENT_METHOD_CREDIT_CARD |
D'une carte de crédit |
PAYMENT_METHOD_CASH |
Espèces. |
OrderPricesResponse
Résultat de l'obtention des prix des commandes.
| Représentation JSON |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Champs | |
|---|---|
success |
Obligatoire. Indique si les prix de la commande ont bien été récupérés. |
orderPriceInfo |
Facultatif. Prix total de la commande après déduction de toutes les remises, frais, taxes, etc. |
ValidateDeliveryAddressResponse
Résultat de la validation d'une adresse de livraison.
| Représentation JSON |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| Champs | |
|---|---|
success |
Obligatoire. Indique si la validation s'est terminée sans erreur. |
validationStatus |
Obligatoire. État de validation de l'adresse de livraison. |
OrderStatusResponse
Résultat de l'obtention de l'état de la commande.
| Représentation JSON |
|---|
{ "success": boolean } |
| Champs | |
|---|---|
success |
Obligatoire. Indique si l'état de la commande a bien été récupéré. |
Blob
Représente une entrée ou une sortie de blob dans la conversation.
| Représentation JSON |
|---|
{ "mimeType": string, "data": string } |
| Champs | |
|---|---|
mimeType |
Obligatoire. Type MIME standard IANA des données sources. |
data |
Obligatoire. Octets bruts du blob. Chaîne encodée en base64. |
Configuration
Configuration d'une session et des propriétés de commande de repas. Au début de chaque connexion, le client doit d'abord envoyer un message de configuration. Cette étape doit être effectuée avant toute autre requête visant à lancer la session. Si le client se déconnecte, il doit répéter le même message de configuration lorsqu'il se reconnecte.
| Représentation JSON |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { object ( |
| Champs | |
|---|---|
session |
Obligatoire. Session de la commande. Format : |
store |
Obligatoire. Magasin pour lequel la commande est passée. Format : |
laneId |
Facultatif. ID d'une voie de drive spécifique. |
enableEchoCancellation |
Facultatif. Indique si l'annulation de l'écho doit être activée pour la session. Si cette option est activée, le client doit fournir les champs customerAudio et crewAudio dans AudioInput. |
daypartId |
Facultatif. Moment de la journée pour le menu, y compris le petit-déjeuner, le déjeuner, le dîner, etc. Permet de déterminer le menu à utiliser pour la commande. |
featureGate |
Facultatif. Feature gates de la session. Cette option permet d'activer ou de désactiver des fonctionnalités pour la session. |
clientAppInfo |
Facultatif. Informations sur l'application cliente et l'environnement de l'appareil. |
mode |
Facultatif. Mode de la session. |
channelType |
Facultatif. Type de canal utilisé pour la communication de l'agent. |
enableListenOnlyDualChannel |
Facultatif. Indique si vous souhaitez activer le double canal en écoute seule pour la session. Si cette option est activée, le client doit fournir customerAudio et crewAudio dans AudioInput, et CES effectuera l'EAC et la sommation sur le serveur de traitement multimédia. |
testSessionStartTime |
Facultatif. Heure de début de la session, utilisée à des fins de test ou d'évaluation. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
FeatureGate
Feature gates de la session. Cette option permet d'activer ou de désactiver des fonctionnalités pour la session.
| Représentation JSON |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| Champs | |
|---|---|
menuResponseEnabled |
Facultatif. Renvoie les données du menu au client dans BidiProcessOrderResponse si elles sont définies. |
updatedOrderStateEnabled |
Facultatif. Si ce champ est défini, updatedOrderState est renvoyé au lieu de legacyOrderStateResponse. |
enableOrderStatusRetrieval |
Facultatif. Si cette option est définie, l'agent pourra récupérer l'état de la commande. |
ClientAppInfo
Informations sur l'application cliente et l'environnement de l'appareil. Il est principalement utilisé pour la journalisation, l'analyse et le débogage.
| Représentation JSON |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| Champs | |
|---|---|
deviceModel |
Facultatif. Modèle de l'appareil du client (par exemple, "iPhone 13", "Pixel 7", "Kiosk v2"). |
osVersion |
Facultatif. Version du système d'exploitation du client (par exemple, "iOS 16.1", "Android 13"). |
sdkVersion |
Facultatif. Version du SDK client ou de l'application. |
SessionMode
Mode de la session.
| Enums | |
|---|---|
SESSION_MODE_UNSPECIFIED |
Le mode de session n'est pas spécifié. |
HYBRID |
La session accepte l'audio et le texte. Il s'agit de l'option par défaut. |
TEXT |
La session est textuelle uniquement. |
TurnType
Représente la position du cycle de vie d'une requête unaire dans une session.
| Enums | |
|---|---|
TURN_TYPE_UNSPECIFIED |
Type de virage non spécifié. |
INITIALIZE |
Indique explicitement que cette requête initialise la session en mode unaire. Lorsqu'elles sont définies, les variables de session initiales (par exemple, les métadonnées et les menus du magasin) sont injectées dans le CES. |
SUBSEQUENT |
Indique explicitement un tour de conversation ultérieur ou une mise à jour en cours de session. Lorsqu'elles sont définies, les variables de session initiales sont omises pour éviter l'explosion des jetons d'entrée. |
BidiProcessOrderResponse
Message de premier niveau renvoyé par la méthode FoodOrderingService.BidiProcessOrder.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union response. Réponse de l'agent. response ne peut être qu'un des éléments suivants : |
|
agentAudio |
Réponse audio de l'agent. |
speechRecognition |
Résultat de la reconnaissance vocale de l'agent. |
legacyOrderStateResponse |
Réponse de l'ancien état de la commande pour une session. |
interruptionSignal |
Signal d'interruption détecté à partir de l'entrée audio. |
agentEvent |
Événement de l'agent. |
clientExecutionRequest |
La requête est transmise au client pour exécution. Il est utilisé pour l'exécution côté client, par exemple pour ajouter un code à la commande. |
updatedOrderState |
Indique une modification de l'état de la commande. Inclut l'état complet de la commande. |
agentText |
Réponse textuelle de l'agent. |
suggestedOptions |
Options à suggérer au client. |
sentimentMeasurement |
Score de sentiment en temps réel mesuré pour ce tour. |
turnCompleted |
Message de fin de tour. |
endSession |
Indique que la session se termine et qu'il s'agit du dernier tour. L'agent terminera l'envoi des réponses en attente pour le tour actuel, puis enverra un message final turnCompleted. L'agent ne démarrera pas de nouveaux tours. Par exemple, une session à deux tours se présente comme suit :
|
AgentAudio
Réponse audio de l'agent.
| Représentation JSON |
|---|
{ "agentAudio": string } |
| Champs | |
|---|---|
agentAudio |
Données audio de l'agent. Chaîne encodée en base64. |
SpeechRecognition
Résultat de la reconnaissance vocale de l'agent.
| Représentation JSON |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| Champs | |
|---|---|
transcript |
Texte transcrit à partir de l'entrée audio dans la langue détectée. |
languageCode |
Code de langue de la transcription. Le code de langue doit être au format BCP-47, par exemple "en-US". |
isFinal |
Indique s'il s'agit de la transcription finale du tour. |
InterruptionSignal
Ce type ne comporte aucun champ.
Indique que la réponse audio de l'agent a été interrompue (par exemple, par l'intervention de l'utilisateur final). Le client doit arrêter la lecture immédiatement.
AgentEvent
Événement spécial de l'agent qui nécessite une action du client.
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union event. Événement de l'agent. event ne peut être qu'un des éléments suivants : |
|
restartOrder |
Le client demande à relancer la commande. |
RestartOrder
Le client demande à recommencer la commande.
| Représentation JSON |
|---|
{ "confirmationStep": boolean } |
| Champs | |
|---|---|
confirmationStep |
L'agent demande au client de confirmer la demande de redémarrage. |
ClientExecutionRequest
Requête envoyée au côté client pour exécuter une commande.
| Représentation JSON |
|---|
{ "executionId": string, // Union field |
| Champs | |
|---|---|
executionId |
Obligatoire. Identifiant unique pour cette requête d'exécution. |
Champ d'union request. Requête spécifique à exécuter. request ne peut être qu'un des éléments suivants : |
|
finalizeOrderRequest |
Une demande de finalisation de la commande. |
submitOrderRequest |
Une demande d'envoi de la commande. |
orderPricesRequest |
Une requête permettant d'obtenir les prix de la commande. |
validateDeliveryAddressRequest |
Une demande de validation de l'adresse de livraison. |
orderStatusRequest |
Une requête pour obtenir l'état de la commande. |
FinalizeOrderRequest
Ce type ne comporte aucun champ.
Une demande de finalisation de la commande. En général, l'agent l'envoie lorsque le client indique qu'il a terminé sa commande et qu'il souhaite payer.
SubmitOrderRequest
Une demande d'envoi de la commande, avec toutes les informations de paiement requises collectées auprès du client.
| Représentation JSON |
|---|
{ "paymentInfo": { object ( |
| Champs | |
|---|---|
paymentInfo |
Obligatoire. Informations de paiement de la commande. |
loyaltyInfo |
Facultatif. Fidélité consommée pour la commande. |
tipAmount |
Facultatif. Montant du pourboire pour la commande. |
LoyaltyInfo
Représente les informations de fidélité d'un client.
| Représentation JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Champs | |
|---|---|
loyaltyAmount |
Obligatoire. Montant de fidélité. Il peut s'agir d'un solde de fidélité ou d'une fidélité consommée. |
LoyaltyAmount
Représente le montant de fidélité d'un client.
| Représentation JSON |
|---|
{ "units": string } |
| Champs | |
|---|---|
units |
Obligatoire. Les points de fidélité. |
OrderPricesRequest
Une requête permettant d'obtenir les prix de la commande.
| Représentation JSON |
|---|
{
"order": {
object ( |
| Champs | |
|---|---|
order |
Facultatif. Commande pour laquelle obtenir les prix. Si elle n'est pas spécifiée, nous pouvons supposer que la requête concerne la commande/le panier existant dans la session. |
ValidateDeliveryAddressRequest
Une demande de validation d'une adresse de livraison collectée pendant la session.
| Représentation JSON |
|---|
{
"deliveryAddress": {
object ( |
| Champs | |
|---|---|
deliveryAddress |
Obligatoire. Adresse de livraison à valider. |
OrderStatusRequest
Ce type ne comporte aucun champ.
Une requête pour obtenir l'état de la commande.
UpdatedOrderState
Événement renvoyé par l'agent représentant une mise à jour de l'état de la commande.
| Représentation JSON |
|---|
{
"order": {
object ( |
| Champs | |
|---|---|
order |
État mis à jour de la commande associée à cette session. |
changed |
Uniquement en sortie. Indique si l'état de la commande a été mis à jour. |
AgentText
Réponse textuelle de l'agent.
| Représentation JSON |
|---|
{ "text": string } |
| Champs | |
|---|---|
text |
Réponse textuelle de l'agent. |
SuggestedOptions
Options à suggérer au client.
| Représentation JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| Champs | |
|---|---|
suggestedModifierGroups |
Un groupe de modificateurs suggérés. |
Champ d'union suggested_options. Les options suggérées. suggested_options ne peut être qu'un des éléments suivants : |
|
suggestedItems |
Liste d'articles à suggérer au client. |
suggestedModifiers |
Liste des modificateurs à suggérer au client. |
SuggestedItems
Liste d'articles à suggérer au client.
| Représentation JSON |
|---|
{
"items": [
{
object ( |
| Champs | |
|---|---|
items[] |
Articles à suggérer au client. |
SuggestedItem
Article à suggérer au client.
| Représentation JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| Champs | |
|---|---|
itemId |
ID de l'élément dans le menu. |
displayName |
Nom intelligible de cet élément à afficher dans les interfaces utilisateur. |
image |
Image à afficher pour cet élément dans l'UI. |
basePrice |
Prix de base de l'article. Cela peut être affecté par les modificateurs sélectionnés. Il s'agit du prix unitaire de l'article. |
integrationAttributes |
Métadonnées associées à cette entité utilisées pour les intégrations en aval. |
SuggestedModifiers
Liste des modificateurs à suggérer au client.
| Représentation JSON |
|---|
{
"modifiers": [
{
object ( |
| Champs | |
|---|---|
modifiers[] |
Modificateurs à suggérer au client. |
parentUid |
Identifiant unique de l'élément/modificateur parent auquel appliquer les modificateurs. |
SuggestedModifier
Un modificateur à suggérer au client.
| Représentation JSON |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| Champs | |
|---|---|
modifierId |
ID du modificateur dans le menu. |
modifierGroupId |
ID du groupe de modificateurs auquel ce modificateur doit être ajouté si la suggestion est acceptée. |
modifierGroupDisplayName |
Nom à afficher du groupe de modificateurs auquel appartient ce modificateur. |
displayName |
Nom intelligible de cet élément à afficher dans les interfaces utilisateur. |
image |
Image à afficher pour cet élément dans l'UI. |
priceAdjustment |
Ajustement de prix associé à ce modificateur, le cas échéant. Il s'agit du prix unitaire du modificateur. |
integrationAttributes |
Métadonnées associées à cette entité utilisées pour les intégrations en aval. |
alreadyIncluded |
Indique si ce modificateur est déjà inclus dans la commande. |
SuggestedModifierGroups
Liste des groupes de modificateurs à suggérer au client.
| Représentation JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Champs | |
|---|---|
modifierGroups[] |
Groupes de modificateurs à suggérer au client. |
SuggestedModGroup
Groupe de modificateurs à suggérer au client.
| Représentation JSON |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| Champs | |
|---|---|
modifierGroupId |
ID du groupe de modificateurs dans le menu. |
displayName |
Nom à afficher du groupe de modificateurs. |
modifiers[] |
Modificateurs de ce groupe. |
maxSelectionCount |
Nombre maximal de modificateurs pouvant être sélectionnés dans ce groupe. |
minSelectionCount |
Nombre minimal de modificateurs à sélectionner dans ce groupe. |
maxSelectionCountPerModifier |
Limite le nombre de fois où chaque modificateur peut être appliqué dans ce groupe. |
SentimentMeasurement
Score de sentiment en temps réel mesuré pour ce tour.
| Représentation JSON |
|---|
{ "score": number, "magnitude": number } |
| Champs | |
|---|---|
score |
Facultatif. Score de sentiment compris entre -1,0 (sentiment négatif) et 1,0 (sentiment positif). |
magnitude |
Facultatif. Ampleur du sentiment, quel que soit le score. |
TurnCompleted
Ce type ne comporte aucun champ.
Indique que l'agent IA Food a détecté la fin du tour de conversation actuel et ne fournira plus de sortie pour ce tour.
EndSession
Indique que l'agent a mis fin à la session, soit parce qu'elle s'est terminée correctement (par exemple, l'utilisateur dit "Au revoir !"), ) ou une escalade vers un agent.
| Représentation JSON |
|---|
{ "type": enum ( |
| Champs | |
|---|---|
type |
Type d'événement de fin de session. |
reason |
Motif de fin de la session. |
posResponse |
Facultatif. Réponse du PDV après l'enregistrement de la commande (facultatif). Il s'agit d'une charge utile de chaîne opaque représentant l'état de la transaction du point de vente. |
agentResponse |
Facultatif. Message de réponse final de l'agent à énoncer/afficher pour l'utilisateur (facultatif). |
storeSchedule |
Facultatif. Horaires du magasin. Ce champ n'est défini que lorsque le type de fin est STORE_CLOSED. |
EndType
Type d'événement de fin de session.
| Enums | |
|---|---|
END_TYPE_UNSPECIFIED |
Le type de fin n'est pas spécifié. |
DRIVE_OFF |
Le client est parti en voiture. |
AGENT_ESCALATION |
L'agent a escaladé la session vers un agent humain. |
CREW_INTERJECTION |
Un membre de l'équipe est intervenu pendant la session. |
ORDER_COMPLETED |
La commande a bien été traitée et aucune autre action n'est requise. |
PAYMENT_FLOW_SUCCESS |
Le flux de paiement a bien été effectué. Aucune autre action n'est requise. |
PAYMENT_FLOW_FAILURE |
Échec du flux de paiement. |
CLIENT_ESCALATION |
Le client a escaladé la session vers un agent humain. |
CALLER_HANGUP |
Le client a raccroché prématurément. |
REQUESTED_CHECKOUT |
Le client a demandé à payer. |
REQUESTED_ORDER_STATUS |
Le client a demandé l'état de sa commande. |
STORE_CLOSED |
Le magasin est fermé. |