Method: projects.locations.sessions.processOrder

Esegue una logica a turno singolo per elaborare l'input utente e restituire il risultato.

Richiesta HTTP

POST https://foodorderingaiagent.googleapis.com/v1beta/{config.session=projects/*/locations/*/sessions/*}:processOrder

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri di percorso

Parametri
config.session

string

Obbligatorio. La sessione per l'ordine. Formato: projects/{project}/locations/{location}/sessions/{session}

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "config": {
    "session": string,
    "store": string,
    "laneId": string,
    "enableEchoCancellation": boolean,
    "daypartId": string,
    "userInfo": {
      "preferredName": string,
      "paymentInfo": {
        object (PaymentInfo)
      },
      "deliveryAddress": string,
      "pastOrders": [
        {
          object (PastOrder)
        }
      ],
      "loyaltyInfo": {
        object (LoyaltyInfo)
      },
      "phoneNumber": string,
      "userId": string,
      "savedDeliveryAddress": {
        object (DeliveryAddress)
      }
    },
    "orderType": enum (OrderType),
    "initialOrder": {
      "items": [
        {
          object (OrderItem)
        }
      ],
      "metadata": {
        object (OrderMetadata)
      },
      "fulfillment": {
        object (OrderFulfillment)
      },
      "priceInfo": {
        object (OrderPriceInfo)
      },
      "externalOrderId": string,
      "orderPayment": {
        object (OrderPayment)
      }
    },
    "featureGate": {
      "triggerOfferEngineOnDemand": boolean,
      "triggerLoyaltyOnDemand": boolean,
      "triggerOrderMediaAssistantOnDemand": boolean,
      "menuResponseEnabled": boolean,
      "revampedPaymentFlowEnabled": boolean,
      "updatedOrderStateEnabled": boolean,
      "enableOrderStatusRetrieval": boolean
    },
    "initialUtterance": string,
    "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.
}
Campi
config.store

string

Obbligatorio. Il negozio per cui viene effettuato l'ordine. Formato: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

Facoltativo. L'ID di una corsia drive-through specifica.

config.enableEchoCancellation

boolean

Facoltativo. Indica se attivare la cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput.

config.daypartId

string

Facoltativo. Fascia oraria del menu, tra cui colazione, pranzo, cena e così via. Viene utilizzata per determinare il menu da utilizzare per l'ordine.

config.userInfo

object (UserInfo)

Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente.

config.orderType
(deprecated)

enum (OrderType)

Facoltativo. Deprecato: utilizza invece initialOrder.fulfillment.fulfillment_type. Il tipo di ordine da effettuare.

config.initialOrder

object (Order)

Facoltativo. L'ordine iniziale prima di avviare la sessione dell'agente. Se fornito, l'agente lo utilizzerà come stato iniziale dell'ordine.

config.featureGate

object (FeatureGate)

Facoltativo. I feature gate per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione.

config.initialUtterance

string

Facoltativo. L'espressione iniziale del client per avviare la conversazione. Se fornito, l'agente lo utilizzerà come primo enunciato dell'utente e non inizierà con un messaggio di saluto.

config.clientAppInfo

object (ClientAppInfo)

Facoltativo. Le informazioni sull'applicazione client e sull'ambiente del dispositivo.

config.mode

enum (SessionMode)

Facoltativo. La modalità della sessione.

config.channelType

enum (ChannelType)

Facoltativo. Il tipo di canale utilizzato per la comunicazione con l'agente.

config.enableListenOnlyDualChannel

boolean

Facoltativo. Indica se attivare il doppio canale di solo ascolto per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput e CES eseguirà l'EAC e la somma sul server di elaborazione dei contenuti multimediali.

config.testSessionStartTime

string (Timestamp format)

Facoltativo. L'ora di inizio della sessione, utilizzata per scopi di test o valutazione.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

turnType

enum (TurnType)

Facoltativo. Indicatore esplicito della posizione della richiesta nel ciclo di vita della sessione. Consente ai client di controllare in modo deterministico quando vengono inserite le variabili di configurazione della sessione iniziale.

Campo unione input. L'input del client. input può essere solo uno dei seguenti tipi:
textInput

object (TextInput)

L'input di testo del client.

audioInput

object (AudioInput)

L'input audio del client.

eventInput

object (EventInput)

L'input dell'evento dal client.

clientExecutionResult

object (ClientExecutionResult)

Il risultato di una richiesta di esecuzione del client.

blobInput

object (Blob)

Input di dati binari generici. Esegue il mirroring di http://google3/google/cloud/ces/v1main/session_service.proto?l=720

