Method: projects.locations.sessions.processOrder

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

string

Obligatoire. Session de la commande. Format : projects/{project}/locations/{location}/sessions/{session}

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 (SessionMode),
    "channelType": enum (ChannelType),
    "enableListenOnlyDualChannel": boolean,
    "testSessionStartTime": string
  },
  "turnType": enum (TurnType),

  // Union field input can be only one of the following:
  "textInput": {
    object (TextInput)
  },
  "audioInput": {
    object (AudioInput)
  },
  "eventInput": {
    object (EventInput)
  },
  "clientExecutionResult": {
    object (ClientExecutionResult)
  },
  "blobInput": {
    object (Blob)
  }
  // End of list of possible types for union field input.
}
Champs
config.store

string

Obligatoire. Magasin pour lequel la commande est passée. Format : projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

Facultatif. ID d'une voie de drive spécifique.

config.enableEchoCancellation

boolean

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

string

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

object (FeatureGate)

Facultatif. Feature gates de la session. Cette option permet d'activer ou de désactiver des fonctionnalités pour la session.

config.clientAppInfo

object (ClientAppInfo)

Facultatif. Informations sur l'application cliente et l'environnement de l'appareil.

config.mode

enum (SessionMode)

Facultatif. Mode de la session.

config.channelType

enum (ChannelType)

Facultatif. Type de canal utilisé pour la communication de l'agent.

config.enableListenOnlyDualChannel

boolean

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

string (Timestamp format)

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 : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

turnType

enum (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

object (TextInput)

Saisie de texte du client.

audioInput

object (AudioInput)

Entrée audio du client.

eventInput

object (EventInput)

Entrée d'événement du client.

clientExecutionResult

object (ClientExecutionResult)

Résultat d'une requête d'exécution du client.

blobInput

object (Blob)

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 (BidiProcessOrderResponse)
    }
  ]
}
Champs
responses[]

object (BidiProcessOrderResponse)

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

string

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

string (bytes format)

Obligatoire. Données audio du client.

Chaîne encodée en base64.

crewAudio

string (bytes format)

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 event can be only one of the following:
  "driveOffEvent": {
    object (DriveOffEvent)
  },
  "crewInterjectionEvent": {
    object (CrewInterjectionEvent)
  },
  "updateOrderStateEvent": {
    object (OrderStateUpdateEvent)
  },
  "clientEscalationEvent": {
    object (ClientEscalationEvent)
  },
  "callerHangupEvent": {
    object (CallerHangupEvent)
  },
  "posErrorInput": {
    object (PosErrorEvent)
  }
  // End of list of possible types for union field event.
}
Champs
Champ d'union event. Identifiant suivant : 10 Événement à déclencher. event ne peut être qu'un des éléments suivants :
driveOffEvent

object (DriveOffEvent)

L'événement de départ.

crewInterjectionEvent

object (CrewInterjectionEvent)

Événement d'interjection de l'équipe.

updateOrderStateEvent

object (OrderStateUpdateEvent)

Mise à jour côté client de l'état de la commande.

clientEscalationEvent

object (ClientEscalationEvent)

Événement d'escalade côté client.

callerHangupEvent

object (CallerHangupEvent)

Facultatif. Événement de raccrochage de l'appelant.

posErrorInput

object (PosErrorEvent)

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

string

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

string

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 (Order)
  }
}
Champs
order

