Method: projects.locations.sessions.processOrder

Führt eine Logik für eine einzelne Runde aus, um die Nutzereingabe zu verarbeiten und das Ergebnis zurückzugeben.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Pfadparameter

Parameter
config.session

string

Erforderlich. Die Sitzung für die Bestellung. Format: projects/{project}/locations/{location}/sessions/{session}

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "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.
}
Felder
config.store

string

Erforderlich. Das Geschäft, für das die Bestellung aufgegeben wird. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

Optional. Die ID einer bestimmten Drive-In-Spur.

config.enableEchoCancellation

boolean

Optional. Gibt an, ob die Echounterdrückung für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client die customerAudio- und crewAudio-Daten im AudioInput bereitstellen.

config.daypartId

string

Optional. Tageszeit der Speisekarte, z. B. Frühstück, Mittagessen, Abendessen usw. Damit wird die Speisekarte für die Bestellung bestimmt.

config.userInfo

object (UserInfo)

Optional. Die personenbezogenen Daten des Endnutzers, die an den KI-Agenten weitergegeben wurden.

config.orderType
(deprecated)

enum (OrderType)

Optional. Verworfen: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Die Art der Bestellung, die aufgegeben werden soll.

config.initialOrder

object (Order)

Optional. Die ursprüngliche Bestellung vor dem Start der KI-Agentensitzung. Falls angegeben, verwendet der KI-Agent diesen als anfänglichen Bestellstatus.

config.featureGate

object (FeatureGate)

Optional. Die Feature Gates für die Sitzung. Damit werden Funktionen für die Sitzung aktiviert oder deaktiviert.

config.initialUtterance

string

Optional. Die erste Äußerung des Clients, um die Unterhaltung zu starten. Wenn angegeben, verwendet der Agent dies als erste Nutzerinteraktion und beginnt nicht mit einer Begrüßungsnachricht.

config.clientAppInfo

object (ClientAppInfo)

Optional. Die Informationen zur Clientanwendung und Geräteumgebung.

config.mode

enum (SessionMode)

Optional. Der Modus der Sitzung.

config.channelType

enum (ChannelType)

Optional. Der Kanaltyp, der für die Kommunikation mit dem Agenten verwendet wird.

config.enableListenOnlyDualChannel

boolean

Optional. Gibt an, ob der Dual-Channel-Modus nur für die Wiedergabe für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client „customerAudio“ und „crewAudio“ im AudioInput bereitstellen. Die CES führt dann die Echokompensation und Summierung auf dem Medienverarbeitungsserver durch.

config.testSessionStartTime

string (Timestamp format)

Optional. Der Beginn der Sitzung, der zu Test- oder Bewertungszwecken verwendet wird.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

turnType

enum (TurnType)

Optional. Expliziter Indikator für die Position der Anfrage im Lebenszyklus der Sitzung. Ermöglicht Clients, deterministisch zu steuern, wann Variablen für die Ersteinrichtung der Sitzung eingefügt werden.

Union-Feld input. Die Eingabe des Clients. Für input ist nur einer der folgenden Werte zulässig:
textInput

object (TextInput)

Die Texteingabe des Clients.

audioInput

object (AudioInput)

Die Audioeingabe vom Client.

eventInput

object (EventInput)

Die Ereigniseingabe vom Client.

clientExecutionResult

object (ClientExecutionResult)

Das Ergebnis einer Client-Ausführungsanfrage.

blobInput

object (Blob)

Generische Binärdateneingabe. Spiegelt http://google3/google/cloud/ces/v1main/session_service.proto?l=720 wider

Antworttext

Antwortnachricht für FoodOrderingService.ProcessOrder. Enthält funktional Felder aus BidiProcessOrderResponse ohne streamingspezifische Felder.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "responses": [
    {
      object (BidiProcessOrderResponse)
    }
  ]
}
Felder
responses[]

object (BidiProcessOrderResponse)

Nur Ausgabe. Liste der Antworten des KI-Agenten auf die Anfrage, in der richtigen Reihenfolge zurückgegeben.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

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

Weitere Informationen finden Sie unter Authentication Overview.

TextInput

Die Texteingabe des Clients. Anstelle von Audio kann der Client alternativ Texteingaben an den Agenten senden. Ein Client muss entweder Text- oder Audioeingaben verwenden, nicht beides.

JSON-Darstellung
{
  "text": string
}
Felder
text

string

Erforderlich. Die Textäußerung des Clients.

AudioInput

Die Audioeingabe vom Client. Die Audioeingabe kann mehrere Kanäle für den Kunden, die Crew usw. enthalten. Diese sollten alle synchronisiert und im in der Konfiguration angegebenen Format sein. Audio-Header sollten nicht enthalten sein. Standardmäßig sollte das Audio die 16-Bit-Codierung mit linearer Pulscodemodulation (PCM) und eine Abtastrate von 16.000 Hz verwenden. Die Gesamtzahl der Byte aus allen Kanälen muss kleiner als 25.600 Byte sein.