Corpo della risposta

Messaggio di risposta per FoodOrderingService.ProcessOrder. Contiene i campi di BidiProcessOrderResponse, ad eccezione di quelli specifici per lo streaming.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responses": [
    {
      object (BidiProcessOrderResponse)
    }
  ]
}
Campi
responses[]

object (BidiProcessOrderResponse)

Solo output. Elenco delle risposte dell'agente alla richiesta, restituite in ordine.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Per saperne di più, consulta la Authentication Overview.

TextInput

L'input di testo del client. In alternativa all'audio, il client può inviare un input di testo all'agente. Un client deve utilizzare l'input di testo o audio, non entrambi.

Rappresentazione JSON
{
  "text": string
}
Campi
text

string

Obbligatorio. L'enunciato di testo del client.

AudioInput

L'input audio del client. L'audio di input può avere più canali per il cliente, l'equipaggio e così via. Tutti questi canali devono essere sincronizzati e nel formato specificato nella configurazione. Le intestazioni audio non devono essere incluse. Per impostazione predefinita, l'audio deve utilizzare la codifica audio PCM lineare a 16 bit e una frequenza di campionamento di 16.000 Hz. I byte totali di tutti i canali devono essere inferiori a 25.600 byte.

Rappresentazione JSON
{
  "customerAudio": string,
  "crewAudio": string
}
Campi
customerAudio

string (bytes format)

Obbligatorio. Dati audio dei clienti.

Una stringa con codifica in base64.

crewAudio

string (bytes format)

Facoltativo. Dati audio della troupe. Si tratta di un canale audio facoltativo per il membro del personale nella stessa corsia del cliente, che funge da audio di riferimento per la cancellazione eco.

Una stringa con codifica in base64.

EventInput

L'input dell'evento dal client. Viene utilizzato per attivare eventi specifici all'interno dell'agente.

Rappresentazione JSON
{

  // Union field event can be only one of the following:
  "driveOffEvent": {
    object (DriveOffEvent)
  },
  "crewInterjectionEvent": {
    object (CrewInterjectionEvent)
  },
  "updateOrderStateEvent": {
    object (OrderStateUpdateEvent)
  },
  "clientEscalationEvent": {
    object (ClientEscalationEvent)
  },
  "customizedInputEvent": {
    object (CustomizedInputEvent)
  },
  "callerHangupEvent": {
    object (CallerHangupEvent)
  },
  "posErrorInput": {
    object (PosErrorEvent)
  }
  // End of list of possible types for union field event.
}
Campi
Campo unione event. ID successivo: 10 L'evento da attivare. event può essere solo uno dei seguenti tipi:
driveOffEvent

object (DriveOffEvent)

L'evento di allontanamento.

crewInterjectionEvent

object (CrewInterjectionEvent)

L'evento di interiezione della crew.

updateOrderStateEvent

object (OrderStateUpdateEvent)

Un aggiornamento lato client dello stato dell'ordine.

clientEscalationEvent

object (ClientEscalationEvent)

Un evento di escalation lato client.

customizedInputEvent

object (CustomizedInputEvent)

Un evento di input personalizzato.

callerHangupEvent

object (CallerHangupEvent)

Facoltativo. Un evento di riaggancio del chiamante.

posErrorInput

object (PosErrorEvent)

Facoltativo. Un evento di errore POS.

DriveOffEvent

L'evento di partenza. Questo indica che il cliente è andato via. La sessione verrà chiusa dopo questo evento.

Rappresentazione JSON
{
  "reason": string
}
Campi
reason

string

Facoltativo. Il motivo della partenza, ad esempio "ordine completato", "partenza imprevista".

CrewInterjectionEvent

L'evento di interiezione della crew. Questo indica che un membro della crew è intervenuto nella sessione. La sessione verrà chiusa dopo questo evento.

Rappresentazione JSON
{
  "mode": string
}
Campi
mode

string

Facoltativo. La modalità con cui il membro della troupe è intervenuto, ad esempio "headset", "pos".

OrderStateUpdateEvent

La richiesta di aggiornamento dello stato dell'ordine. Questo evento deve essere inviato quando l'ordine viene aggiornato sul lato client, ad esempio quando un articolo viene aggiunto o rimosso tramite un'interfaccia touch tradizionale.

Rappresentazione JSON
{
  "order": {
    object (Order)
  }
}
Campi
order

object (Order)

Obbligatorio. Lo stato aggiornato dell'ordine associato a questa sessione.

ClientEscalationEvent

Indica che il client sta assegnando la sessione a un agente umano.

