Method: projects.locations.sessions.processOrder

Effectue une logique de tour unique 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-through 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 éléments customerAudio et crewAudio dans AudioInput.

config.daypartId

string

Facultatif. Période de la journée du menu, y compris le petit-déjeuner, le déjeuner, le dîner, etc. Cette information permet de déterminer le menu à utiliser pour la commande.

config.featureGate

object (FeatureGate)

Facultatif. Portes de fonctionnalité pour la session. Il 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 avec l'agent.

config.enableListenOnlyDualChannel

boolean

Facultatif. Indique si le mode double canal audio uniquement doit être activé pour la session. Si cette option est activée, le client doit fournir les éléments customerAudio et crewAudio dans AudioInput, et CES effectuera l'EAC et la somme 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)

Texte saisi par le client.

audioInput

object (AudioInput)

Entrée audio du client.

eventInput

object (EventInput)

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

clientExecutionResult

object (ClientExecutionResult)

Résultat d'une demande d'exécution 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 fonctionnellement 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

Texte saisi par le client. Au lieu d'un message audio, le client peut également envoyer un message texte à l'agent. Un client doit utiliser soit une entrée de texte, soit une entrée 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'entrée audio peut comporter plusieurs canaux pour le client, l'équipage, 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 des clients.

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'équipage qui se trouve dans la même file d'attente que le client. Il sert de référence audio pour l'annulation de l'écho.

Chaîne encodée en base64.

EventInput

Entrée d'événement provenant 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 L'événement à déclencher. event ne peut être qu'un des éléments suivants :
driveOffEvent

object (DriveOffEvent)

Événement de départ.

crewInterjectionEvent

object (CrewInterjectionEvent)

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

updateOrderStateEvent

object (OrderStateUpdateEvent)

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

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

Événement de départ. Indique que le client est parti. La session sera clôturée après cet événement.

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

string

Facultatif. Motif du départ sans paiement, par exemple "commande terminée" ou "départ inattendu".

CrewInterjectionEvent

Événement d'interjection de l'équipage. Cela indique qu'un membre de l'équipe est intervenu dans la session. La session sera fermée après cet événement.

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

string

