Method: projects.locations.sessions.processOrder

Führt eine einzelne Runde der Logik aus, um Nutzereingaben 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-through-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 „customerAudio“ und „crewAudio“ im AudioInput angeben.

config.daypartId

string

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

config.userInfo

object (UserInfo)

Optional. Die personenbezogenen Daten des Endnutzers, die mit dem Kundenservicemitarbeiter geteilt werden.

config.orderType
(deprecated)

enum (OrderType)

Optional. Eingestellt: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Der Typ der zu platzierenden Bestellung.

config.initialOrder

object (Order)

Optional. Die ursprüngliche Bestellung vor dem Start der Agent-Sitzung. Falls angegeben, wird der KI-Agent ihn als anfänglichen Bestellstatus verwenden.

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 Kunden, mit der die Unterhaltung beginnt. Falls angegeben, verwendet der Agent diese als erste Nutzerinteraktion, und beginnt nicht mit einer Begrüßungsnachricht.

config.clientAppInfo

object (ClientAppInfo)

Optional. Informationen zur Clientanwendung und Geräteumgebung.

config.mode

enum (SessionMode)

Optional. Der Modus der Sitzung.

config.channelType

enum (ChannelType)

Optional. Der Typ des Kanals, der für die Kommunikation mit dem Kundenservicemitarbeiter verwendet wird.

config.enableListenOnlyDualChannel

boolean

Optional. Gibt an, ob der Dual-Channel-Modus nur zum Zuhören für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client „customerAudio“ und „crewAudio“ in „AudioInput“ angeben. CES führt dann EAC und Summation auf dem Media-Verarbeitungsserver durch.

config.testSessionStartTime

string (Timestamp format)

Optional. Die Startzeit der Sitzung, die 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. Eindeutiger Hinweis auf die Position der Anfrage im Sitzungslebenszyklus. Ermöglicht Clients, deterministisch zu steuern, wann Variablen für die Einrichtung der ersten Sitzung eingefügt werden.

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

object (TextInput)

Die Texteingabe des Kunden.

audioInput

object (AudioInput)

Die Audioeingabe vom Client.

eventInput

object (EventInput)

Die Ereigniseingabe vom Client.

clientExecutionResult

object (ClientExecutionResult)

Das Ergebnis einer Clientausführungsanfrage.

blobInput

object (Blob)

Allgemeine Binärdateneingabe. Spiegelungen http://google3/google/cloud/ces/v1main/session_service.proto?l=720

Antworttext

Antwortnachricht für FoodOrderingService.ProcessOrder. Enthält funktional Felder aus BidiProcessOrderResponse, jedoch ohne Streaming-spezifische 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 Agent-Antworten auf die Anfrage, die in der richtigen Reihenfolge zurückgegeben werden.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

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

Weitere Informationen finden Sie unter Authentication Overview.

TextInput

Die Texteingabe des Kunden. Anstelle von Audio kann der Kunde dem Agenten auch Texteingaben senden. Ein Client muss entweder Text- oder Audioeingabe verwenden, nicht beides.

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

string

Erforderlich. Die Textäußerung des Clients.

AudioInput

Die Audioeingabe vom Client. Das Eingabe-Audio kann mehrere Kanäle für den Kunden, die Crew usw. haben. Diese sollten alle synchronisiert sein und dem in der Konfiguration angegebenen Format entsprechen. Audio-Headern sollten nicht enthalten sein. Standardmäßig sollte die Audioausgabe die 16‑Bit-Codierung mit linearer PCM und eine Abtastrate von 16.000 Hz verwenden. Die Gesamtzahl der Byte aus allen Channels sollte weniger als 25.600 Byte betragen.

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

string (bytes format)

Erforderlich. Audio-Kundendaten.

Ein base64-codierter String.

crewAudio

string (bytes format)

Optional. Audiodaten der Crew. Dies ist ein optionaler Audio-Channel für das Crew-Mitglied auf derselben Leitung wie der Kunde. Er diente 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 auszulösende Ereignis. Für event ist nur einer der folgenden Werte zulässig:
driveOffEvent

object (DriveOffEvent)