Rappresentazione JSON
{
  "reason": string
}
Campi
reason

string

Facoltativo. Il motivo dell'escalation del cliente, ad esempio "payment-declined", "pos-error", "integration-error" e così via.

CustomizedInputEvent

Questo campo consente a un client Food AI di inviare un evento personalizzato all'agente. Per impostazione predefinita, è un'operazione no-op. Contatta l'assistenza clienti per attivare questa funzionalità.

Rappresentazione JSON
{
  "input": {
    object
  }
}
Campi
input

object (Struct format)

Obbligatorio. Input dal client all'agente.

CallerHangupEvent

Questo tipo non ha campi.

Indica che il cliente ha riagganciato la chiamata prima del tempo (ad es. avversione all'AI).

PosErrorEvent

Errori specifici del point of sale (POS).

Rappresentazione JSON
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
Campi
errorMessages[]

string

Facoltativo. Un elenco di descrizioni degli errori leggibili. È possibile fornire più messaggi di errore se si verificano più problemi contemporaneamente (ad es. più articoli non sono disponibili) o per fornire una suddivisione più dettagliata di un singolo errore complesso. Questi messaggi possono essere utilizzati dall'agente per informare il cliente o per scopi di registrazione.

affectedItemUids[]

string

Facoltativo. UID univoci degli elementi generati dall'agente AI Ordinazione di cibo che ha causato l'errore. Corrisponde a UpdatedOrderState.OrderItem.uid.

affectedExternalIds[]

string

Facoltativo. Elenco di ID esterni (dal menu) che hanno causato l'errore. Deve essere uguale ai rappresentanti effettivi nel POS, che di solito si trovano negli attributi di integrazione in menu.proto (ad es. in ItemIntegrationAttributes o ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

Facoltativo. Metadati in formato libero per il debug o la segnalazione specifica del brand. Può essere utilizzato per passare codici di errore o categorie specifici del brand (ad es. {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}).

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientExecutionResult

Il risultato di una richiesta di esecuzione del client.

Rappresentazione JSON
{
  "executionId": string,

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

string

Obbligatorio. L'ID della richiesta di esecuzione per cui è stato generato questo risultato.

Campo unione response. Il risultato specifico dell'esecuzione. response può essere solo uno dei seguenti tipi:
finalizeOrderResponse

object (FinalizeOrderResponse)

Il risultato della finalizzazione dell'ordine.

submitOrderResponse

object (SubmitOrderResponse)

Il risultato dell'invio dell'ordine.

orderPricesResponse

object (OrderPricesResponse)

Il risultato dell'ottenimento dei prezzi dell'ordine.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

Il risultato della convalida dell'indirizzo di consegna.

orderStatusResponse

object (OrderStatusResponse)

Il risultato del recupero dello stato dell'ordine.

FinalizeOrderResponse

Il risultato della finalizzazione dell'ordine.

Rappresentazione JSON
{
  "paymentFlowEnabled": boolean,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Campi
paymentFlowEnabled

boolean

Facoltativo. Indica se attivare il flusso di gestione dei pagamenti nell'agente.

paymentInfo

object (PaymentInfo)

Facoltativo. I dati di pagamento del cliente. Nessuna operazione se paymentFlowEnabled è false.

totalAmountDue

object (Money)

Facoltativo. L'importo totale dovuto per l'ordine.

orderPriceInfo

object (OrderPriceInfo)

Facoltativo. Le informazioni dettagliate sul prezzo dell'ordine.

SubmitOrderResponse

Il risultato dell'invio dell'ordine.

Rappresentazione JSON
{
  "success": boolean,
  "estimatedReadyDuration": string
}
Campi
success

boolean

Obbligatorio. Se l'ordine è stato inviato correttamente.

estimatedReadyDuration

string (Duration format)

Facoltativo. La durata stimata prima che l'ordine sia pronto.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

OrderPricesResponse

Il risultato dell'ottenimento dei prezzi dell'ordine.

Rappresentazione JSON
{
  "success": boolean,
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Campi
success

boolean

Obbligatorio. Indica se i prezzi dell'ordine sono stati recuperati correttamente.

orderPriceInfo

object (OrderPriceInfo)

Facoltativo. Prezzo totale dell'ordine dopo tutti gli sconti, le commissioni, le tasse e così via

ValidateDeliveryAddressResponse

Il risultato della convalida di un indirizzo di consegna.

Rappresentazione JSON
{
  "success": boolean,
  "validationStatus": enum (ValidationStatus)
}
Campi
success

boolean

Obbligatorio. Indica se la convalida è stata completata senza errori.

validationStatus

enum (ValidationStatus)

Obbligatorio. Lo stato di convalida dell'indirizzo di consegna.

OrderStatusResponse

Il risultato del recupero dello stato dell'ordine.

Rappresentazione JSON
{
  "success": boolean
}
Campi
success

boolean

Obbligatorio. Indica se lo stato dell'ordine è stato recuperato correttamente.

Blob

Rappresenta un input o un output blob nella conversazione.

Rappresentazione JSON
{
  "mimeType": string,
  "data": string
}
Campi
mimeType

string

Obbligatorio. Il tipo MIME standard IANA dei dati di origine.

data

string (bytes format)

Obbligatorio. Byte non elaborati del blob.

Una stringa con codifica in base64.

Configurazione

La configurazione di una sessione e delle proprietà di Ordinazione di cibo. All'inizio di ogni connessione, il client deve prima inviare un messaggio di configurazione. Questo deve avvenire prima di qualsiasi altra richiesta di avvio della sessione. Se il client si disconnette, deve ripetere lo stesso messaggio di configurazione quando si riconnette.

Rappresentazione JSON
{
  "session": string,
  "store": string,
  "laneId": string,
  "enableEchoCancellation": boolean,
  "daypartId": string,
  "userInfo": {
    object (UserInfo)
  },
  "orderType": enum (OrderType),
  "initialOrder": {
    object (Order)
  },
  "featureGate": {
    object (FeatureGate)
  },
  "initialUtterance": string,
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string
}
Campi
session

string

Obbligatorio. La sessione per l'ordine. Formato: projects/{project}/locations/{location}/sessions/{session}

store

string

Obbligatorio. Il negozio per cui viene effettuato l'ordine. Formato: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

Facoltativo. L'ID di una corsia drive-through specifica.

enableEchoCancellation

boolean

Facoltativo. Indica se attivare la cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput.

daypartId

string

Facoltativo. Fascia oraria del menu, tra cui colazione, pranzo, cena e così via. Viene utilizzata per determinare il menu da utilizzare per l'ordine.

userInfo

object (UserInfo)

Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente.

orderType
(deprecated)

enum (OrderType)

Facoltativo. Deprecato: utilizza invece initialOrder.fulfillment.fulfillment_type. Il tipo di ordine da effettuare.

initialOrder

object (Order)

Facoltativo. L'ordine iniziale prima di avviare la sessione dell'agente. Se fornito, l'agente lo utilizzerà come stato iniziale dell'ordine.

featureGate

object (FeatureGate)

Facoltativo. I feature gate per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione.

initialUtterance

string

Facoltativo. L'espressione iniziale del client per avviare la conversazione. Se fornito, l'agente lo utilizzerà come primo enunciato dell'utente e non inizierà con un messaggio di saluto.

clientAppInfo

object (ClientAppInfo)

Facoltativo. Le informazioni sull'applicazione client e sull'ambiente del dispositivo.

mode

enum (SessionMode)

Facoltativo. La modalità della sessione.

channelType

enum (ChannelType)

Facoltativo. Il tipo di canale utilizzato per la comunicazione con l'agente.

enableListenOnlyDualChannel

boolean

Facoltativo. Indica se attivare il doppio canale di solo ascolto per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput e CES eseguirà l'EAC e la somma sul server di elaborazione dei contenuti multimediali.

testSessionStartTime

string (Timestamp format)

Facoltativo. L'ora di inizio della sessione, utilizzata per scopi di test o valutazione.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

UserInfo

Informazioni personali dell'utente finale condivise con l'agente Food AI.

Rappresentazione JSON
{
  "preferredName": string,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "deliveryAddress": string,
  "pastOrders": [
    {
      object (PastOrder)
    }
  ],
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "phoneNumber": string,
  "userId": string,
  "savedDeliveryAddress": {
    object (DeliveryAddress)
  }
}
Campi
preferredName

string

Facoltativo. Il nome dell'utente che l'agente deve utilizzare per rivolgersi all'utente. Il client Food AI è responsabile della selezione del nome preferito in base al profilo dell'utente e di assicurarsi che sia in linea con la convenzione del brand, ad esempio l'utilizzo del nome o del nome completo.

paymentInfo

object (PaymentInfo)

Facoltativo. I dati di pagamento dell'utente.

deliveryAddress
(deprecated)

string

Facoltativo. Ritirato: utilizza invece savedDeliveryAddress. L'indirizzo di consegna salvato dell'utente.

pastOrders[]

object (PastOrder)

Facoltativo. La cronologia degli ordini dell'utente.

loyaltyInfo

object (LoyaltyInfo)

Facoltativo. Le informazioni sul programma fedeltà dell'utente.

phoneNumber

string

Facoltativo. Il numero di telefono dell'utente.

userId

string

Facoltativo. L'identificatore univoco dell'utente nel sistema del cliente.

savedDeliveryAddress

object (DeliveryAddress)

Facoltativo. L'indirizzo di consegna salvato dell'utente. Sostituirà il campo deliveryAddress della stringa esistente.

PastOrder

L'ordine precedente dell'utente.

Rappresentazione JSON
{
  "order": {
    object (Order)
  }
}
Campi
order

object (Order)

Obbligatorio. L'ordine originale di Food AI.

LoyaltyInfo

Rappresenta le informazioni sulla fedeltà di un cliente.

Rappresentazione JSON
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
Campi
loyaltyAmount

object (LoyaltyAmount)

Obbligatorio. L'importo della fedeltà. Può trattarsi di un saldo fedeltà o di un consumo fedeltà.

OrderType

Il tipo di ordine da effettuare.

Enum
ORDER_TYPE_UNSPECIFIED Il tipo di ordine non è specificato.
ORDER_TYPE_DRIVE_THROUGH L'ordine è per il drive-through.
ORDER_TYPE_CARRY_OUT L'ordine è da asporto.
ORDER_TYPE_DELIVERY L'ordine è per la consegna.

FeatureGate

I feature gate per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione.

Rappresentazione JSON
{
  "triggerOfferEngineOnDemand": boolean,
  "triggerLoyaltyOnDemand": boolean,
  "triggerOrderMediaAssistantOnDemand": boolean,
  "menuResponseEnabled": boolean,
  "revampedPaymentFlowEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean
}
Campi
triggerOfferEngineOnDemand

boolean

Facoltativo. Solo per un pubblico limitato, se impostato, il motore delle offerte sarà facoltativo nel flusso di pagamento e verrà attivato solo quando gli utenti lo richiedono.

triggerLoyaltyOnDemand

boolean

Facoltativo. Solo per un pubblico limitato, se impostata, la fedeltà sarà facoltativa nel flusso di pagamento e verrà attivata solo quando gli utenti la richiedono.

triggerOrderMediaAssistantOnDemand

boolean

Facoltativo. Solo per un pubblico limitato, se impostato, l'assistente per l'ordinazione di contenuti multimediali sarà facoltativo e verrà attivato solo quando gli utenti lo richiedono.

menuResponseEnabled

boolean

Facoltativo. Restituisce i dati del menu al client in BidiProcessOrderResponse, se impostato.

revampedPaymentFlowEnabled

boolean

Facoltativo. Solo per un pubblico limitato, se impostato, verrà utilizzata una versione rinnovata del flusso di pagamento.

updatedOrderStateEnabled

boolean

Facoltativo. Se impostato, viene restituito updatedOrderState anziché legacyOrderStateResponse.

enableOrderStatusRetrieval

boolean

Facoltativo. Se impostato, l'agente supporterà il recupero dello stato dell'ordine.

ClientAppInfo

Informazioni sull'applicazione client e sull'ambiente del dispositivo. Viene utilizzato principalmente per il logging, l'analisi e il debug.

Rappresentazione JSON
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
Campi
deviceModel

string

Facoltativo. Il modello del dispositivo del client (ad es. "iPhone 13", "Pixel 7", "Kiosk v2").

osVersion

string

Facoltativo. La versione del sistema operativo del client (ad es. "iOS 16.1", "Android 13").

sdkVersion

string

Facoltativo. La versione dell'SDK client o dell'applicazione.

SessionMode

La modalità della sessione.

Enum
SESSION_MODE_UNSPECIFIED La modalità della sessione non è specificata.
HYBRID La sessione supporta sia l'audio che il testo. Questa è l'impostazione predefinita.
TEXT La sessione è di solo testo.

TurnType

Rappresenta la posizione del ciclo di vita di una richiesta unaria all'interno di una sessione.

Enum
TURN_TYPE_UNSPECIFIED Tipo di svolta non specificato.
INITIALIZE Indica esplicitamente che questa richiesta inizializza la sessione in modalità unaria. Se impostate, le variabili di sessione iniziali (ad es. metadati e menu del negozio) vengono inserite in CES.
SUBSEQUENT Indica esplicitamente un turno di conversazione successivo o un aggiornamento a metà sessione. Se impostato, le variabili di sessione iniziali vengono omesse per evitare l'esplosione dei token di input.

BidiProcessOrderResponse

Il messaggio di primo livello restituito dal metodo FoodOrderingService.BidiProcessOrder.

Rappresentazione 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)
  },
  "recommendedOrders": {
    object (RecommendedOrders)
  }
  // End of list of possible types for union field response.
}
Campi
Campo unione response. La risposta dell'agente. response può essere solo uno dei seguenti tipi:
agentAudio

object (AgentAudio)

La risposta audio dell'agente.

speechRecognition

object (SpeechRecognition)

Il risultato del riconoscimento vocale dell'agente.

legacyOrderStateResponse

object (Struct format)

La risposta dello stato dell'ordine precedente per una sessione.

interruptionSignal

object (InterruptionSignal)

Segnale di interruzione rilevato dall'input audio.

agentEvent

object (AgentEvent)

Evento dell'agente.

clientExecutionRequest

object (ClientExecutionRequest)

La richiesta viene inoltrata al client per l'esecuzione. Viene utilizzato per l'esecuzione lato client, ad esempio per aggiungere un codice all'ordine.

updatedOrderState

object (UpdatedOrderState)

Indica un aggiornamento dello stato dell'ordine. Include lo stato completo dell'ordine.

agentText

object (AgentText)

La risposta di testo dell'agente.

suggestedOptions

object (SuggestedOptions)

Opzioni da suggerire al cliente.

sentimentMeasurement

object (SentimentMeasurement)

Il punteggio del sentiment in tempo reale misurato per questo turno.

turnCompleted

object (TurnCompleted)

Messaggio di svolta completata.

endSession

object (EndSession)

Indica che la sessione sta per terminare e che questo sarà l'ultimo turno.

L'agente terminerà l'invio di eventuali risposte in attesa per il turno corrente, quindi invierà un messaggio turnCompleted finale. L'agente non avvierà nuovi turni. Ad esempio, una sessione di 2 turni sarà simile alla seguente:

  • Turno 1
  • input cliente 1
  • … messaggi di risposta dell'agente e di stato dell'ordine
  • turnCompleted
  • Turno 2
  • customer input 2
  • … messaggi di risposta dell'agente e di stato dell'ordine
  • endSession
  • … messaggi di risposta dell'agente e di stato dell'ordine in attesa
  • turnCompleted
recommendedOrders

object (RecommendedOrders)

Gli ordini consigliati dall'agente.

AgentAudio

La risposta audio dell'agente.

Rappresentazione JSON
{
  "agentAudio": string
}
Campi
agentAudio

string (bytes format)

I dati audio dell'agente.

Una stringa con codifica in base64.

SpeechRecognition

Il risultato del riconoscimento vocale dell'agente.

Rappresentazione JSON
{
  "transcript": string,
  "languageCode": string,
  "isFinal": boolean
}
Campi
transcript

string

Testo trascritto dall'input audio nella lingua rilevata.

languageCode

string

Il codice lingua della trascrizione. Il codice lingua deve essere nel formato BCP-47, ad esempio "en-US".

isFinal

boolean

Indica se si tratta della trascrizione finale del turno.

InterruptionSignal

Questo tipo non ha campi.

Indica che la risposta audio dell'agente è stata interrotta (ad esempio, dall'interruzione dell'utente finale). Il client deve interrompere immediatamente la riproduzione.

AgentEvent

Evento speciale dell'agente che richiede l'intervento del cliente.

Rappresentazione JSON
{

  // Union field event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
Campi
Campo unione event. L'evento dell'agente. event può essere solo uno dei seguenti tipi:
restartOrder

object (RestartOrder)

Il cliente chiede di riavviare l'ordine.

RestartOrder

Il cliente chiede di ricominciare l'ordine.

Rappresentazione JSON
{
  "confirmationStep": boolean
}
Campi
confirmationStep

boolean

L'agente chiede al cliente di confermare la richiesta di riavvio.

ClientExecutionRequest

Una richiesta al lato client per eseguire un comando.

Rappresentazione 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.
}
Campi
executionId

string

Obbligatorio. Un ID univoco per questa richiesta di esecuzione.

Campo unione request. La richiesta specifica da eseguire. request può essere solo uno dei seguenti tipi:
finalizeOrderRequest

object (FinalizeOrderRequest)

Una richiesta di finalizzazione dell'ordine.

submitOrderRequest

object (SubmitOrderRequest)

Una richiesta di invio dell'ordine.

orderPricesRequest

object (OrderPricesRequest)

Una richiesta per ottenere i prezzi degli ordini.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Una richiesta di convalida dell'indirizzo di consegna.

orderStatusRequest

object (OrderStatusRequest)

Una richiesta per ottenere lo stato dell'ordine.

FinalizeOrderRequest

Questo tipo non ha campi.

Una richiesta di finalizzazione dell'ordine. In genere, questo messaggio viene inviato dall'agente quando il cliente indica di aver terminato l'ordine e di voler pagare.

SubmitOrderRequest

Una richiesta di invio dell'ordine, con tutte le informazioni di pagamento richieste raccolte dal cliente.

Rappresentazione JSON
{
  "paymentInfo": {
    object (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
Campi
paymentInfo

object (PaymentInfo)

Obbligatorio. I dati di pagamento dell'ordine.

loyaltyInfo

object (LoyaltyInfo)

Facoltativo. La fedeltà consumata per l'ordine.

tipAmount

object (Money)

Facoltativo. L'importo della mancia per l'ordine.

OrderPricesRequest

Una richiesta per ottenere i prezzi degli ordini.

Rappresentazione JSON
{
  "order": {
    object (Order)
  }
}
Campi
order

object (Order)

Facoltativo. L'ordine per cui ottenere i prezzi. Se non specificato, possiamo presumere che la richiesta riguardi l'ordine/il carrello esistente nella sessione.

ValidateDeliveryAddressRequest

Una richiesta di convalida di un indirizzo di consegna raccolto durante la sessione.

Rappresentazione JSON
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Campi
deliveryAddress

object (DeliveryAddress)

Obbligatorio. L'indirizzo di consegna da convalidare.

OrderStatusRequest

Questo tipo non ha campi.

Una richiesta per ottenere lo stato dell'ordine.

UpdatedOrderState

Evento restituito dall'agente che rappresenta un aggiornamento dello stato dell'ordine.

Rappresentazione JSON
{
  "order": {
    object (Order)
  },
  "changed": boolean
}
Campi
order

object (Order)

Lo stato aggiornato dell'ordine associato a questa sessione.

changed

boolean

Solo output. Se lo stato dell'ordine presenta aggiornamenti.

AgentText

La risposta di testo dell'agente.

Rappresentazione JSON
{
  "text": string
}
Campi
text

string

La risposta di testo dell'agente.

SuggestedOptions

Opzioni da suggerire al cliente.

Rappresentazione 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.
}
Campi
suggestedModifierGroups

object (SuggestedModifierGroups)

Un gruppo di modificatori suggeriti.

Campo unione suggested_options. Le opzioni suggerite. suggested_options può essere solo uno dei seguenti tipi:
suggestedItems

object (SuggestedItems)

Un elenco di articoli da suggerire al cliente.

suggestedModifiers

object (SuggestedModifiers)

Un elenco di modificatori da suggerire al cliente.

SuggestedItems

Un elenco di articoli da suggerire al cliente.

Rappresentazione JSON
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
Campi
items[]

object (SuggestedItem)

Gli articoli da suggerire al cliente.

SuggestedItem

Un articolo da suggerire al cliente.

Rappresentazione JSON
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
Campi
itemId

string

ID dell'elemento nel menu.

displayName

string

Nome leggibile di questo elemento da mostrare nelle interfacce utente.

image

object (Image)

Immagine da visualizzare per questo elemento nell'interfaccia utente.

basePrice

object (Money)

Il prezzo base dell'articolo. Questo valore potrebbe essere influenzato dai modificatori selezionati. Questo è il prezzo per unità dell'articolo.

integrationAttributes

object (ItemIntegrationAttributes)

Metadati associati a questa entità utilizzati per le integrazioni downstream.

SuggestedModifiers

Un elenco di modificatori da suggerire al cliente.

Rappresentazione JSON
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
Campi
modifiers[]

object (SuggestedModifier)

I modificatori da suggerire al cliente.

parentUid

string

L'identificatore univoco dell'elemento/modificatore principale a cui applicare i modificatori.

SuggestedModifier

Un modificatore da suggerire al cliente.

Rappresentazione JSON
{
  "modifierId": string,
  "modifierGroupId": string,
  "modifierGroupDisplayName": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
Campi
modifierId

string

ID del modificatore nel menu.

modifierGroupId

string

ID del gruppo di modificatori a cui deve essere aggiunto questo modificatore se il suggerimento viene accettato.

modifierGroupDisplayName

string

Nome visualizzato del gruppo di modificatori a cui appartiene questo modificatore.

displayName

string

Nome leggibile di questo elemento da mostrare nelle interfacce utente.

image

object (Image)

Immagine da visualizzare per questo elemento nell'interfaccia utente.

priceAdjustment

object (Money)

L'aggiustamento del prezzo associato a questo modificatore, se presente. Questo è il prezzo per unità del modificatore.

integrationAttributes

object (ModifierIntegrationAttributes)

Metadati associati a questa entità utilizzati per le integrazioni downstream.

alreadyIncluded

boolean

Indica se questo modificatore è già incluso nell'ordine.

SuggestedModifierGroups

Un elenco di gruppi di modificatori da suggerire al cliente.

Rappresentazione JSON
{
  "modifierGroups": [
    {
      object (SuggestedModGroup)
    }
  ]
}
Campi
modifierGroups[]

object (SuggestedModGroup)

I gruppi di modificatori da suggerire al cliente.

SuggestedModGroup

Un gruppo di modificatori da suggerire al cliente.

Rappresentazione JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "maxSelectionCount": integer,
  "minSelectionCount": integer,
  "maxSelectionCountPerModifier": integer
}
Campi
modifierGroupId

string

ID del gruppo di modificatori nel menu.

displayName

string

Il nome visualizzato del gruppo di modificatori.

modifiers[]

object (SuggestedModifier)

I modificatori di questo gruppo.

maxSelectionCount

integer

Il numero massimo di modificatori che è possibile selezionare da questo gruppo.

minSelectionCount

integer

Il numero minimo di modificatori che devono essere selezionati da questo gruppo.

maxSelectionCountPerModifier

integer

Limita il numero di volte in cui ogni modificatore può essere applicato all'interno di questo gruppo.

SentimentMeasurement

Il punteggio del sentiment in tempo reale misurato per questo turno.

Rappresentazione JSON
{
  "score": number,
  "magnitude": number
}
Campi
score

number

Facoltativo. Punteggio del sentiment compreso tra -1,0 (sentiment negativo) e 1,0 (sentiment positivo).

magnitude

number

Facoltativo. Magnitudo del sentiment, indipendentemente dal punteggio.

TurnCompleted

Questo tipo non ha campi.

Indica che l'agente AI Food ha rilevato la fine del turno di conversazione corrente e non fornirà ulteriori output per questo turno.

EndSession

Indica che l'agente ha terminato la sessione, a causa del completamento riuscito (ad es. l'utente dice "Arrivederci!") ) o un'escalation all'agente.

Rappresentazione JSON
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
Campi
type

enum (EndType)

Il tipo di evento di fine sessione.

reason

string

Il motivo della fine della sessione.

posResponse

string

Facoltativo. La risposta del POS al check-in dell'ordine (facoltativo). Si tratta di un payload di stringa opaco che rappresenta lo stato della transazione POS.

agentResponse

string

Facoltativo. Il messaggio di risposta finale dell'agente da pronunciare/mostrare all'utente (facoltativo).

storeSchedule

object (Schedule)

Facoltativo. La programmazione del negozio. Questo valore viene impostato solo quando il tipo di fine è STORE_CLOSED.

EndType

Tipo di evento di fine sessione.

Enum
END_TYPE_UNSPECIFIED Il tipo di fine non è specificato.
DRIVE_OFF Il cliente è andato via.
AGENT_ESCALATION L'agente ha assegnato la sessione a un agente umano.
CREW_INTERJECTION Un membro della troupe è intervenuto nella sessione.
ORDER_COMPLETED L'ordine è stato completato correttamente e non sono necessarie ulteriori azioni.
PAYMENT_FLOW_SUCCESS Il flusso di pagamento è andato a buon fine e non sono necessarie ulteriori azioni.
PAYMENT_FLOW_FAILURE Il flusso di pagamento non è andato a buon fine.
CLIENT_ESCALATION Il cliente ha assegnato la sessione a un agente umano.
CALLER_HANGUP Il cliente ha riagganciato la chiamata prima del tempo.
REQUESTED_CHECKOUT Il cliente ha richiesto di pagare.
REQUESTED_ORDER_STATUS Il cliente ha chiesto informazioni sullo stato dell'ordine.
STORE_CLOSED Il negozio è chiuso.

RecommendedOrders

Un elenco di ordini consigliati dall'agente all'utente.

Rappresentazione JSON
{
  "recommendedOrders": [
    {
      object (RecommendedOrder)
    }
  ]
}
Campi
recommendedOrders[]

object (RecommendedOrder)

Gli ordini consigliati da mostrare all'utente.

RecommendedOrder

Un ordine consigliato dall'agente all'utente.

Rappresentazione JSON
{
  "order": {
    object (Order)
  }
}
Campi
order

object (Order)

L'ordine consigliato da mostrare all'utente.