Facultatif. Mode d'intervention du membre de l'équipage (par exemple, "casque", "terminal de 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 transmet la session à un agent humain.

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

string

Facultatif. Motif de l'escalade du client (par exemple, "paiement refusé", "erreur de terminal", "erreur d'intégration", etc.).

CallerHangupEvent

Ce type ne comporte aucun champ.

Indique que le client a raccroché prématurément (par exemple, en raison d'une aversion pour l'IA).

PosErrorEvent

Échecs spécifiques aux points de vente

Représentation JSON
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
Champs
errorMessages[]

string

Facultatif. Liste des descriptions d'erreurs lisibles par l'utilisateur. Plusieurs messages d'erreur peuvent être fournis si plusieurs problèmes se produisent simultanément (par exemple, si plusieurs articles sont en rupture de stock) ou pour fournir une explication plus détaillée d'un échec complexe. L'agent peut utiliser ces messages pour informer le client ou à des fins de journalisation.

affectedItemUids[]

string

Facultatif. UID d'article unique généré par l'agent IA pour la commande de repas et ayant provoqué 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 ou des catégories d'erreur 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 demande d'exécution 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 demande d'exécution pour laquelle il s'agit d'un résultat.

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. No-op 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. Cela permet de vérifier le numéro de carte de crédit au moment du 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 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 des commandes ont été récupérés.

orderPriceInfo

object (OrderPriceInfo)

Facultatif. Prix total de la commande après toutes les remises, tous les frais, toutes les 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 été récupéré.

Blob

Représente une entrée ou une sortie 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.

Config

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 demande d'initiation de 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-through 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 éléments customerAudio et crewAudio dans AudioInput.

daypartId

string

Facultatif. Période de la journée du menu, y compris le petit-déjeuner, le déjeuner, le dîner, etc. Cette information permet de déterminer le menu à utiliser pour la commande.

featureGate

object (FeatureGate)

Facultatif. Portes de fonctionnalité pour la session. Il 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 avec l'agent.

enableListenOnlyDualChannel

boolean

Facultatif. Indique si le mode double canal audio uniquement doit être activé pour la session. Si cette option est activée, le client doit fournir les éléments customerAudio et crewAudio dans AudioInput, et CES effectuera l'EAC et la somme 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

Portes de fonctionnalité pour la session. Il 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 cette valeur est définie, updatedOrderState est renvoyé à la place de l'ancienne réponse orderStateResponse.

enableOrderStatusRetrieval

boolean

Facultatif. Si cette option est définie, l'agent prendra en charge la récupération de 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 du logiciel d'application.

SessionMode

Mode de la session.

Enums
SESSION_MODE_UNSPECIFIED Le mode de session n'est pas spécifié.
HYBRID La session est compatible avec l'audio et le texte. Il s'agit de l'option par défaut.
TEXT La session est uniquement textuelle.

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 CES.
SUBSEQUENT Indique explicitement un tour de conversation ultérieur ou une mise à jour en cours de session. Lorsqu'elle est définie, les variables de session initiale 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 sur l'état de la commande héritée pour une session.

interruptionSignal

object (InterruptionSignal)

Un signal d'interruption a été détecté dans l'entrée audio.

agentEvent

object (AgentEvent)

Événement de l'agent.

clientExecutionRequest

object (ClientExecutionRequest)

La demande 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 "Tour terminé".

endSession

object (EndSession)

Indique que la session se termine et qu'il s'agit du dernier tour.

L'agent termine d'envoyer les réponses en attente pour le tour en cours, puis envoie un message final turnCompleted. L'agent ne lancera aucun nouveau tour. Par exemple, une session de deux tours se présentera comme suit :

  • Tour 1
  • Entrée client 1
  • ... réponses de l'agent et messages sur l'état des commandes
  • turnCompleted
  • Tour 2
  • Donnée client 2
  • ... réponses de l'agent et messages sur l'état des commandes
  • endSession
  • ... messages d'état de la commande et de réponse de l'agent 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, tel que "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 une intervention de l'utilisateur final). Le client doit arrêter la lecture immédiatement.

AgentEvent

Événement spécial de l'agent nécessitant 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 provenant de l'agent. event ne peut être qu'un des éléments suivants :
restartOrder

object (RestartOrder)

Le client demande à redémarrer 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 demande d'exécution.

Champ d'union request. Demande spécifique à exécuter. request ne peut être qu'un des éléments suivants :
finalizeOrderRequest

object (FinalizeOrderRequest)

Requête permettant de finaliser la commande.

submitOrderRequest

object (SubmitOrderRequest)

Requête permettant d'envoyer la commande.

orderPricesRequest

object (OrderPricesRequest)

Requête permettant d'obtenir les prix des commandes.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Une demande de validation de l'adresse de livraison.

orderStatusRequest

object (OrderStatusRequest)

Requête permettant d'obtenir l'état de la commande.

FinalizeOrderRequest

Ce type ne comporte aucun champ.

Requête permettant de finaliser la commande. L'agent envoie généralement ce message lorsque le client indique qu'il a terminé de passer commande et qu'il souhaite payer.

SubmitOrderRequest

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 sur la fidélité d'un client.

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

object (LoyaltyAmount)

Obligatoire. Montant de la récompense. Il peut s'agir d'un solde de fidélité ou d'un montant de fidélité utilisé.

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

Requête permettant d'obtenir les prix des commandes.

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

object (Order)

Facultatif. Commande pour laquelle obtenir les prix. Si aucune valeur n'est spécifiée, nous pouvons supposer que la requête concerne la commande/le panier existant dans la session.

ValidateDeliveryAddressRequest

Demande de validation d'une adresse de livraison collectée au cours de la session.

Représentation JSON
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Champs
deliveryAddress

object (DeliveryAddress)

Obligatoire. Adresse de livraison à valider.

OrderStatusRequest

Ce type ne comporte aucun champ.

Requête permettant d'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é modifié.

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)

Groupe de modificateurs suggérés.

Champ d'union suggested_options. 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

Identifiant 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é et 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

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é et 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. Magnitude du sentiment, quel que soit le score.

TurnCompleted

Ce type ne comporte aucun champ.

Indique que l'agent d'IA pour l'alimentation a détecté la fin du tour de conversation en cours et ne fournira aucune autre réponse pour ce tour.

EndSession

Indique que l'agent a mis fin à la session, soit parce qu'elle s'est terminée avec succès (par exemple, l'utilisateur dit "Au revoir !" ) ou une escalade d'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

Raison de la fin de la session.

posResponse

string

Facultatif. Réponse du point de vente lors de l'enregistrement de la commande (facultatif). Il s'agit d'une charge utile de chaîne opaque représentant l'état de la transaction au point de vente.

agentResponse

string

Facultatif. Message de réponse final de l'agent à prononcer ou à afficher à l'utilisateur (facultatif).

storeSchedule

object (Schedule)

Facultatif. Planning du magasin. Il 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 reparti.
AGENT_ESCALATION L'agent a escaladé la session à un agent humain.
CREW_INTERJECTION Un membre de l'équipe a interrompu la session.
ORDER_COMPLETED La commande a bien été effectuée et aucune autre action n'est requise.
PAYMENT_FLOW_SUCCESS Le processus de paiement s'est déroulé avec succès. Aucune autre action n'est requise.
PAYMENT_FLOW_FAILURE Le processus de paiement a échoué.
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é à passer à la caisse.
REQUESTED_ORDER_STATUS Le client s'est renseigné sur l'état de sa commande.
STORE_CLOSED La boutique est fermée.