Das Ereignis „Wegfahren“.

crewInterjectionEvent

object (CrewInterjectionEvent)

Das Ereignis für die Crew-Unterbrechung.

updateOrderStateEvent

object (OrderStateUpdateEvent)

Eine clientseitige Aktualisierung des Bestellstatus.

clientEscalationEvent

object (ClientEscalationEvent)

Ein clientseitiges Eskalierungsereignis.

customizedInputEvent

object (CustomizedInputEvent)

Ein benutzerdefiniertes Eingabeereignis.

callerHangupEvent

object (CallerHangupEvent)

Optional. Ein Anrufer legt auf.

posErrorInput

object (PosErrorEvent)

Optional. Ein POS-Fehlerereignis.

DriveOffEvent

Das Ereignis „Wegfahren“. Das bedeutet, 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“ oder „Unerwartete Abfahrt“.

CrewInterjectionEvent

Das Ereignis für die Crew-Unterbrechung. Das bedeutet, dass ein Crew-Mitglied 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 eingegriffen hat, z.B. „headset“ oder „pos“.

OrderStateUpdateEvent

Der Request 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 des Auftrags, der dieser Sitzung zugeordnet 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 Eskalierung des Kunden, z.B. „payment-declined“, „pos-error“, „integration-error“ usw.

CustomizedInputEvent

Mit diesem Feld kann ein Food AI-Client ein benutzerdefiniertes Ereignis an den Agent senden. Standardmäßig ist sie ein No-Op. Wenden Sie sich an den Kundensupport, um diese Funktion zu aktivieren.

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

object (Struct format)

Erforderlich. Eingabe vom Client an den Kundenservicemitarbeiter.

CallerHangupEvent

Dieser Typ hat keine Felder.

Gibt an, dass der Kunde das Gespräch vorzeitig beendet hat (z.B. aufgrund von KI-Aversion).

PosErrorEvent

POS-spezifische Fehler.

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

string

Optional. Eine Liste mit für Menschen lesbaren Beschreibungen der Fehler. Wenn mehrere Probleme gleichzeitig auftreten (z.B. mehrere Artikel nicht auf Lager sind) oder um einen einzelnen komplexen Fehler detaillierter aufzuschlüsseln, können mehrere Fehlermeldungen ausgegeben werden. Diese Nachrichten können vom Kundenservicemitarbeiter verwendet werden, um den Kunden zu informieren, oder für Protokollierungszwecke.

affectedItemUids[]

string

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

affectedExternalIds[]

string