object (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

string

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[]

string

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[]

string

Facultatif. UID d'articles uniques générés par l'agent IA pour la commande de repas qui ont causé l'erreur. Correspond à UpdatedOrderState.OrderItem.uid.

affectedExternalIds[]

string

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 ItemIntegrationAttributes ou ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

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 "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientExecutionResult

Résultat d'une requête d'exécution du client.

Représentation JSON
{
  "executionId": string,

  // Union field response can be only one of the following:
  "finalizeOrderResponse": {
    object (FinalizeOrderResponse)
  },
  "orderPricesResponse": {
    object (OrderPricesResponse)
  },
  "validateDeliveryAddressResponse": {
    object (ValidateDeliveryAddressResponse)
  },
  "orderStatusResponse": {
    object (OrderStatusResponse)
  }
  // End of list of possible types for union field response.
}
Champs
executionId

string

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

object (FinalizeOrderResponse)

Résultat de la finalisation de la commande.

orderPricesResponse

object (OrderPricesResponse)

Résultat de l'obtention des prix des commandes.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

Résultat de la validation de l'adresse de livraison.

orderStatusResponse

object (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 (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Champs
paymentFlowEnabled

boolean

Facultatif. Indique si le flux de traitement des paiements doit être activé dans l'agent.

paymentInfo

object (PaymentInfo)

Facultatif. Informations de paiement du client. Aucune opération si paymentFlowEnabled est défini sur "false".

totalAmountDue

object (Money)

Facultatif. Montant total dû pour la commande.

orderPriceInfo

object (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 (PaymentMethod)
}
Champs
creditCardLastFourDigits

string

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

string

Facultatif. CVV de la carte de crédit.

paymentMethod

enum (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 (OrderPriceInfo)
  }
}
Champs
success

boolean

Obligatoire. Indique si les prix de la commande ont bien été récupérés.

orderPriceInfo

object (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 (ValidationStatus)
}
Champs
success

boolean

Obligatoire. Indique si la validation s'est terminée sans erreur.

validationStatus

enum (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

boolean

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

string

Obligatoire. Type MIME standard IANA des données sources.

data

string (bytes format)

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 (FeatureGate)
  },
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string
}
Champs
session

string

Obligatoire. Session de la commande. Format : projects/{project}/locations/{location}/sessions/{session}

store

string

Obligatoire. Magasin pour lequel la commande est passée. Format : projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

Facultatif. ID d'une voie de drive spécifique.

enableEchoCancellation

boolean

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

string

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

object (FeatureGate)

Facultatif. Feature gates de la session. Cette option permet d'activer ou de désactiver des fonctionnalités pour la session.

clientAppInfo

object (ClientAppInfo)

Facultatif. Informations sur l'application cliente et l'environnement de l'appareil.

mode

enum (SessionMode)

Facultatif. Mode de la session.

channelType

enum (ChannelType)

Facultatif. Type de canal utilisé pour la communication de l'agent.

enableListenOnlyDualChannel

boolean

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

string (Timestamp format)

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 : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

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

boolean

Facultatif. Renvoie les données du menu au client dans BidiProcessOrderResponse si elles sont définies.

updatedOrderStateEnabled

boolean

Facultatif. Si ce champ est défini, updatedOrderState est renvoyé au lieu de legacyOrderStateResponse.

enableOrderStatusRetrieval

boolean

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

string

Facultatif. Modèle de l'appareil du client (par exemple, "iPhone 13", "Pixel 7", "Kiosk v2").

osVersion

string

Facultatif. Version du système d'exploitation du client (par exemple, "iOS 16.1", "Android 13").

sdkVersion

string

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 response can be only one of the following:
  "agentAudio": {
    object (AgentAudio)
  },
  "speechRecognition": {
    object (SpeechRecognition)
  },
  "legacyOrderStateResponse": {
    object
  },
  "interruptionSignal": {
    object (InterruptionSignal)
  },
  "agentEvent": {
    object (AgentEvent)
  },
  "clientExecutionRequest": {
    object (ClientExecutionRequest)
  },
  "updatedOrderState": {
    object (UpdatedOrderState)
  },
  "agentText": {
    object (AgentText)
  },
  "suggestedOptions": {
    object (SuggestedOptions)
  },
  "sentimentMeasurement": {
    object (SentimentMeasurement)
  },
  "turnCompleted": {
    object (TurnCompleted)
  },
  "endSession": {
    object (EndSession)
  }
  // End of list of possible types for union field response.
}
Champs
Champ d'union response. Réponse de l'agent. response ne peut être qu'un des éléments suivants :
agentAudio

object (AgentAudio)

Réponse audio de l'agent.

speechRecognition

object (SpeechRecognition)

Résultat de la reconnaissance vocale de l'agent.

legacyOrderStateResponse

object (Struct format)

Réponse de l'ancien état de la commande pour une session.

interruptionSignal

object (InterruptionSignal)

Signal d'interruption détecté à partir de l'entrée audio.

agentEvent

object (AgentEvent)

Événement de l'agent.

clientExecutionRequest