JSON-Darstellung
{
  "customerAudio": string,
  "crewAudio": string
}
Felder
customerAudio

string (bytes format)

Erforderlich. Kundenaudiodaten.

Ein base64-codierter String.

crewAudio

string (bytes format)

Optional. Crew-Audiodaten. Dies ist ein optionaler Audiokanal für das Crewmitglied in derselben Spur wie der Kunde. Er dient als Referenz-Audio für die Echounterdrückung.

Ein base64-codierter String.

EventInput

Die Ereigniseingabe vom Client. Damit werden bestimmte Ereignisse im Agent ausgelöst.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld event. Nächste ID: 10 Das Ereignis, das ausgelöst werden soll. Für event ist nur einer der folgenden Werte zulässig:
driveOffEvent

object (DriveOffEvent)

Das Ereignis „Wegfahren“.

crewInterjectionEvent

object (CrewInterjectionEvent)

Das Ereignis für den Einwurf der Crew.

updateOrderStateEvent

object (OrderStateUpdateEvent)

Eine clientseitige Aktualisierung des Bestellstatus.

clientEscalationEvent

object (ClientEscalationEvent)

Ein clientseitiges Eskalationsereignis.

customizedInputEvent

object (CustomizedInputEvent)

Ein benutzerdefiniertes Eingabeereignis.

callerHangupEvent

object (CallerHangupEvent)

Optional. Ein Ereignis, bei dem der Anrufer auflegt.

posErrorInput

object (PosErrorEvent)

Optional. Ein POS-Fehlerereignis.

DriveOffEvent

Das Ereignis „Wegfahren“. Dies zeigt an, dass der Kunde weggefahren ist. Die Sitzung wird nach diesem Ereignis geschlossen.

JSON-Darstellung
{
  "reason": string
}
Felder
reason

string

Optional. Der Grund für die Abfahrt, z.B. „Bestellung abgeschlossen“, „unerwartete Abfahrt“.

CrewInterjectionEvent

Das Ereignis für den Einwurf der Crew. Das bedeutet, dass ein Crewmitglied in die Sitzung eingegriffen hat. Die Sitzung wird nach diesem Ereignis geschlossen.

JSON-Darstellung
{
  "mode": string
}
Felder
mode

string

Optional. Der Modus, in dem das Crewmitglied die Eingabe gemacht hat, z.B. „headset“, „pos“.

OrderStateUpdateEvent

Die Anfrage zum Aktualisieren des Bestellstatus. Dieses Ereignis sollte gesendet werden, wenn die Bestellung auf der Clientseite aktualisiert wird, z.B. wenn ein Artikel über eine herkömmliche Touch-Oberfläche hinzugefügt oder entfernt wird.

JSON-Darstellung
{
  "order": {
    object (Order)
  }
}
Felder
order

object (Order)

Erforderlich. Der aktualisierte Status der Bestellung, die mit dieser Sitzung verknüpft ist.

ClientEscalationEvent

Gibt an, dass der Client die Sitzung an einen Kundenservicemitarbeiter eskaliert.

JSON-Darstellung
{
  "reason": string
}
Felder
reason

string

Optional. Der Grund für die Eskalation durch den Kunden, z.B. „payment-declined“, „pos-error“, „integration-error“ usw.

CustomizedInputEvent

Über dieses Feld kann ein Food AI-Client ein benutzerdefiniertes Ereignis an den Agenten senden. Standardmäßig ist dies ein No-Op. Bitte wenden Sie sich an den Kundensupport, um diese Funktion zu aktivieren.

JSON-Darstellung
{
  "input": {
    object
  }
}
Felder
input

object (Struct format)

Erforderlich. Eingabe des Clients an den KI-Agenten.

CallerHangupEvent

Dieser Typ hat keine Felder.

Gibt an, dass der Kunde den Anruf vorzeitig beendet hat (z.B. aufgrund von KI-Abneigung).

PosErrorEvent

Kassensystemspezifische Fehler.

JSON-Darstellung
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
Felder
errorMessages[]

string

Optional. Eine Liste mit menschenlesbaren Beschreibungen der Fehler. Es können mehrere Fehlermeldungen angegeben werden, wenn mehrere Probleme gleichzeitig auftreten (z.B. wenn mehrere Artikel nicht auf Lager sind) oder um eine detailliertere Aufschlüsselung eines einzelnen komplexen Fehlers zu ermöglichen. Diese Nachrichten können vom Agenten verwendet werden, um den Kunden zu informieren, oder für Logging-Zwecke.

affectedItemUids[]

string

