- Richiesta HTTP
- Parametri di 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 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 |
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 la cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput. |
config.daypartId |
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 |
Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente. |
config.orderType |
Facoltativo. Deprecato: utilizza invece 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 feature gate per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione. |
config.initialUtterance |
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 |
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 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 |
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: |
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 |
L'input di testo del client. |
audioInput |
L'input audio del client. |
eventInput |
L'input dell'evento dal client. |
clientExecutionResult |
Il risultato di una richiesta di esecuzione del client. |
blobInput |
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 ( |
| 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
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 |
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 |
Obbligatorio. Dati audio dei clienti. Una stringa con codifica in base64. |
crewAudio |
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 |
| Campi | |
|---|---|
Campo unione event. ID successivo: 10 L'evento da attivare. event può essere solo uno dei seguenti tipi: |
|
driveOffEvent |
L'evento di allontanamento. |
crewInterjectionEvent |
L'evento di interiezione della crew. |
updateOrderStateEvent |
Un aggiornamento lato client dello stato dell'ordine. |
clientEscalationEvent |
Un evento di escalation lato client. |
customizedInputEvent |
Un evento di input personalizzato. |
callerHangupEvent |
Facoltativo. Un evento di riaggancio del chiamante. |
posErrorInput |
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 |
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 |
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 ( |
| Campi | |
|---|---|
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 |
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 |
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[] |
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[] |
Facoltativo. UID univoci degli elementi generati dall'agente AI Ordinazione di cibo che ha causato l'errore. Corrisponde a |
affectedExternalIds[] |
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 |
metadata |
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 |
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 è stato generato questo 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 del recupero 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. Se l'ordine è stato inviato correttamente. |
estimatedReadyDuration |
Facoltativo. La durata stimata prima che l'ordine sia 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 del recupero 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. 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 ( |
| 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 la cancellazione eco per la sessione. Se abilitato, il client deve fornire customerAudio e crewAudio in AudioInput. |
daypartId |
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 |
Facoltativo. Le informazioni personali dell'utente finale condivise con l'agente. |
orderType |
Facoltativo. Deprecato: utilizza invece 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 feature gate per la sessione. Viene utilizzato per attivare o disattivare le funzionalità per la sessione. |
initialUtterance |
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 |
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 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 |
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: |
UserInfo
Informazioni personali dell'utente finale condivise con l'agente Food AI.
| 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 di assicurarsi 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. Ritirato: utilizza invece 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 deliveryAddress della stringa esistente. |
PastOrder
L'ordine precedente dell'utente.
| Rappresentazione JSON |
|---|
{
"order": {
object ( |
| Campi | |
|---|---|
order |
Obbligatorio. L'ordine originale di Food AI. |
LoyaltyInfo
Rappresenta le informazioni sulla fedeltà di un cliente.
| Rappresentazione JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Campi | |
|---|---|
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 |
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 |
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 |
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 |
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 il logging, 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 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 |
| 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 dello 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 |
Messaggio di svolta completata. |
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:
|
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 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 |
| 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 per 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 di finalizzazione dell'ordine. |
submitOrderRequest |
Una richiesta di invio dell'ordine. |
orderPricesRequest |
Una richiesta per ottenere i prezzi degli ordini. |
validateDeliveryAddressRequest |
Una richiesta di convalida dell'indirizzo di consegna. |
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 ( |
| Campi | |
|---|---|
paymentInfo |
Obbligatorio. I dati di pagamento dell'ordine. |
loyaltyInfo |
Facoltativo. La fedeltà consumata per l'ordine. |
tipAmount |
Facoltativo. L'importo della mancia per l'ordine. |
OrderPricesRequest
Una richiesta per ottenere i prezzi degli ordini.
| 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 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 ( |
| Campi | |
|---|---|
order |
Lo stato aggiornato dell'ordine associato a questa sessione. |
changed |
Solo output. Se lo stato dell'ordine presenta aggiornamenti. |
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 di questo elemento da mostrare nelle interfacce utente. |
image |
Immagine da visualizzare per questo elemento nell'interfaccia utente. |
basePrice |
Il prezzo base dell'articolo. Questo valore potrebbe essere influenzato dai modificatori selezionati. Questo è 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 |
ID del modificatore nel menu. |
modifierGroupId |
ID del gruppo di modificatori a cui deve essere aggiunto questo modificatore se il suggerimento viene accettato. |
modifierGroupDisplayName |
Nome visualizzato del gruppo di modificatori a cui appartiene questo modificatore. |
displayName |
Nome leggibile di questo elemento da mostrare nelle interfacce utente. |
image |
Immagine da visualizzare per questo elemento nell'interfaccia utente. |
priceAdjustment |
L'aggiustamento del prezzo associato a questo modificatore, se presente. Questo è 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 di questo gruppo. |
maxSelectionCount |
Il numero massimo di modificatori che è possibile selezionare 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. 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 ( |
| 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). Si tratta di un payload di stringa opaco che rappresenta lo stato della transazione POS. |
agentResponse |
Facoltativo. Il messaggio di risposta finale dell'agente da pronunciare/mostrare all'utente (facoltativo). |
storeSchedule |
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 ( |
| 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. |