- Richiesta HTTP
- Parametri del percorso
- Corpo della richiesta
- Corpo della risposta
- Ambiti di autorizzazione
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CustomizedInputEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- SubmitOrderResponse
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- Config
- UserInfo
- PastOrder
- LoyaltyInfo
- OrderType
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
- RecommendedOrders
- RecommendedOrder
Esegue una logica di singolo turno 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 del percorso
| Parametri | |
|---|---|
config.session |
Obbligatorio. La sessione per l'ordine. Formato: |
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 ( |
| Campi | |
|---|---|
config.store |
Obbligatorio. Il negozio per cui viene effettuato l'ordine. Formato: |
config.laneId |
Facoltativo. L'ID di una corsia drive-through specifica. |
config.enableEchoCancellation |
Facoltativo. Indica se attivare cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput. |
config.daypartId |
Facoltativo. La parte della giornata in cui viene consumato il pasto, ad esempio colazione, pranzo, cena e così via. Questo valore viene utilizzato per determinare il menu da utilizzare per l'ordine. |
config.userInfo |
Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente. |
config.orderType |
Facoltativo. Deprecato: utilizza initialOrder.fulfillment.fulfillment_type. Il tipo di ordine da effettuare. |
config.initialOrder |
Facoltativo. L'ordine iniziale prima di avviare la sessione dell'agente. Se fornito, l'agente lo utilizzerà come stato iniziale dell'ordine. |
config.featureGate |
Facoltativo. I gate di funzionalità per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione. |
config.initialUtterance |
Facoltativo. L'espressione iniziale del cliente per avviare la conversazione. Se fornito, l'agente lo utilizzerà come prima espressione dell'utente e non inizierà con un messaggio di saluto. |
config.clientAppInfo |
Facoltativo. Le informazioni sull'applicazione client e sull'ambiente del dispositivo. |
config.mode |
Facoltativo. La modalità della sessione. |
config.channelType |
Facoltativo. Il tipo di canale utilizzato per la comunicazione con l'agente. |
config.enableListenOnlyDualChannel |
Facoltativo. Indica se attivare il doppio canale di ascolto per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput e CES eseguirà EAC e la somma sul server di elaborazione dei contenuti multimediali. |
config.testSessionStartTime |
Facoltativo. L'ora di inizio della sessione, utilizzata a scopo 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: |
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 |
Il testo inserito dal cliente. |
audioInput |
L'ingresso audio dal client. |
eventInput |
L'input dell'evento dal client. |
clientExecutionResult |
Il risultato di una richiesta di esecuzione del client. |
blobInput |
Input di dati binari generici. Mirror http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Corpo della risposta
Messaggio di risposta per FoodOrderingService.ProcessOrder. Contiene funzionalmente i campi di BidiProcessOrderResponse meno quelli specifici per lo streaming.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
| Rappresentazione JSON |
|---|
{
"responses": [
{
object ( |
| Campi | |
|---|---|
responses[] |
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
Il testo inserito dal cliente. In alternativa all'audio, il cliente può inviare all'agente un input di testo. Un client deve utilizzare l'input di testo o audio, non entrambi.
| Rappresentazione JSON |
|---|
{ "text": string } |
| Campi | |
|---|---|
text |
Obbligatorio. L'espressione di testo del cliente. |
AudioInput
L'ingresso audio dal client. L'audio di input può avere più canali per il cliente, la troupe e così via. Tutti 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. Il numero totale di byte di tutti i canali deve essere inferiore a 25.600 byte.
| Rappresentazione JSON |
|---|
{ "customerAudio": string, "crewAudio": string } |
| Campi | |
|---|---|
customerAudio |
Obbligatorio. Dati audio del cliente. Una stringa con codifica in base64. |
crewAudio |
Facoltativo. Dati audio dell'equipaggio. Si tratta di un canale audio facoltativo per il membro dell'equipaggio nella stessa corsia del cliente, che funge da audio di riferimento per la cancellazione eco dell'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 |
| Campi | |
|---|---|
Campo unione event. ID successivo: 10 L'evento da attivare. event può essere solo uno dei seguenti tipi: |
|
driveOffEvent |
L'evento di partenza. |
crewInterjectionEvent |
L'evento di interruzione dell'equipaggio. |
updateOrderStateEvent |
Un aggiornamento lato client dello stato dell'ordine. |
clientEscalationEvent |
Un evento di riassegnazione lato client. |
customizedInputEvent |
Un evento di input personalizzato. |
callerHangupEvent |
Facoltativo. Un evento di interruzione della chiamata. |
posErrorInput |
Facoltativo. Un evento di errore POS. |
DriveOffEvent
L'evento di partenza. Indica che il cliente è partito. La sessione verrà chiusa dopo questo evento.
| Rappresentazione JSON |
|---|
{ "reason": string } |
| Campi | |
|---|---|
reason |
Facoltativo. Il motivo della partenza, ad esempio "ordine completato", "partenza imprevista". |
CrewInterjectionEvent
L'evento di interruzione dell'equipaggio. Indica che un membro dell'equipaggio è intervenuto nella sessione. La sessione verrà chiusa dopo questo evento.
| Rappresentazione JSON |
|---|
{ "mode": string } |
| Campi | |
|---|---|
mode |
Facoltativo. La modalità in cui è intervenuto il membro dell'equipaggio, ad esempio "cuffie", "pos". |
OrderStateUpdateEvent
La richiesta di aggiornamento dello stato dell'ordine. Questo evento deve essere inviato quando l'ordine viene aggiornato lato client, ad esempio quando un articolo viene aggiunto o rimosso tramite un'interfaccia touch tradizionale.
| Rappresentazione JSON |
|---|
{
"order": {
object ( |
| Campi | |
|---|---|
order |
Obbligatorio. Lo stato aggiornato dell'ordine associato a questa sessione. |
ClientEscalationEvent
Indica che il cliente sta riassegnando la sessione a un agente umano.
| Rappresentazione JSON |
|---|
{ "reason": string } |
| Campi | |
|---|---|
reason |
Facoltativo. Il motivo del riassegnamento 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, non viene eseguita alcuna operazione. Contatta l'assistenza clienti per attivare questa funzionalità.
| Rappresentazione JSON |
|---|
{ "input": { object } } |
| Campi | |
|---|---|
input |
Obbligatorio. Input del cliente all'agente. |
CallerHangupEvent
Questo tipo non contiene campi.
Indica che il cliente ha interrotto la chiamata in anticipo (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[] |
Facoltativo. Un elenco di descrizioni degli errori leggibili. Possono essere forniti più messaggi di errore se si verificano più problemi contemporaneamente (ad es. più articoli sono esauriti) o per fornire un'analisi più dettagliata di un singolo errore complesso. Questi messaggi possono essere utilizzati dall'agente per informare il cliente o per scopi di registrazione. |
affectedItemUids[] |
Facoltativo. UID univoci degli articoli generati dall'agente AI Ordinazione di cibo che ha causato l'errore. Corrisponde a |
affectedExternalIds[] |
Facoltativo. Elenco degli 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 |
metadata |
Facoltativo. Metadati in formato libero per il debug o la segnalazione specifica del brand. Può essere utilizzato per trasmettere codici o categorie di errore specifici del brand (ad es. {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). Un oggetto contenente un elenco di coppie |
ClientExecutionResult
Il risultato di una richiesta di esecuzione del client.
| Rappresentazione JSON |
|---|
{ "executionId": string, // Union field |
| Campi | |
|---|---|
executionId |
Obbligatorio. L'ID della richiesta di esecuzione per cui questo è un risultato. |
Campo unione response. Il risultato specifico dell'esecuzione. response può essere solo uno dei seguenti tipi: |
|
finalizeOrderResponse |
Il risultato della finalizzazione dell'ordine. |
submitOrderResponse |
Il risultato dell'invio dell'ordine. |
orderPricesResponse |
Il risultato dell'ottenimento dei prezzi dell'ordine. |
validateDeliveryAddressResponse |
Il risultato della convalida dell'indirizzo di consegna. |
orderStatusResponse |
Il risultato dell'ottenimento dello stato dell'ordine. |
FinalizeOrderResponse
Il risultato della finalizzazione dell'ordine.
| Rappresentazione JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Campi | |
|---|---|
paymentFlowEnabled |
Facoltativo. Indica se attivare il flusso di gestione dei pagamenti nell'agente. |
paymentInfo |
Facoltativo. I dati di pagamento del cliente. Nessuna operazione se paymentFlowEnabled è false. |
totalAmountDue |
Facoltativo. L'importo totale dovuto per l'ordine. |
orderPriceInfo |
Facoltativo. Le informazioni dettagliate sul prezzo dell'ordine. |
SubmitOrderResponse
Il risultato dell'invio dell'ordine.
| Rappresentazione JSON |
|---|
{ "success": boolean, "estimatedReadyDuration": string } |
| Campi | |
|---|---|
success |
Obbligatorio. Indica se l'ordine è stato inviato correttamente. |
estimatedReadyDuration |
Facoltativo. La durata stimata fino a quando l'ordine non sarà pronto. Una durata in secondi con un massimo di nove cifre frazionarie, che termina con " |
OrderPricesResponse
Il risultato dell'ottenimento dei prezzi dell'ordine.
| Rappresentazione JSON |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Campi | |
|---|---|
success |
Obbligatorio. Indica se i prezzi dell'ordine sono stati recuperati correttamente. |
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 ( |
| Campi | |
|---|---|
success |
Obbligatorio. Indica se la convalida è stata completata senza errori. |
validationStatus |
Obbligatorio. Lo stato di convalida dell'indirizzo di consegna. |
OrderStatusResponse
Il risultato dell'ottenimento dello stato dell'ordine.
| Rappresentazione JSON |
|---|
{ "success": boolean } |
| Campi | |
|---|---|
success |
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 |
Obbligatorio. Il tipo MIME standard IANA dei dati di origine. |
data |
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. Questa operazione deve essere eseguita 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 ( |
| Campi | |
|---|---|
session |
Obbligatorio. La sessione per l'ordine. Formato: |
store |
Obbligatorio. Il negozio per cui viene effettuato l'ordine. Formato: |
laneId |
Facoltativo. L'ID di una corsia drive-through specifica. |
enableEchoCancellation |
Facoltativo. Indica se attivare cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput. |
daypartId |
Facoltativo. La parte della giornata in cui viene consumato il pasto, ad esempio colazione, pranzo, cena e così via. Questo valore viene utilizzato per determinare il menu da utilizzare per l'ordine. |
userInfo |
Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente. |
orderType |
Facoltativo. Deprecato: utilizza initialOrder.fulfillment.fulfillment_type. Il tipo di ordine da effettuare. |
initialOrder |
Facoltativo. L'ordine iniziale prima di avviare la sessione dell'agente. Se fornito, l'agente lo utilizzerà come stato iniziale dell'ordine. |
featureGate |
Facoltativo. I gate di funzionalità per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione. |
initialUtterance |
Facoltativo. L'espressione iniziale del cliente per avviare la conversazione. Se fornito, l'agente lo utilizzerà come prima espressione dell'utente e non inizierà con un messaggio di saluto. |
clientAppInfo |
Facoltativo. Le informazioni sull'applicazione client e sull'ambiente del dispositivo. |
mode |
Facoltativo. La modalità della sessione. |
channelType |
Facoltativo. Il tipo di canale utilizzato per la comunicazione con l'agente. |
enableListenOnlyDualChannel |
Facoltativo. Indica se attivare il doppio canale di ascolto per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput e CES eseguirà EAC e la somma sul server di elaborazione dei contenuti multimediali. |
testSessionStartTime |
Facoltativo. L'ora di inizio della sessione, utilizzata a scopo 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: |
UserInfo
Informazioni personali dell'utente finale condivise con l'agente AI per il cibo.
| Rappresentazione JSON |
|---|
{ "preferredName": string, "paymentInfo": { object ( |
| Campi | |
|---|---|
preferredName |
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 si assicura che sia in linea con la convenzione del brand, ad esempio l'utilizzo del nome o del nome completo. |
paymentInfo |
Facoltativo. I dati di pagamento dell'utente. |
deliveryAddress |
Facoltativo. Deprecato: utilizza savedDeliveryAddress. L'indirizzo di consegna salvato dell'utente. |
pastOrders[] |
Facoltativo. La cronologia degli ordini dell'utente. |
loyaltyInfo |
Facoltativo. Le informazioni sul programma fedeltà dell'utente. |
phoneNumber |
Facoltativo. Il numero di telefono dell'utente. |
userId |
Facoltativo. L'identificatore univoco dell'utente nel sistema del cliente. |
savedDeliveryAddress |
Facoltativo. L'indirizzo di consegna salvato dell'utente. Sostituirà il campo stringa esistente deliveryAddress. |
PastOrder
L'ordine precedente dell'utente.
| Rappresentazione JSON |
|---|
{
"order": {
object ( |
| Campi | |
|---|---|
order |
Obbligatorio. L'ordine originale di Food AI. |
LoyaltyInfo
Rappresenta le informazioni sul programma fedeltà di un cliente.
| Rappresentazione JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Campi | |
|---|---|
loyaltyAmount |
Obbligatorio. L'importo del programma fedeltà. Può trattarsi di un saldo fedeltà o di punti fedeltà consumati. |
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 servizio drive-through. |
ORDER_TYPE_CARRY_OUT |
L'ordine è per l'asporto. |
ORDER_TYPE_DELIVERY |
L'ordine è per la consegna. |
FeatureGate
I gate di funzionalità 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 |
Facoltativo. Solo per il pubblico limitato, se impostato, il motore delle offerte sarà facoltativo nel flusso di pagamento e verrà attivato solo quando gli utenti lo richiedono. |
triggerLoyaltyOnDemand |
Facoltativo. Solo per un pubblico limitato, se impostato, il programma fedeltà sarà facoltativo nel flusso di pagamento e verrà attivato solo quando gli utenti lo richiedono. |
triggerOrderMediaAssistantOnDemand |
Facoltativo. Solo per il pubblico limitato, se impostato, l'assistente per l'ordine dei contenuti multimediali sarà facoltativo e verrà attivato solo quando gli utenti lo richiedono. |
menuResponseEnabled |
Facoltativo. Restituisce i dati del menu al client in BidiProcessOrderResponse, se impostato. |
revampedPaymentFlowEnabled |
Facoltativo. Solo per un pubblico limitato, se impostato, verrà utilizzata una versione rinnovata del flusso di pagamento. |
updatedOrderStateEnabled |
Facoltativo. Se impostato, viene restituito updatedOrderState anziché legacyOrderStateResponse. |
enableOrderStatusRetrieval |
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 la registrazione, l'analisi e il debug.
| Rappresentazione JSON |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| Campi | |
|---|---|
deviceModel |
Facoltativo. Il modello del dispositivo del client (ad es. "iPhone 13", "Pixel 7", "Kiosk v2"). |
osVersion |
Facoltativo. La versione del sistema operativo del client (ad es. "iOS 16.1", "Android 13"). |
sdkVersion |
Facoltativo. La versione dell'SDK client o del software applicativo. |
SessionMode
La modalità della sessione.
| Enum | |
|---|---|
SESSION_MODE_UNSPECIFIED |
La modalità di sessione non è specificata. |
HYBRID |
La sessione supporta sia l'audio che il testo. Questa è l'impostazione predefinita. |
TEXT |
La sessione è solo testuale. |
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 impostate, 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 |
| Campi | |
|---|---|
Campo unione response. La risposta dell'agente. response può essere solo uno dei seguenti tipi: |
|
agentAudio |
La risposta audio dell'agente. |
speechRecognition |
Il risultato del riconoscimento vocale dell'agente. |
legacyOrderStateResponse |
La risposta relativa allo stato dell'ordine precedente per una sessione. |
interruptionSignal |
Segnale di interruzione rilevato dall'input audio. |
agentEvent |
Evento dell'agente. |
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 |
Indica un aggiornamento dello stato dell'ordine. Include lo stato completo dell'ordine. |
agentText |
La risposta di testo dell'agente. |
suggestedOptions |
Opzioni da suggerire al cliente. |
sentimentMeasurement |
Il punteggio del sentiment in tempo reale misurato per questo turno. |
turnCompleted |
Turno del messaggio Completato. |
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 inizierà nuovi turni. Ad esempio, una sessione di 2 turni avrà il seguente aspetto:
|
recommendedOrders |
Gli ordini consigliati dall'agente. |
AgentAudio
La risposta audio dell'agente.
| Rappresentazione JSON |
|---|
{ "agentAudio": string } |
| Campi | |
|---|---|
agentAudio |
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 |
Testo trascritto dall'input audio nella lingua rilevata. |
languageCode |
Il codice lingua della trascrizione. Il codice lingua deve essere nel formato BCP-47, ad esempio "en-US". |
isFinal |
Indica se questa è la trascrizione finale del turno. |
InterruptionSignal
Questo tipo non contiene campi.
Indica che la risposta audio dell'agente è stata interrotta (ad es. dall'interruzione dell'utente finale). Il client deve interrompere immediatamente la riproduzione.
AgentEvent
Evento speciale dell'agente che richiede un'azione da parte del cliente.
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione event. L'evento dell'agente. event può essere solo uno dei seguenti tipi: |
|
restartOrder |
Il cliente chiede di riavviare l'ordine. |
RestartOrder
Il cliente chiede di ricominciare l'ordine.
| Rappresentazione JSON |
|---|
{ "confirmationStep": boolean } |
| Campi | |
|---|---|
confirmationStep |
L'agente chiede al cliente di confermare la richiesta di riavvio. |
ClientExecutionRequest
Una richiesta al lato client di eseguire un comando.
| Rappresentazione JSON |
|---|
{ "executionId": string, // Union field |
| Campi | |
|---|---|
executionId |
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 |
Una richiesta per finalizzare l'ordine. |
submitOrderRequest |
Una richiesta di invio dell'ordine. |
orderPricesRequest |
Una richiesta per ottenere i prezzi dell'ordine. |
validateDeliveryAddressRequest |
Una richiesta di convalida dell'indirizzo di consegna. |
orderStatusRequest |
Una richiesta per ottenere lo stato dell'ordine. |
FinalizeOrderRequest
Questo tipo non contiene campi.
Una richiesta per finalizzare l'ordine. In genere viene inviato dall'agente quando il cliente indica di aver terminato l'ordine e vuole pagare.
SubmitOrderRequest
Una richiesta di invio dell'ordine, con tutti i dati di pagamento richiesti raccolti dal cliente.
| Rappresentazione JSON |
|---|
{ "paymentInfo": { object ( |
| Campi | |
|---|---|
paymentInfo |
Obbligatorio. I dati di pagamento dell'ordine. |
loyaltyInfo |
Facoltativo. I punti fedeltà consumati per l'ordine. |
tipAmount |
Facoltativo. L'importo della mancia per l'ordine. |
OrderPricesRequest
Una richiesta per ottenere i prezzi dell'ordine.
| Rappresentazione JSON |
|---|
{
"order": {
object ( |
| Campi | |
|---|---|
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 ( |
| Campi | |
|---|---|
deliveryAddress |
Obbligatorio. L'indirizzo di consegna da convalidare. |
OrderStatusRequest
Questo tipo non contiene 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 ( |
| Campi | |
|---|---|
order |
Lo stato aggiornato dell'ordine associato a questa sessione. |
changed |
Solo output. Se lo stato dell'ordine è stato aggiornato. |
AgentText
La risposta di testo dell'agente.
| Rappresentazione JSON |
|---|
{ "text": string } |
| Campi | |
|---|---|
text |
La risposta di testo dell'agente. |
SuggestedOptions
Opzioni da suggerire al cliente.
| Rappresentazione JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| Campi | |
|---|---|
suggestedModifierGroups |
Un gruppo di modificatori suggeriti. |
Campo unione suggested_options. Le opzioni suggerite. suggested_options può essere solo uno dei seguenti tipi: |
|
suggestedItems |
Un elenco di articoli da suggerire al cliente. |
suggestedModifiers |
Un elenco di modificatori da suggerire al cliente. |
SuggestedItems
Un elenco di articoli da suggerire al cliente.
| Rappresentazione JSON |
|---|
{
"items": [
{
object ( |
| Campi | |
|---|---|
items[] |
Gli articoli da suggerire al cliente. |
SuggestedItem
Un articolo da suggerire al cliente.
| Rappresentazione JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| Campi | |
|---|---|
itemId |
ID dell'elemento nel menu. |
displayName |
Nome leggibile per questo modello da mostrare nelle interfacce utente. |
image |
Immagine da visualizzare per questo elemento nella UI. |
basePrice |
Il prezzo base dell'articolo. Questo valore potrebbe essere influenzato dai modificatori selezionati. È il prezzo per unità dell'articolo. |
integrationAttributes |
Metadati associati a questa entità utilizzati per le integrazioni downstream. |
SuggestedModifiers
Un elenco di modificatori da suggerire al cliente.
| Rappresentazione JSON |
|---|
{
"modifiers": [
{
object ( |
| Campi | |
|---|---|
modifiers[] |
I modificatori da suggerire al cliente. |
parentUid |
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 ( |
| Campi | |
|---|---|
modifierId |
L'ID del modificatore nel menu. |
modifierGroupId |
ID del gruppo di modificatori a cui deve essere aggiunto questo modificatore se il suggerimento viene accettato. |
modifierGroupDisplayName |
Il nome visualizzato del gruppo di modificatori a cui appartiene questo modificatore. |
displayName |
Nome leggibile per questo modello da mostrare nelle interfacce utente. |
image |
Immagine da visualizzare per questo elemento nella UI. |
priceAdjustment |
L'aggiustamento del prezzo associato a questo modificatore, se presente. È il prezzo per unità del modificatore. |
integrationAttributes |
Metadati associati a questa entità utilizzati per le integrazioni downstream. |
alreadyIncluded |
Indica se questo modificatore è già incluso nell'ordine. |
SuggestedModifierGroups
Un elenco di gruppi di modificatori da suggerire al cliente.
| Rappresentazione JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Campi | |
|---|---|
modifierGroups[] |
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 ( |
| Campi | |
|---|---|
modifierGroupId |
ID del gruppo di modificatori nel menu. |
displayName |
Il nome visualizzato del gruppo di modificatori. |
modifiers[] |
I modificatori in questo gruppo. |
maxSelectionCount |
Il numero massimo di modificatori che possono essere selezionati da questo gruppo. |
minSelectionCount |
Il numero minimo di modificatori che devono essere selezionati da questo gruppo. |
maxSelectionCountPerModifier |
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 |
Facoltativo. Punteggio del sentiment compreso tra -1,0 (sentiment negativo) e 1,0 (sentiment positivo). |
magnitude |
Facoltativo. L'intensità del sentiment, indipendentemente dal punteggio. |
TurnCompleted
Questo tipo non contiene campi.
Indica che l'agente AI per il cibo 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 riassegnazione a un agente.
| Rappresentazione JSON |
|---|
{ "type": enum ( |
| Campi | |
|---|---|
type |
Il tipo di evento di fine sessione. |
reason |
Il motivo della fine della sessione. |
posResponse |
Facoltativo. La risposta del POS al check-in dell'ordine (facoltativo). Questo è un payload di stringa opaca che rappresenta lo stato della transazione POS. |
agentResponse |
Facoltativo. Il messaggio di risposta finale dell'agente da pronunciare/mostrare all'utente (facoltativo). |
storeSchedule |
Facoltativo. Il programma del negozio. È 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 è partito. |
AGENT_ESCALATION |
L'agente ha riassegnato 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 riassegnato la sessione a un agente umano. |
CALLER_HANGUP |
Il cliente ha interrotto la chiamata in anticipo. |
REQUESTED_CHECKOUT |
Il cliente ha richiesto di effettuare il pagamento. |
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 ( |
| Campi | |
|---|---|
recommendedOrders[] |
Gli ordini consigliati da mostrare all'utente. |
RecommendedOrder
Un ordine consigliato dall'agente all'utente.
| Rappresentazione JSON |
|---|
{
"order": {
object ( |
| Campi | |
|---|---|
order |
L'ordine consigliato da mostrare all'utente. |