object (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

object (UpdatedOrderState)

Indique une modification de l'état de la commande. Inclut l'état complet de la commande.

agentText

object (AgentText)

Réponse textuelle de l'agent.

suggestedOptions

object (SuggestedOptions)

Options à suggérer au client.

sentimentMeasurement

object (SentimentMeasurement)

Score de sentiment en temps réel mesuré pour ce tour.

turnCompleted

object (TurnCompleted)

Message de fin de tour.

endSession

object (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 :

  • Tour 1
  • entrée client 1
  • ... messages de réponse de l'agent et d'état de la commande
  • turnCompleted
  • Tour 2
  • entrée client 2
  • ... messages de réponse de l'agent et d'état de la commande
  • endSession
  • ... messages de réponse de l'agent et d'état de la commande en attente
  • turnCompleted

AgentAudio

Réponse audio de l'agent.

Représentation JSON
{
  "agentAudio": string
}
Champs
agentAudio

string (bytes format)

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

string

Texte transcrit à partir de l'entrée audio dans la langue détectée.

languageCode

string

Code de langue de la transcription. Le code de langue doit être au format BCP-47, par exemple "en-US".

isFinal

boolean

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 event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
Champs
Champ d'union event. Événement de l'agent. event ne peut être qu'un des éléments suivants :
restartOrder

object (RestartOrder)

Le client demande à relancer la commande.

RestartOrder

Le client demande à recommencer la commande.

Représentation JSON
{
  "confirmationStep": boolean
}
Champs
confirmationStep

boolean

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 request can be only one of the following:
  "finalizeOrderRequest": {
    object (FinalizeOrderRequest)
  },
  "submitOrderRequest": {
    object (SubmitOrderRequest)
  },
  "orderPricesRequest": {
    object (OrderPricesRequest)
  },
  "validateDeliveryAddressRequest": {
    object (ValidateDeliveryAddressRequest)
  },
  "orderStatusRequest": {
    object (OrderStatusRequest)
  }
  // End of list of possible types for union field request.
}
Champs
executionId

string

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

object (FinalizeOrderRequest)

Une demande de finalisation de la commande.

submitOrderRequest

object (SubmitOrderRequest)

Une demande d'envoi de la commande.

orderPricesRequest

object (OrderPricesRequest)

Une requête permettant d'obtenir les prix de la commande.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Une demande de validation de l'adresse de livraison.

orderStatusRequest

object (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 (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
Champs
paymentInfo

object (PaymentInfo)

Obligatoire. Informations de paiement de la commande.

loyaltyInfo

object (LoyaltyInfo)

Facultatif. Fidélité consommée pour la commande.

tipAmount

object (Money)

Facultatif. Montant du pourboire pour la commande.

LoyaltyInfo

Représente les informations de fidélité d'un client.

Représentation JSON
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
Champs
loyaltyAmount

object (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

string (int64 format)

Obligatoire. Les points de fidélité.

OrderPricesRequest

Une requête permettant d'obtenir les prix de la commande.

Représentation JSON
{
  "order": {
    object (Order)
  }
}
Champs
order

object (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 (DeliveryAddress)
  }
}
Champs
deliveryAddress

object (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 (Order)
  },
  "changed": boolean
}
Champs
order

object (Order)

État mis à jour de la commande associée à cette session.

changed

boolean

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

string

Réponse textuelle de l'agent.

SuggestedOptions

Options à suggérer au client.

Représentation JSON
{
  "suggestedModifierGroups": {
    object (SuggestedModifierGroups)
  },

  // Union field suggested_options can be only one of the following:
  "suggestedItems": {
    object (SuggestedItems)
  },
  "suggestedModifiers": {
    object (SuggestedModifiers)
  }
  // End of list of possible types for union field suggested_options.
}
Champs
suggestedModifierGroups

object (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

object (SuggestedItems)

Liste d'articles à suggérer au client.

suggestedModifiers

object (SuggestedModifiers)

Liste des modificateurs à suggérer au client.

SuggestedItems

Liste d'articles à suggérer au client.

Représentation JSON
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
Champs
items[]

object (SuggestedItem)

Articles à suggérer au client.

SuggestedItem

Article à suggérer au client.

Représentation JSON
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
Champs
itemId

string

ID de l'élément dans le menu.

displayName

string

Nom intelligible de cet élément à afficher dans les interfaces utilisateur.

image

object (Image)

Image à afficher pour cet élément dans l'UI.

basePrice

object (Money)

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

object (ItemIntegrationAttributes)

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 (SuggestedModifier)
    }
  ],
  "parentUid": string
}
Champs
modifiers[]

object (SuggestedModifier)

Modificateurs à suggérer au client.

parentUid

string

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 (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
Champs
modifierId

string

ID du modificateur dans le menu.

modifierGroupId

string

ID du groupe de modificateurs auquel ce modificateur doit être ajouté si la suggestion est acceptée.

modifierGroupDisplayName

string

Nom à afficher du groupe de modificateurs auquel appartient ce modificateur.

displayName

string

Nom intelligible de cet élément à afficher dans les interfaces utilisateur.

image

object (Image)

Image à afficher pour cet élément dans l'UI.

priceAdjustment

object (Money)

Ajustement de prix associé à ce modificateur, le cas échéant. Il s'agit du prix unitaire du modificateur.

integrationAttributes

object (ModifierIntegrationAttributes)

Métadonnées associées à cette entité utilisées pour les intégrations en aval.

alreadyIncluded

boolean

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 (SuggestedModGroup)
    }
  ]
}
Champs
modifierGroups[]

object (SuggestedModGroup)

Groupes de modificateurs à suggérer au client.

SuggestedModGroup

Groupe de modificateurs à suggérer au client.

Représentation JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "maxSelectionCount": integer,
  "minSelectionCount": integer,
  "maxSelectionCountPerModifier": integer
}
Champs
modifierGroupId

string

ID du groupe de modificateurs dans le menu.

displayName

string

Nom à afficher du groupe de modificateurs.

modifiers[]

object (SuggestedModifier)

Modificateurs de ce groupe.

maxSelectionCount

integer

Nombre maximal de modificateurs pouvant être sélectionnés dans ce groupe.

minSelectionCount

integer

Nombre minimal de modificateurs à sélectionner dans ce groupe.

maxSelectionCountPerModifier

integer

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

number

Facultatif. Score de sentiment compris entre -1,0 (sentiment négatif) et 1,0 (sentiment positif).

magnitude

number

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 (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
Champs
type

enum (EndType)

Type d'événement de fin de session.

reason

string

Motif de fin de la session.

posResponse

string

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

string

Facultatif. Message de réponse final de l'agent à énoncer/afficher pour l'utilisateur (facultatif).

storeSchedule

object (Schedule)

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é.