- 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
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 |
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-through 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 éléments customerAudio et crewAudio dans AudioInput. |
config.daypartId |
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 |
Facultatif. Portes de fonctionnalité pour la session. Il 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 avec l'agent. |
config.enableListenOnlyDualChannel |
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 |
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 |
Texte saisi par le client. |
audioInput |
Entrée audio du client. |
eventInput |
Entrée d'événement provenant du client. |
clientExecutionResult |
Résultat d'une demande d'exécution 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 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 ( |
| 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
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 |
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 |
Obligatoire. Données audio des clients. 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'é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 |
| Champs | |
|---|---|
Champ d'union event. Identifiant suivant : 10 L'événement à déclencher. event ne peut être qu'un des éléments suivants : |
|
driveOffEvent |
Événement de départ. |
crewInterjectionEvent |
Événement d'interjection de l'équipage. |
updateOrderStateEvent |
Mise à jour de l'état de la commande côté client. |
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
É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 |
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 |
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 ( |
| Champs | |
|---|---|
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 |
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[] |
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[] |
Facultatif. UID d'article unique généré par l'agent IA pour la commande de repas et ayant provoqué 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 ou des catégories d'erreur spécifiques à la marque (par exemple, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). Objet contenant une liste de paires |
ClientExecutionResult
Résultat d'une demande d'exécution client.
| Représentation JSON |
|---|
{ "executionId": string, // Union field |
| Champs | |
|---|---|
executionId |
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 |
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. No-op 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. Cela permet de vérifier le numéro de carte de crédit au moment du 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 |
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 des commandes ont été récupérés. |
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 ( |
| 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 é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 |
Obligatoire. Type MIME standard IANA des données sources. |
data |
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 ( |
| 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-through 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 éléments customerAudio et crewAudio dans AudioInput. |
daypartId |
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 |
Facultatif. Portes de fonctionnalité pour la session. Il 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 avec l'agent. |
enableListenOnlyDualChannel |
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 |
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
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 |
Facultatif. Renvoie les données du menu au client dans BidiProcessOrderResponse si elles sont définies. |
updatedOrderStateEnabled |
Facultatif. Si cette valeur est définie, updatedOrderState est renvoyé à la place de l'ancienne réponse orderStateResponse. |
enableOrderStatusRetrieval |
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 |
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 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 |
| 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 sur l'état de la commande héritée pour une session. |
interruptionSignal |
Un signal d'interruption a été détecté dans l'entrée audio. |
agentEvent |
Événement de l'agent. |
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 |
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 "Tour terminé". |
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 :
|
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, tel que "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 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 |
| Champs | |
|---|---|
Champ d'union event. Événement provenant de l'agent. event ne peut être qu'un des éléments suivants : |
|
restartOrder |
Le client demande à redémarrer 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 demande d'exécution. |
Champ d'union request. Demande spécifique à exécuter. request ne peut être qu'un des éléments suivants : |
|
finalizeOrderRequest |
Requête permettant de finaliser la commande. |
submitOrderRequest |
Requête permettant d'envoyer la commande. |
orderPricesRequest |
Requête permettant d'obtenir les prix des commandes. |
validateDeliveryAddressRequest |
Une demande de validation de l'adresse de livraison. |
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 ( |
| 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 sur la fidélité d'un client.
| Représentation JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Champs | |
|---|---|
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 |
Obligatoire. Les points de fidélité. |
OrderPricesRequest
Requête permettant d'obtenir les prix des commandes.
| Représentation JSON |
|---|
{
"order": {
object ( |
| Champs | |
|---|---|
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 ( |
| Champs | |
|---|---|
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 ( |
| 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é modifié. |
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 |
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 |
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 |
Identifiant 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é et 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
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é et 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. 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 ( |
| Champs | |
|---|---|
type |
Type d'événement de fin de session. |
reason |
Raison de la fin de la session. |
posResponse |
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 |
Facultatif. Message de réponse final de l'agent à prononcer ou à afficher à l'utilisateur (facultatif). |
storeSchedule |
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. |