Optional. Liste der externen IDs (aus dem Menü), die den Fehler verursacht haben. Sollte mit den tatsächlichen Vertretern am POS übereinstimmen, die sich in der Regel unter Integrationsattributen in menu.proto befinden (z.B. in ItemIntegrationAttributes oder ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

Optional. Freiform-Metadaten für das Debugging oder markenspezifische Signale. 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 Clientausfü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 Abrufens der Bestellpreise.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

Das Ergebnis der Validierung der Lieferadresse.

orderStatusResponse

object (OrderStatusResponse)

Das Ergebnis des Abrufens 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 Zahlungsabwicklungsvorgang im Agent aktiviert werden soll.

paymentInfo

object (PaymentInfo)

Optional. Die Zahlungsinformationen des Kunden. Wird nicht ausgeführt, wenn „paymentFlowEnabled“ auf „false“ gesetzt ist.

totalAmountDue

object (Money)

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

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 eingereicht 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 Abrufens der Bestellpreise.

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

boolean

Erforderlich. Gibt an, ob die Bestellpreise erfolgreich abgerufen wurden.

orderPriceInfo

object (OrderPriceInfo)

Optional. Gesamtpreis der Bestellung nach allen Rabatten, 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 Bestätigungsstatus der Lieferadresse.

OrderStatusResponse

Das Ergebnis des Abrufens des Bestellstatus.

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

boolean

Erforderlich. Gibt an, ob der Bestellstatus erfolgreich abgerufen wurde.

Blob

Stellt eine Blob-Ein- oder ‑Ausgabe in der Konversation 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 Attribute für Essensbestellungen. Zu Beginn jeder Verbindung muss der Client zuerst eine Konfigurationsnachricht senden. Dies muss vor allen anderen Anfragen zum Starten der Sitzung erfolgen. Wenn die Verbindung zum Client getrennt wird, sollte er beim erneuten Verbinden dieselbe Konfigurationsnachricht senden.

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-through-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 „customerAudio“ und „crewAudio“ im AudioInput angeben.

daypartId

string

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

userInfo

object (UserInfo)

Optional. Die personenbezogenen Daten des Endnutzers, die mit dem Kundenservicemitarbeiter geteilt werden.

orderType
(deprecated)

enum (OrderType)

Optional. Eingestellt: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Der Typ der zu platzierenden Bestellung.

initialOrder

object (Order)

Optional. Die ursprüngliche Bestellung vor dem Start der Agent-Sitzung. Falls angegeben, wird der KI-Agent ihn als anfänglichen Bestellstatus verwenden.

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 Kunden, mit der die Unterhaltung beginnt. Falls angegeben, verwendet der Agent diese als erste Nutzerinteraktion, und beginnt nicht mit einer Begrüßungsnachricht.

clientAppInfo

object (ClientAppInfo)

Optional. Informationen zur Clientanwendung und Geräteumgebung.

mode

enum (SessionMode)

Optional. Der Modus der Sitzung.

channelType

enum (ChannelType)

Optional. Der Typ des Kanals, der für die Kommunikation mit dem Kundenservicemitarbeiter verwendet wird.

enableListenOnlyDualChannel

boolean

Optional. Gibt an, ob der Dual-Channel-Modus nur zum Zuhören für die Sitzung aktiviert werden soll. Wenn diese Option aktiviert ist, sollte der Client „customerAudio“ und „crewAudio“ in „AudioInput“ angeben. CES führt dann EAC und Summation auf dem Media-Verarbeitungsserver durch.

testSessionStartTime

string (Timestamp format)

Optional. Die Startzeit der Sitzung, die 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 mit dem Food KI-Agent geteilt 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 Agent verwenden soll, um den Nutzer anzusprechen. Der Food AI-Client ist dafür verantwortlich, den bevorzugten Namen basierend auf dem Profil des Nutzers auszuwählen und dafür zu sorgen, dass er der Konvention der Marke entspricht, z.B. Vorname oder vollständiger Name.

paymentInfo

object (PaymentInfo)

Optional. Die Zahlungsinformationen des Nutzers.

deliveryAddress
(deprecated)

string

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

pastOrders[]

object (PastOrder)

Optional. Der Bestellverlauf des Nutzers.

loyaltyInfo

object (LoyaltyInfo)

Optional. Die Treuepunkte 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 Feld „deliveryAddress“ vom Typ „String“.

PastOrder

Die letzte Bestellung des Nutzers.

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

object (Order)

Erforderlich. Die ursprüngliche Food AI-Bestellung.

LoyaltyInfo

Represents a customer's loyalty information.

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

object (LoyaltyAmount)

Erforderlich. Der Treuepunktebetrag. Das kann ein Treuepunkteguthaben oder ein eingelöstes Treuepunkteguthaben sein.

OrderType

Der Typ der zu platzierenden Bestellung.

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

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. Bei einer eingeschränkten Zielgruppe ist die Angebots-Engine im Zahlungsablauf optional und wird nur ausgelöst, wenn Nutzer sie anfordern.

triggerLoyaltyOnDemand

boolean

Optional. Wenn festgelegt, ist das Treuepunkteprogramm im Zahlungsablauf nur für eine begrenzte Zielgruppe optional und wird nur ausgelöst, wenn Nutzer es anfordern.

triggerOrderMediaAssistantOnDemand

boolean

Optional. Bei einer eingeschränkten Zielgruppe ist der Media-Assistent optional und wird nur ausgelöst, wenn Nutzer ihn anfordern.

menuResponseEnabled

boolean

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

revampedPaymentFlowEnabled

boolean

Optional. Nur für eine begrenzte Zielgruppe. Wenn festgelegt, wird 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. Sie 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“ oder „Kiosk v2“.

osVersion

string

Optional. Die Betriebssystemversion des Clients, z.B. „iOS 16.1“ oder „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 für Text.

TurnType

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

Enums
TURN_TYPE_UNSPECIFIED Nicht angegebener Abbiegetyp.
INITIALIZE Gibt explizit an, dass mit dieser Anfrage die Sitzung im Unary-Modus initialisiert wird. Wenn diese Option festgelegt ist, werden die anfänglichen Sitzungsvariablen (z.B. Metadaten und Menüs des Geschäfts) in CES eingefügt.
SUBSEQUENT Weist explizit auf einen nachfolgenden Sprecherwechsel oder eine Aktualisierung während der Sitzung hin. Wenn diese Option festgelegt ist, werden die Variablen der ersten Sitzung ausgelassen, um eine Explosion der Eingabetokens zu verhindern.

BidiProcessOrderResponse

Die von der Methode FoodOrderingService.BidiProcessOrder zurückgegebene Nachricht der obersten 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 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 Agents.

legacyOrderStateResponse

object (Struct format)

Die Antwort mit dem alten Bestellstatus für eine Sitzung.

interruptionSignal

object (InterruptionSignal)

Über die Audioeingabe wurde ein Unterbrechungssignal erkannt.

agentEvent

object (AgentEvent)

Ereignis vom 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 zum Auftrag.

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 diesen Zug gemessene Echtzeit-Sentimentwert.

turnCompleted

object (TurnCompleted)

Nachricht „Turn abgeschlossen“.

endSession

object (EndSession)

Gibt an, dass die Sitzung endet und dies der letzte Zug ist.

Der Agent sendet alle ausstehenden Antworten für die aktuelle Unterhaltungsrunde und dann eine abschließende „turnCompleted“-Nachricht. Der Agent startet keine neuen Züge. Eine Sitzung mit zwei Zügen sieht beispielsweise so aus:

  • Runde 1
  • Kundeneingabe 1
  • … Antworten des Kundenservicemitarbeiters und Nachrichten zum Bestellstatus
  • turnCompleted
  • Runde 2
  • Kundeneingabe 2
  • … Antworten des Kundenservicemitarbeiters und Nachrichten zum Bestellstatus
  • endSession
  • … ausstehende Agentenantworten und Nachrichten zum Bestellstatus
  • turnCompleted
recommendedOrders

object (RecommendedOrders)

Die vom Agent empfohlenen Bestellungen.

AgentAudio

Die Audioantwort des KI-Agenten.

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

string (bytes format)

Die Audiodaten des Agenten.

Ein base64-codierter String.

SpeechRecognition

Das Spracherkennungsergebnis des Agents.

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 sollte im BCP-47-Format angegeben werden, z. B. „en-US“.

isFinal

boolean

Gibt an, ob es sich um das endgültige Transkript für den Turn handelt.

InterruptionSignal

Dieser Typ hat keine Felder.

Gibt an, dass die Audioantwort des Agents unterbrochen wurde, z.B. durch eine Unterbrechung des Endnutzers. Der Client sollte die Wiedergabe sofort beenden.

AgentEvent

Besonderes Ereignis vom Agent, 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 Agenten. Für event ist nur einer der folgenden Werte zulässig:
restartOrder

object (RestartOrder)

Der Kunde möchte die Bestellung neu starten.

RestartOrder

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

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

boolean

Der Kundenservicemitarbeiter bittet den Kunden, die Anfrage zum Neustart zu bestätigen.

ClientExecutionRequest

Eine Anfrage an den Client, 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 auszuführende spezifische Anfrage. Für request ist nur einer der folgenden Werte zulässig:
finalizeOrderRequest

object (FinalizeOrderRequest)

Ein Request zum Abschließen der Bestellung.

submitOrderRequest

object (SubmitOrderRequest)

Ein Request zum Einreichen der Bestellung.

orderPricesRequest

object (OrderPricesRequest)

Ein Request zum Abrufen der Auftragspreise.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Eine Anfrage zur Bestätigung der Lieferadresse.

orderStatusRequest

object (OrderStatusRequest)

Eine Anfrage zum Abrufen des Bestellstatus.

FinalizeOrderRequest

Dieser Typ hat keine Felder.

Ein Request zum Abschließen der Bestellung. Diese Nachricht wird in der Regel vom Kundenservicemitarbeiter gesendet, wenn der Kunde angibt, dass er mit der Bestellung fertig ist und bezahlen möchte.

SubmitOrderRequest

Eine Anfrage zum Einreichen der Bestellung, wobei alle erforderlichen Zahlungsinformationen vom Kunden erfasst 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 verwendeten Treuepunkte.

tipAmount

object (Money)

Optional. Der Trinkgeldbetrag für die Bestellung.

OrderPricesRequest

Ein Request zum Abrufen der Auftragspreise.

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

object (Order)

Optional. Die Bestellung, für die die Preise abgerufen werden sollen. Wenn nichts angegeben ist, gehen wir davon aus, dass sich die Anfrage auf die bestehende Bestellung/den bestehenden Warenkorb in der Sitzung bezieht.

ValidateDeliveryAddressRequest

Eine Anfrage zur Bestätigung einer während der Sitzung erfassten Lieferadresse.

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

Vom Agent zurückgegebenes Ereignis, das eine Aktualisierung des Auftragsstatus darstellt.

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

object (Order)

Der aktualisierte Status des Auftrags, der dieser Sitzung zugeordnet 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 von vorgeschlagenen 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 mit 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 Elements im Menü.

displayName

string

Menschenlesbarer Name für diesen Begriff, 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. Das ist der Preis pro Einheit des Artikels.

integrationAttributes

object (ItemIntegrationAttributes)

Metadaten, die dieser Entität zugeordnet sind und für Downstream-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 Artikels/Modifiers, auf den die Modifier 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 akzeptiert wird.

modifierGroupDisplayName

string

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

displayName

string

Menschenlesbarer Name für diesen Begriff, 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. Das ist der Preis pro Einheit des Modifikators.

integrationAttributes

object (ModifierIntegrationAttributes)

Metadaten, die dieser Entität zugeordnet sind und für Downstream-Integrationen verwendet werden.

alreadyIncluded

boolean

Gibt an, ob dieser Zusatz 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 die Anzahl der Male, die jeder Modifikator innerhalb dieser Gruppe angewendet werden kann.

SentimentMeasurement

Der für diesen Zug gemessene Echtzeit-Sentimentwert.

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

number

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

magnitude

number

Optional. Stärke der Stimmung, unabhängig vom Wert.

TurnCompleted

Dieser Typ hat keine Felder.

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

EndSession

Gibt an, dass der Agent die Sitzung beendet hat, entweder weil sie erfolgreich abgeschlossen wurde (z.B. wenn der Nutzer „Tschüss“ sagt) ) oder eine Eskalierung an einen Kundenservicemitarbeiter.

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 eine intransparente String-Nutzlast, die den POS-Transaktionsstatus darstellt.

agentResponse

string

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

storeSchedule

object (Schedule)

Optional. Der Zeitplan für das Geschäft. Dieser Wert 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 Kundenservicemitarbeiter hat die Sitzung an einen menschlichen Kundenservicemitarbeiter eskaliert.
CREW_INTERJECTION Ein Crew-Mitglied 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 Zahlungsablauf war erfolgreich und es sind keine weiteren Maßnahmen erforderlich.
PAYMENT_FLOW_FAILURE Der Zahlungsablauf ist fehlgeschlagen.
CLIENT_ESCALATION Der Kunde hat die Sitzung an einen Kundenservicemitarbeiter eskaliert.
CALLER_HANGUP Der Kunde hat das Gespräch vorzeitig beendet.
REQUESTED_CHECKOUT Der Kunde hat die Bezahlung angefordert.
REQUESTED_ORDER_STATUS Der Kunde hat nach dem Bestellstatus gefragt.
STORE_CLOSED Das Geschäft ist geschlossen.

RecommendedOrders

Eine Liste der vom Agent 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 vom KI-Agenten für den Nutzer empfohlen wird.

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

object (Order)

Die empfohlene Reihenfolge, in der die Elemente dem Nutzer angezeigt werden sollen.