Optional. Eindeutige Artikel-UIDs, die vom Food Ordering KI-Agent generiert wurden und den Fehler verursacht haben. Entspricht UpdatedOrderState.OrderItem.uid.

affectedExternalIds[]

string

Optional. Liste der externen IDs (aus der Speisekarte), die den Fehler verursacht haben. Sollte den tatsächlichen Vertretern im POS entsprechen, die sich normalerweise unter den Integrationsattributen in menu.proto befinden (z.B. in ItemIntegrationAttributes oder ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

Optional. Freiform-Metadaten für die Fehlerbehebung oder markenspezifische Signalisierung. Kann verwendet werden, um markenspezifische Fehlercodes oder Kategorien zu übergeben (z.B. {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}).

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientExecutionResult

Das Ergebnis einer Client-Ausführungsanfrage.

JSON-Darstellung
{
  "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.
}
Felder
executionId

string

Erforderlich. Die ID der Ausführungsanfrage, für die dies ein Ergebnis ist.

Union-Feld response. Das spezifische Ergebnis der Ausführung. Für response ist nur einer der folgenden Werte zulässig:
finalizeOrderResponse

object (FinalizeOrderResponse)

Das Ergebnis des Abschlusses der Bestellung.

submitOrderResponse

object (SubmitOrderResponse)

Das Ergebnis der Bestellung.

orderPricesResponse

object (OrderPricesResponse)

Das Ergebnis des Abrufs der Bestellpreise.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

Das Ergebnis der Validierung der Lieferadresse.

orderStatusResponse

object (OrderStatusResponse)

Das Ergebnis des Abrufs des Bestellstatus.

FinalizeOrderResponse

Das Ergebnis des Abschlusses der Bestellung.

JSON-Darstellung
{
  "paymentFlowEnabled": boolean,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Felder
paymentFlowEnabled

boolean

Optional. Gibt an, ob der Ablauf für die Zahlungsabwicklung im Agenten aktiviert werden soll.

paymentInfo

object (PaymentInfo)

Optional. Die Zahlungsinformationen des Kunden. Keine Aktion, wenn „paymentFlowEnabled“ auf „false“ gesetzt ist.

totalAmountDue

object (Money)

Optional. Der fällige Gesamtbetrag für die Bestellung.

orderPriceInfo

object (OrderPriceInfo)

Optional. Die detaillierten Preisinformationen der Bestellung.

SubmitOrderResponse

Das Ergebnis der Bestellung.

JSON-Darstellung
{
  "success": boolean,
  "estimatedReadyDuration": string
}
Felder
success

boolean

Erforderlich. Gibt an, ob die Bestellung erfolgreich aufgegeben wurde.

estimatedReadyDuration

string (Duration format)

Optional. Die geschätzte Dauer, bis die Bestellung fertig ist.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „s“. Beispiel: "3.5s".

OrderPricesResponse

Das Ergebnis des Abrufs der Bestellpreise.

JSON-Darstellung
{
  "success": boolean,
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Felder
success

boolean

Erforderlich. Gibt an, ob die Bestellpreise abgerufen wurden.

orderPriceInfo

object (OrderPriceInfo)

Optional. Gesamtpreis der Bestellung nach Abzug aller Rabatte, Gebühren, Steuern usw.

ValidateDeliveryAddressResponse

Das Ergebnis der Validierung einer Lieferadresse.

JSON-Darstellung
{
  "success": boolean,
  "validationStatus": enum (ValidationStatus)
}
Felder
success

boolean

Erforderlich. Gibt an, ob die Validierung ohne Fehler abgeschlossen wurde.

validationStatus

enum (ValidationStatus)

Erforderlich. Der Validierungsstatus der Lieferadresse.

OrderStatusResponse

Das Ergebnis des Abrufs des Bestellstatus.

JSON-Darstellung
{
  "success": boolean
}
Felder
success

boolean

Erforderlich. Gibt an, ob der Bestellstatus abgerufen werden konnte.

Blob

Stellt eine Blob-Eingabe oder -Ausgabe in der Unterhaltung dar.

JSON-Darstellung
{
  "mimeType": string,
  "data": string
}
Felder
mimeType

string

Erforderlich. Der IANA-Standard-MIME-Typ der Quelldaten.

data

string (bytes format)

Erforderlich. Rohbyte des Blobs.

Ein base64-codierter String.

Konfiguration

Die Konfiguration für eine Sitzung und die Eigenschaften für Food Ordering. Zu Beginn jeder Verbindung muss der Client zuerst eine Konfigurationsnachricht senden. Dies muss vor allen anderen Anfragen zum Initiieren der Sitzung geschehen. Wenn die Verbindung zum Client getrennt wird, sollte er dieselbe Konfigurationsnachricht wiederholen, wenn er die Verbindung wiederherstellt.

JSON-Darstellung
{
  "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
}
Felder
session

string

Erforderlich. Die Sitzung für die Bestellung. Format: projects/{project}/locations/{location}/sessions/{session}

store

string

Erforderlich. Das Geschäft, für das die Bestellung aufgegeben wird. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

Optional. Die ID einer bestimmten Drive-In-Spur.

enableEchoCancellation

boolean

Optional. Gibt an, ob die Echounterdrückung für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client die customerAudio- und crewAudio-Daten im AudioInput bereitstellen.

daypartId

string

Optional. Tageszeit der Speisekarte, z. B. Frühstück, Mittagessen, Abendessen usw. Damit wird die Speisekarte für die Bestellung bestimmt.

userInfo

object (UserInfo)

Optional. Die personenbezogenen Daten des Endnutzers, die an den KI-Agenten weitergegeben wurden.

orderType
(deprecated)

enum (OrderType)

Optional. Verworfen: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Die Art der Bestellung, die aufgegeben werden soll.

initialOrder

object (Order)

Optional. Die ursprüngliche Bestellung vor dem Start der KI-Agentensitzung. Falls angegeben, verwendet der KI-Agent diesen als anfänglichen Bestellstatus.

featureGate

object (FeatureGate)

Optional. Die Feature Gates für die Sitzung. Damit werden Funktionen für die Sitzung aktiviert oder deaktiviert.

initialUtterance

string

Optional. Die erste Äußerung des Clients, um die Unterhaltung zu starten. Wenn angegeben, verwendet der Agent dies als erste Nutzerinteraktion und beginnt nicht mit einer Begrüßungsnachricht.

clientAppInfo

object (ClientAppInfo)

Optional. Die Informationen zur Clientanwendung und Geräteumgebung.

mode

enum (SessionMode)

Optional. Der Modus der Sitzung.

channelType

enum (ChannelType)

Optional. Der Kanaltyp, der für die Kommunikation mit dem Agenten verwendet wird.

enableListenOnlyDualChannel

boolean

Optional. Gibt an, ob der Dual-Channel-Modus nur für die Wiedergabe für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client „customerAudio“ und „crewAudio“ im AudioInput bereitstellen. Die CES führt dann die Echokompensation und Summierung auf dem Medienverarbeitungsserver durch.

testSessionStartTime

string (Timestamp format)

Optional. Der Beginn der Sitzung, der zu Test- oder Bewertungszwecken verwendet wird.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

UserInfo

Personenbezogene Daten des Endnutzers, die an den Food KI-Agenten weitergegeben werden.

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

string

Optional. Der Name des Nutzers, den der KI-Agent verwenden soll, um den Nutzer anzusprechen. Der Food-KI-Client ist dafür verantwortlich, den bevorzugten Namen basierend auf dem Profil des Nutzers auszuwählen und dafür zu sorgen, dass er den Konventionen der Marke entspricht, z.B. Vorname oder vollständiger Name.

paymentInfo

object (PaymentInfo)

Optional. Die Zahlungsinformationen des Nutzers.

deliveryAddress
(deprecated)

string

Optional. Verworfen: Verwenden Sie stattdessen „savedDeliveryAddress“. Die gespeicherte Lieferadresse des Nutzers.

pastOrders[]

object (PastOrder)

Optional. Der Bestellverlauf des Nutzers.

loyaltyInfo

object (LoyaltyInfo)

Optional. Die Treueinformationen des Nutzers.

phoneNumber

string

Optional. Die Telefonnummer des Nutzers.

userId

string

Optional. Die eindeutige Kennung des Nutzers im System des Kunden.

savedDeliveryAddress

object (DeliveryAddress)

Optional. Die gespeicherte Lieferadresse des Nutzers. Ersetzt das vorhandene Stringfeld „deliveryAddress“.

PastOrder

Die frühere Bestellung des Nutzers.

JSON-Darstellung
{
  "order": {
    object (Order)
  }
}
Felder
order

object (Order)

Erforderlich. Die ursprüngliche Food AI-Bestellung.

LoyaltyInfo

Stellt die Treueinformationen eines Kunden dar.

JSON-Darstellung
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
Felder
loyaltyAmount

object (LoyaltyAmount)

Erforderlich. Der Treuebetrag. Dies kann ein Treueguthaben oder ein verbrauchtes Treueguthaben sein.

OrderType

Die Art der Bestellung, die aufgegeben werden soll.

Enums
ORDER_TYPE_UNSPECIFIED Der Auftragstyp ist nicht angegeben.
ORDER_TYPE_DRIVE_THROUGH Die Bestellung ist für den Drive-In.
ORDER_TYPE_CARRY_OUT Die Bestellung ist zum Mitnehmen.
ORDER_TYPE_DELIVERY Die Bestellung ist für die Lieferung bestimmt.

FeatureGate

Die Feature Gates für die Sitzung. Damit werden Funktionen für die Sitzung aktiviert oder deaktiviert.

JSON-Darstellung
{
  "triggerOfferEngineOnDemand": boolean,
  "triggerLoyaltyOnDemand": boolean,
  "triggerOrderMediaAssistantOnDemand": boolean,
  "menuResponseEnabled": boolean,
  "revampedPaymentFlowEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean
}
Felder
triggerOfferEngineOnDemand

boolean

Optional. Nur für eine begrenzte Zielgruppe: Wenn diese Option festgelegt ist, ist die Offer Engine im Zahlungsablauf optional und wird nur ausgelöst, wenn Nutzer sie anfordern.

triggerLoyaltyOnDemand

boolean

Optional. Nur für eine begrenzte Zielgruppe: Wenn diese Option festgelegt ist, ist die Treuekarte im Zahlungsablauf optional und wird nur ausgelöst, wenn Nutzer sie anfordern.

triggerOrderMediaAssistantOnDemand

boolean

Optional. Nur für eine begrenzte Zielgruppe: Wenn diese Option festgelegt ist, ist der Assistent für die Medienbestellung optional und wird nur ausgelöst, wenn Nutzer ihn anfordern.

menuResponseEnabled

boolean

Optional. Gibt die Menüdaten an den Client in BidiProcessOrderResponse zurück, falls festgelegt.

revampedPaymentFlowEnabled

boolean

Optional. Wenn diese Option festgelegt ist, wird nur für eine begrenzte Zielgruppe eine überarbeitete Version des Zahlungsablaufs verwendet.

updatedOrderStateEnabled

boolean

Optional. Wenn festgelegt, wird „updatedOrderState“ anstelle von „legacyOrderStateResponse“ zurückgegeben.

enableOrderStatusRetrieval

boolean

Optional. Wenn diese Option festgelegt ist, unterstützt der Agent das Abrufen des Bestellstatus.

ClientAppInfo

Informationen zur Clientanwendung und Geräteumgebung. Dies wird hauptsächlich für Logging, Analysen und Debugging verwendet.

JSON-Darstellung
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
Felder
deviceModel

string

Optional. Das Gerätemodell des Clients (z.B. „iPhone 13“, „Pixel 7“, „Kiosk v2“).

osVersion

string

Optional. Die Betriebssystemversion des Clients (z.B. „iOS 16.1“, „Android 13“).

sdkVersion

string

Optional. Die Version des Client-SDKs oder der Anwendungssoftware.

SessionMode

Der Modus der Sitzung.

Enums
SESSION_MODE_UNSPECIFIED Der Sitzungsmodus ist nicht angegeben.
HYBRID Die Sitzung unterstützt sowohl Audio als auch Text. Das ist die Standardeinstellung.
TEXT Die Sitzung ist nur im Textformat verfügbar.

TurnType

Stellt die Position einer unären Anfrage im Lebenszyklus innerhalb einer Sitzung dar.

Enums
TURN_TYPE_UNSPECIFIED Nicht angegebener Abbiegungstyp.
INITIALIZE Gibt explizit an, dass diese Anfrage die Sitzung im unären Modus initialisiert. Wenn diese Option festgelegt ist, werden die Variablen der ersten Sitzung (z.B. Metadaten und Menüs des Geschäfts) in CES eingefügt.
SUBSEQUENT Gibt explizit einen nachfolgenden Gesprächsbeitrag oder eine Aktualisierung während der Sitzung an. Wenn diese Option festgelegt ist, werden die Variablen der ersten Sitzung weggelassen, um eine Explosion der Eingabetokens zu verhindern.

BidiProcessOrderResponse

Die von der Methode FoodOrderingService.BidiProcessOrder zurückgegebene Nachricht auf oberster Ebene.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld response. Die Antwort des KI-Agenten. Für response ist nur einer der folgenden Werte zulässig:
agentAudio

object (AgentAudio)

Die Audioantwort des KI-Agenten.

speechRecognition

object (SpeechRecognition)

Das Spracherkennungsergebnis des KI-Agenten.

legacyOrderStateResponse

object (Struct format)

Die Antwort zum alten Bestellstatus für eine Sitzung.

interruptionSignal

object (InterruptionSignal)

In der Audioeingabe wurde ein Unterbrechungssignal erkannt.

agentEvent

object (AgentEvent)

Ereignis vom KI-Agenten.

clientExecutionRequest

object (ClientExecutionRequest)

Die Anfrage wird zur Ausführung an den Client weitergeleitet. Dies wird für die clientseitige Ausführung verwendet, z. B. zum Hinzufügen eines Codes zur Bestellung.

updatedOrderState

object (UpdatedOrderState)

Gibt eine Aktualisierung des Bestellstatus an. Enthält den vollständigen Status der Bestellung.

agentText

object (AgentText)

Die Textantwort des KI-Agenten.

suggestedOptions

object (SuggestedOptions)

Optionen, die dem Kunden vorgeschlagen werden können.

sentimentMeasurement

object (SentimentMeasurement)

Der für diese Äußerung gemessene Echtzeit-Stimmungswert.

turnCompleted

object (TurnCompleted)

Nachricht „Zug abgeschlossen“.

endSession

object (EndSession)

Gibt an, dass die Sitzung beendet wird und dass dies die letzte Runde ist.

Der Agent sendet alle ausstehenden Antworten für die aktuelle Runde und dann eine abschließende turnCompleted-Nachricht. Der Agent startet keine neuen Runden. Eine Sitzung mit zwei Turns sieht beispielsweise so aus:

  • Runde 1
  • Kundeneingabe 1
  • … Agentenantwort und Bestellstatusnachrichten
  • turnCompleted
  • Runde 2
  • Kundeneingabe 2
  • … Antworten des KI-Agenten und Nachrichten zum Bestellstatus
  • endSession
  • … ausstehende Antworten des Agenten und Nachrichten zum Bestellstatus
  • turnCompleted
recommendedOrders

object (RecommendedOrders)

Die empfohlenen Bestellungen des KI-Agenten.

AgentAudio

Die Audioantwort des KI-Agenten.

JSON-Darstellung
{
  "agentAudio": string
}
Felder
agentAudio

string (bytes format)

Die Audiodaten des KI-Agenten.

Ein base64-codierter String.

SpeechRecognition

Das Spracherkennungsergebnis des KI-Agenten.

JSON-Darstellung
{
  "transcript": string,
  "languageCode": string,
  "isFinal": boolean
}
Felder
transcript

string

Transkribierter Text aus der Audioeingabe in der erkannten Sprache.

languageCode

string

Der Sprachcode des Transkripts. Der Sprachcode muss im BCP-47-Format vorliegen, z. B. „en-US“.

isFinal

boolean

Gibt an, ob dies das endgültige Transkript für den Turn ist.

InterruptionSignal

Dieser Typ hat keine Felder.

Gibt an, dass die Audioantwort des KI-Agenten unterbrochen wurde (z.B. durch Unterbrechung durch den Endnutzer). Der Client sollte die Wiedergabe sofort beenden.

AgentEvent

Besonderes Event des Agenten, das eine Aktion des Clients erfordert.

JSON-Darstellung
{

  // Union field event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
Felder
Union-Feld event. Das Ereignis vom KI-Agenten. Für event ist nur einer der folgenden Werte zulässig:
restartOrder

object (RestartOrder)

Der Kunde bittet darum, die Bestellung neu zu starten.

RestartOrder

Der Kunde möchte die Bestellung noch einmal von vorn beginnen.

JSON-Darstellung
{
  "confirmationStep": boolean
}
Felder
confirmationStep

boolean

Der KI-Agent bittet den Kunden, die Anfrage zum Neustart zu bestätigen.

ClientExecutionRequest

Eine Anfrage an die Clientseite, einen Befehl auszuführen.

JSON-Darstellung
{
  "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.
}
Felder
executionId

string

Erforderlich. Eine eindeutige ID für diese Ausführungsanfrage.

Union-Feld request. Die spezifische Anfrage, die ausgeführt werden soll. Für request ist nur einer der folgenden Werte zulässig:
finalizeOrderRequest

object (FinalizeOrderRequest)

Eine Anfrage zum Abschließen der Bestellung.

submitOrderRequest

object (SubmitOrderRequest)

Eine Anfrage zum Senden der Bestellung.

orderPricesRequest

object (OrderPricesRequest)

Eine Anfrage zum Abrufen der Bestellpreise.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Eine Anfrage zur Validierung der Lieferadresse.

orderStatusRequest

object (OrderStatusRequest)

Eine Anfrage zum Abrufen des Bestellstatus.

FinalizeOrderRequest

Dieser Typ hat keine Felder.

Eine Anfrage zum Abschließen der Bestellung. Diese wird in der Regel vom KI-Agenten gesendet, wenn der Kunde angibt, dass er mit der Bestellung fertig ist und bezahlen möchte.

SubmitOrderRequest

Eine Anfrage zum Einreichen der Bestellung mit allen erforderlichen Zahlungsinformationen, die vom Kunden erhoben wurden.

JSON-Darstellung
{
  "paymentInfo": {
    object (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
Felder
paymentInfo

object (PaymentInfo)

Erforderlich. Die Zahlungsinformationen für die Bestellung.

loyaltyInfo

object (LoyaltyInfo)

Optional. Die für die Bestellung verbrauchten Treuepunkte.

tipAmount

object (Money)

Optional. Der Trinkgeldbetrag für die Bestellung.

OrderPricesRequest

Eine Anfrage zum Abrufen der Bestellpreise.

JSON-Darstellung
{
  "order": {
    object (Order)
  }
}
Felder
order

object (Order)

Optional. Die Bestellung, für die die Preise abgerufen werden sollen. Wenn keine Angabe gemacht wird, können wir davon ausgehen, dass sich die Anfrage auf die vorhandene Bestellung oder den vorhandenen Einkaufswagen in der Sitzung bezieht.

ValidateDeliveryAddressRequest

Eine Anfrage zur Validierung einer Lieferadresse, die während der Sitzung erfasst wurde.

JSON-Darstellung
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Felder
deliveryAddress

object (DeliveryAddress)

Erforderlich. Die zu validierende Lieferadresse.

OrderStatusRequest

Dieser Typ hat keine Felder.

Eine Anfrage zum Abrufen des Bestellstatus.

UpdatedOrderState

Ereignis, das vom Agenten zurückgegeben wird und eine Aktualisierung des Bestellstatus darstellt.

JSON-Darstellung
{
  "order": {
    object (Order)
  },
  "changed": boolean
}
Felder
order

object (Order)

Der aktualisierte Status der Bestellung, die mit dieser Sitzung verknüpft ist.

changed

boolean

Nur Ausgabe. Gibt an, ob der Bestellstatus aktualisiert wurde.

AgentText

Die Textantwort des KI-Agenten.

JSON-Darstellung
{
  "text": string
}
Felder
text

string

Die Textantwort des KI-Agenten.

SuggestedOptions

Optionen, die dem Kunden vorgeschlagen werden können.

JSON-Darstellung
{
  "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.
}
Felder
suggestedModifierGroups

object (SuggestedModifierGroups)

Eine Gruppe vorgeschlagener Modifikatoren.

Union-Feld suggested_options. Die vorgeschlagenen Optionen. Für suggested_options ist nur einer der folgenden Werte zulässig:
suggestedItems

object (SuggestedItems)

Eine Liste mit Artikeln, die dem Kunden vorgeschlagen werden sollen.

suggestedModifiers

object (SuggestedModifiers)

Eine Liste von Modifikatoren, die dem Kunden vorgeschlagen werden sollen.

SuggestedItems

Eine Liste mit Artikeln, die dem Kunden vorgeschlagen werden sollen.

JSON-Darstellung
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
Felder
items[]

object (SuggestedItem)

Die Artikel, die dem Kunden vorgeschlagen werden sollen.

SuggestedItem

Ein Artikel, der dem Kunden vorgeschlagen werden soll.

JSON-Darstellung
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
Felder
itemId

string

ID des Artikels im Menü.

displayName

string

Menschenlesbarer Name für dieses Element, der auf Benutzeroberflächen angezeigt werden soll.

image

object (Image)

Bild, das für dieses Element in der Benutzeroberfläche angezeigt werden soll.

basePrice

object (Money)

Der Basispreis des Artikels. Dies kann durch die ausgewählten Modifikatoren beeinflusst werden. Dies ist der Preis pro Einheit des Artikels.

integrationAttributes

object (ItemIntegrationAttributes)

Metadaten, die mit dieser Entität verknüpft sind und für nachgelagerte Integrationen verwendet werden.

SuggestedModifiers

Eine Liste mit Modifikatoren, die dem Kunden vorgeschlagen werden sollen.

JSON-Darstellung
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
Felder
modifiers[]

object (SuggestedModifier)

Die Modifikatoren, die dem Kunden vorgeschlagen werden sollen.

parentUid

string

Die eindeutige Kennung des übergeordneten Elements/Modifikators, auf den die Modifikatoren angewendet werden sollen.

SuggestedModifier

Ein Modifikator, der dem Kunden vorgeschlagen werden soll.

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

string

ID des Modifikators im Menü.

modifierGroupId

string

ID der Modifikatorgruppe, der dieser Modifikator hinzugefügt werden soll, wenn der Vorschlag angenommen wird.

modifierGroupDisplayName

string

Anzeigename der Modifikatorgruppe, zu der dieser Modifikator gehört.

displayName

string

Menschenlesbarer Name für dieses Element, der auf Benutzeroberflächen angezeigt werden soll.

image

object (Image)

Bild, das für dieses Element in der Benutzeroberfläche angezeigt werden soll.

priceAdjustment

object (Money)

Die mit diesem Modifikator verknüpfte Preisanpassung, falls vorhanden. Dies ist der Preis pro Einheit des Modifikators.

integrationAttributes

object (ModifierIntegrationAttributes)

Metadaten, die mit dieser Entität verknüpft sind und für nachgelagerte Integrationen verwendet werden.

alreadyIncluded

boolean

Gibt an, ob dieser Modifikator bereits in der Bestellung enthalten ist.

SuggestedModifierGroups

Eine Liste der Modifikatorgruppen, die dem Kunden vorgeschlagen werden sollen.

JSON-Darstellung
{
  "modifierGroups": [
    {
      object (SuggestedModGroup)
    }
  ]
}
Felder
modifierGroups[]

object (SuggestedModGroup)

Die Modifikatorgruppen, die dem Kunden vorgeschlagen werden sollen.

SuggestedModGroup

Eine Modifikatorgruppe, die dem Kunden vorgeschlagen werden soll.

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

string

ID der Modifikatorgruppe im Menü.

displayName

string

Der Anzeigename der Modifikatorgruppe.

modifiers[]

object (SuggestedModifier)

Die Modifikatoren in dieser Gruppe.

maxSelectionCount

integer

Die maximale Anzahl von Modifikatoren, die aus dieser Gruppe ausgewählt werden können.

minSelectionCount

integer

Die Mindestanzahl von Modifikatoren, die aus dieser Gruppe ausgewählt werden müssen.

maxSelectionCountPerModifier

integer

Begrenzt, wie oft jeder Modifikator innerhalb dieser Gruppe angewendet werden kann.

SentimentMeasurement

Der für diese Äußerung gemessene Echtzeit-Stimmungswert.

JSON-Darstellung
{
  "score": number,
  "magnitude": number
}
Felder
score

number

Optional. Stimmungswert zwischen -1,0 (negative Stimmung) und 1,0 (positive Stimmung).

magnitude

number

Optional. Größe der Stimmung, unabhängig von der Punktzahl.

TurnCompleted

Dieser Typ hat keine Felder.

Gibt an, dass der Food AI-Agent das Ende des aktuellen Gesprächsabschnitts erkannt hat und keine weiteren Ausgaben für diesen Abschnitt bereitstellt.

EndSession

Gibt an, dass der Agent die Sitzung beendet hat, entweder aufgrund eines erfolgreichen Abschlusses (z.B. sagt der Nutzer „Auf Wiedersehen!“ ) oder eine Agent-Eskalation.

JSON-Darstellung
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
Felder
type

enum (EndType)

Der Typ des Ereignisses zum Beenden der Sitzung.

reason

string

Der Grund für das Beenden der Sitzung.

posResponse

string

Optional. Die POS-Antwort vom Einchecken der Bestellung (optional). Dies ist ein intransparenter String-Nutzdatenwert, der den Status der POS-Transaktion darstellt.

agentResponse

string

Optional. Die endgültige Antwortnachricht des KI-Agenten, die dem Nutzer vorgelesen oder angezeigt werden soll (optional).

storeSchedule

object (Schedule)

Optional. Die Öffnungszeiten des Geschäfts. Wird nur festgelegt, wenn der Endtyp STORE_CLOSED ist.

EndType

Typ des Ereignisses zum Beenden der Sitzung.

Enums
END_TYPE_UNSPECIFIED Der Endtyp ist nicht angegeben.
DRIVE_OFF Der Kunde ist weggefahren.
AGENT_ESCALATION Der KI-Agent hat die Sitzung an einen menschlichen Kundenservicemitarbeiter weitergeleitet.
CREW_INTERJECTION Ein Crewmitglied hat sich in die Sitzung eingemischt.
ORDER_COMPLETED Die Bestellung wurde erfolgreich abgeschlossen und es sind keine weiteren Maßnahmen erforderlich.
PAYMENT_FLOW_SUCCESS Der Zahlungsvorgang war erfolgreich und es sind keine weiteren Maßnahmen erforderlich.
PAYMENT_FLOW_FAILURE Der Zahlungsablauf ist fehlgeschlagen.
CLIENT_ESCALATION Der Client hat die Sitzung an einen menschlichen Kundenservicemitarbeiter eskaliert.
CALLER_HANGUP Der Kunde hat das Gespräch vorzeitig beendet.
REQUESTED_CHECKOUT Der Kunde möchte bezahlen.
REQUESTED_ORDER_STATUS Der Kunde hat nach dem Bestellstatus gefragt.
STORE_CLOSED Das Geschäft ist geschlossen.

RecommendedOrders

Eine Liste der vom Agenten empfohlenen Bestellungen für den Nutzer.

JSON-Darstellung
{
  "recommendedOrders": [
    {
      object (RecommendedOrder)
    }
  ]
}
Felder
recommendedOrders[]

object (RecommendedOrder)

Die empfohlenen Bestellungen, die dem Nutzer angezeigt werden sollen.

RecommendedOrder

Eine Bestellung, die der KI-Agent dem Nutzer empfiehlt.

JSON-Darstellung
{
  "order": {
    object (Order)
  }
}
Felder
order

object (Order)

Die empfohlene Reihenfolge, die dem Nutzer angezeigt werden soll.