- HTTP-Anfrage
- Pfadparameter
- Anfragetext
- Antworttext
- Autorisierungsbereiche
- 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
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 |
Erforderlich. Die Sitzung für die Bestellung. Format: |
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 ( |
| Felder | |
|---|---|
config.store |
Erforderlich. Das Geschäft, für das die Bestellung aufgegeben wird. Format: |
config.laneId |
Optional. Die ID einer bestimmten Drive-In-Spur. |
config.enableEchoCancellation |
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 |
Optional. Tageszeit der Speisekarte, z. B. Frühstück, Mittagessen, Abendessen usw. Damit wird die Speisekarte für die Bestellung bestimmt. |
config.userInfo |
Optional. Die personenbezogenen Daten des Endnutzers, die an den KI-Agenten weitergegeben wurden. |
config.orderType |
Optional. Verworfen: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Die Art der Bestellung, die aufgegeben werden soll. |
config.initialOrder |
Optional. Die ursprüngliche Bestellung vor dem Start der KI-Agentensitzung. Falls angegeben, verwendet der KI-Agent diesen als anfänglichen Bestellstatus. |
config.featureGate |
Optional. Die Feature Gates für die Sitzung. Damit werden Funktionen für die Sitzung aktiviert oder deaktiviert. |
config.initialUtterance |
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 |
Optional. Die Informationen zur Clientanwendung und Geräteumgebung. |
config.mode |
Optional. Der Modus der Sitzung. |
config.channelType |
Optional. Der Kanaltyp, der für die Kommunikation mit dem Agenten verwendet wird. |
config.enableListenOnlyDualChannel |
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 |
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: |
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 |
Die Texteingabe des Clients. |
audioInput |
Die Audioeingabe vom Client. |
eventInput |
Die Ereigniseingabe vom Client. |
clientExecutionResult |
Das Ergebnis einer Client-Ausführungsanfrage. |
blobInput |
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 ( |
| Felder | |
|---|---|
responses[] |
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 |
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 |
Erforderlich. Kundenaudiodaten. Ein base64-codierter String. |
crewAudio |
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 |
| 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 |
Das Ereignis „Wegfahren“. |
crewInterjectionEvent |
Das Ereignis für den Einwurf der Crew. |
updateOrderStateEvent |
Eine clientseitige Aktualisierung des Bestellstatus. |
clientEscalationEvent |
Ein clientseitiges Eskalationsereignis. |
customizedInputEvent |
Ein benutzerdefiniertes Eingabeereignis. |
callerHangupEvent |
Optional. Ein Ereignis, bei dem der Anrufer auflegt. |
posErrorInput |
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 |
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 |
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 ( |
| Felder | |
|---|---|
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 |
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 |
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[] |
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[] |
Optional. Eindeutige Artikel-UIDs, die vom Food Ordering KI-Agent generiert wurden und den Fehler verursacht haben. Entspricht |
affectedExternalIds[] |
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 |
metadata |
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 |
ClientExecutionResult
Das Ergebnis einer Client-Ausführungsanfrage.
| JSON-Darstellung |
|---|
{ "executionId": string, // Union field |
| Felder | |
|---|---|
executionId |
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 |
Das Ergebnis des Abschlusses der Bestellung. |
submitOrderResponse |
Das Ergebnis der Bestellung. |
orderPricesResponse |
Das Ergebnis des Abrufs der Bestellpreise. |
validateDeliveryAddressResponse |
Das Ergebnis der Validierung der Lieferadresse. |
orderStatusResponse |
Das Ergebnis des Abrufs des Bestellstatus. |
FinalizeOrderResponse
Das Ergebnis des Abschlusses der Bestellung.
| JSON-Darstellung |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Felder | |
|---|---|
paymentFlowEnabled |
Optional. Gibt an, ob der Ablauf für die Zahlungsabwicklung im Agenten aktiviert werden soll. |
paymentInfo |
Optional. Die Zahlungsinformationen des Kunden. Keine Aktion, wenn „paymentFlowEnabled“ auf „false“ gesetzt ist. |
totalAmountDue |
Optional. Der fällige Gesamtbetrag für die Bestellung. |
orderPriceInfo |
Optional. Die detaillierten Preisinformationen der Bestellung. |
SubmitOrderResponse
Das Ergebnis der Bestellung.
| JSON-Darstellung |
|---|
{ "success": boolean, "estimatedReadyDuration": string } |
| Felder | |
|---|---|
success |
Erforderlich. Gibt an, ob die Bestellung erfolgreich aufgegeben wurde. |
estimatedReadyDuration |
Optional. Die geschätzte Dauer, bis die Bestellung fertig ist. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit „ |
OrderPricesResponse
Das Ergebnis des Abrufs der Bestellpreise.
| JSON-Darstellung |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Felder | |
|---|---|
success |
Erforderlich. Gibt an, ob die Bestellpreise abgerufen wurden. |
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 ( |
| Felder | |
|---|---|
success |
Erforderlich. Gibt an, ob die Validierung ohne Fehler abgeschlossen wurde. |
validationStatus |
Erforderlich. Der Validierungsstatus der Lieferadresse. |
OrderStatusResponse
Das Ergebnis des Abrufs des Bestellstatus.
| JSON-Darstellung |
|---|
{ "success": boolean } |
| Felder | |
|---|---|
success |
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 |
Erforderlich. Der IANA-Standard-MIME-Typ der Quelldaten. |
data |
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 ( |
| Felder | |
|---|---|
session |
Erforderlich. Die Sitzung für die Bestellung. Format: |
store |
Erforderlich. Das Geschäft, für das die Bestellung aufgegeben wird. Format: |
laneId |
Optional. Die ID einer bestimmten Drive-In-Spur. |
enableEchoCancellation |
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 |
Optional. Tageszeit der Speisekarte, z. B. Frühstück, Mittagessen, Abendessen usw. Damit wird die Speisekarte für die Bestellung bestimmt. |
userInfo |
Optional. Die personenbezogenen Daten des Endnutzers, die an den KI-Agenten weitergegeben wurden. |
orderType |
Optional. Verworfen: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Die Art der Bestellung, die aufgegeben werden soll. |
initialOrder |
Optional. Die ursprüngliche Bestellung vor dem Start der KI-Agentensitzung. Falls angegeben, verwendet der KI-Agent diesen als anfänglichen Bestellstatus. |
featureGate |
Optional. Die Feature Gates für die Sitzung. Damit werden Funktionen für die Sitzung aktiviert oder deaktiviert. |
initialUtterance |
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 |
Optional. Die Informationen zur Clientanwendung und Geräteumgebung. |
mode |
Optional. Der Modus der Sitzung. |
channelType |
Optional. Der Kanaltyp, der für die Kommunikation mit dem Agenten verwendet wird. |
enableListenOnlyDualChannel |
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 |
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: |
UserInfo
Personenbezogene Daten des Endnutzers, die an den Food KI-Agenten weitergegeben werden.
| JSON-Darstellung |
|---|
{ "preferredName": string, "paymentInfo": { object ( |
| Felder | |
|---|---|
preferredName |
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 |
Optional. Die Zahlungsinformationen des Nutzers. |
deliveryAddress |
Optional. Verworfen: Verwenden Sie stattdessen „savedDeliveryAddress“. Die gespeicherte Lieferadresse des Nutzers. |
pastOrders[] |
Optional. Der Bestellverlauf des Nutzers. |
loyaltyInfo |
Optional. Die Treueinformationen des Nutzers. |
phoneNumber |
Optional. Die Telefonnummer des Nutzers. |
userId |
Optional. Die eindeutige Kennung des Nutzers im System des Kunden. |
savedDeliveryAddress |
Optional. Die gespeicherte Lieferadresse des Nutzers. Ersetzt das vorhandene Stringfeld „deliveryAddress“. |
PastOrder
Die frühere Bestellung des Nutzers.
| JSON-Darstellung |
|---|
{
"order": {
object ( |
| Felder | |
|---|---|
order |
Erforderlich. Die ursprüngliche Food AI-Bestellung. |
LoyaltyInfo
Stellt die Treueinformationen eines Kunden dar.
| JSON-Darstellung |
|---|
{
"loyaltyAmount": {
object ( |
| Felder | |
|---|---|
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 |
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 |
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 |
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 |
Optional. Gibt die Menüdaten an den Client in BidiProcessOrderResponse zurück, falls festgelegt. |
revampedPaymentFlowEnabled |
Optional. Wenn diese Option festgelegt ist, wird nur für eine begrenzte Zielgruppe eine überarbeitete Version des Zahlungsablaufs verwendet. |
updatedOrderStateEnabled |
Optional. Wenn festgelegt, wird „updatedOrderState“ anstelle von „legacyOrderStateResponse“ zurückgegeben. |
enableOrderStatusRetrieval |
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 |
Optional. Das Gerätemodell des Clients (z.B. „iPhone 13“, „Pixel 7“, „Kiosk v2“). |
osVersion |
Optional. Die Betriebssystemversion des Clients (z.B. „iOS 16.1“, „Android 13“). |
sdkVersion |
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 |
| Felder | |
|---|---|
Union-Feld response. Die Antwort des KI-Agenten. Für response ist nur einer der folgenden Werte zulässig: |
|
agentAudio |
Die Audioantwort des KI-Agenten. |
speechRecognition |
Das Spracherkennungsergebnis des KI-Agenten. |
legacyOrderStateResponse |
Die Antwort zum alten Bestellstatus für eine Sitzung. |
interruptionSignal |
In der Audioeingabe wurde ein Unterbrechungssignal erkannt. |
agentEvent |
Ereignis vom KI-Agenten. |
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 |
Gibt eine Aktualisierung des Bestellstatus an. Enthält den vollständigen Status der Bestellung. |
agentText |
Die Textantwort des KI-Agenten. |
suggestedOptions |
Optionen, die dem Kunden vorgeschlagen werden können. |
sentimentMeasurement |
Der für diese Äußerung gemessene Echtzeit-Stimmungswert. |
turnCompleted |
Nachricht „Zug abgeschlossen“. |
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:
|
recommendedOrders |
Die empfohlenen Bestellungen des KI-Agenten. |
AgentAudio
Die Audioantwort des KI-Agenten.
| JSON-Darstellung |
|---|
{ "agentAudio": string } |
| Felder | |
|---|---|
agentAudio |
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 |
Transkribierter Text aus der Audioeingabe in der erkannten Sprache. |
languageCode |
Der Sprachcode des Transkripts. Der Sprachcode muss im BCP-47-Format vorliegen, z. B. „en-US“. |
isFinal |
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 |
| Felder | |
|---|---|
Union-Feld event. Das Ereignis vom KI-Agenten. Für event ist nur einer der folgenden Werte zulässig: |
|
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 |
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 |
| Felder | |
|---|---|
executionId |
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 |
Eine Anfrage zum Abschließen der Bestellung. |
submitOrderRequest |
Eine Anfrage zum Senden der Bestellung. |
orderPricesRequest |
Eine Anfrage zum Abrufen der Bestellpreise. |
validateDeliveryAddressRequest |
Eine Anfrage zur Validierung der Lieferadresse. |
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 ( |
| Felder | |
|---|---|
paymentInfo |
Erforderlich. Die Zahlungsinformationen für die Bestellung. |
loyaltyInfo |
Optional. Die für die Bestellung verbrauchten Treuepunkte. |
tipAmount |
Optional. Der Trinkgeldbetrag für die Bestellung. |
OrderPricesRequest
Eine Anfrage zum Abrufen der Bestellpreise.
| JSON-Darstellung |
|---|
{
"order": {
object ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
order |
Der aktualisierte Status der Bestellung, die mit dieser Sitzung verknüpft ist. |
changed |
Nur Ausgabe. Gibt an, ob der Bestellstatus aktualisiert wurde. |
AgentText
Die Textantwort des KI-Agenten.
| JSON-Darstellung |
|---|
{ "text": string } |
| Felder | |
|---|---|
text |
Die Textantwort des KI-Agenten. |
SuggestedOptions
Optionen, die dem Kunden vorgeschlagen werden können.
| JSON-Darstellung |
|---|
{ "suggestedModifierGroups": { object ( |
| Felder | |
|---|---|
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 |
Eine Liste mit Artikeln, die dem Kunden vorgeschlagen werden sollen. |
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 ( |
| Felder | |
|---|---|
items[] |
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 ( |
| Felder | |
|---|---|
itemId |
ID des Artikels im Menü. |
displayName |
Menschenlesbarer Name für dieses Element, der auf Benutzeroberflächen angezeigt werden soll. |
image |
Bild, das für dieses Element in der Benutzeroberfläche angezeigt werden soll. |
basePrice |
Der Basispreis des Artikels. Dies kann durch die ausgewählten Modifikatoren beeinflusst werden. Dies ist der Preis pro Einheit des Artikels. |
integrationAttributes |
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 ( |
| Felder | |
|---|---|
modifiers[] |
Die Modifikatoren, die dem Kunden vorgeschlagen werden sollen. |
parentUid |
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 ( |
| Felder | |
|---|---|
modifierId |
ID des Modifikators im Menü. |
modifierGroupId |
ID der Modifikatorgruppe, der dieser Modifikator hinzugefügt werden soll, wenn der Vorschlag angenommen wird. |
modifierGroupDisplayName |
Anzeigename der Modifikatorgruppe, zu der dieser Modifikator gehört. |
displayName |
Menschenlesbarer Name für dieses Element, der auf Benutzeroberflächen angezeigt werden soll. |
image |
Bild, das für dieses Element in der Benutzeroberfläche angezeigt werden soll. |
priceAdjustment |
Die mit diesem Modifikator verknüpfte Preisanpassung, falls vorhanden. Dies ist der Preis pro Einheit des Modifikators. |
integrationAttributes |
Metadaten, die mit dieser Entität verknüpft sind und für nachgelagerte Integrationen verwendet werden. |
alreadyIncluded |
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 ( |
| Felder | |
|---|---|
modifierGroups[] |
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 ( |
| Felder | |
|---|---|
modifierGroupId |
ID der Modifikatorgruppe im Menü. |
displayName |
Der Anzeigename der Modifikatorgruppe. |
modifiers[] |
Die Modifikatoren in dieser Gruppe. |
maxSelectionCount |
Die maximale Anzahl von Modifikatoren, die aus dieser Gruppe ausgewählt werden können. |
minSelectionCount |
Die Mindestanzahl von Modifikatoren, die aus dieser Gruppe ausgewählt werden müssen. |
maxSelectionCountPerModifier |
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 |
Optional. Stimmungswert zwischen -1,0 (negative Stimmung) und 1,0 (positive Stimmung). |
magnitude |
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 ( |
| Felder | |
|---|---|
type |
Der Typ des Ereignisses zum Beenden der Sitzung. |
reason |
Der Grund für das Beenden der Sitzung. |
posResponse |
Optional. Die POS-Antwort vom Einchecken der Bestellung (optional). Dies ist ein intransparenter String-Nutzdatenwert, der den Status der POS-Transaktion darstellt. |
agentResponse |
Optional. Die endgültige Antwortnachricht des KI-Agenten, die dem Nutzer vorgelesen oder angezeigt werden soll (optional). |
storeSchedule |
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 ( |
| Felder | |
|---|---|
recommendedOrders[] |
Die empfohlenen Bestellungen, die dem Nutzer angezeigt werden sollen. |
RecommendedOrder
Eine Bestellung, die der KI-Agent dem Nutzer empfiehlt.
| JSON-Darstellung |
|---|
{
"order": {
object ( |
| Felder | |
|---|---|
order |
Die empfohlene Reihenfolge, die dem Nutzer angezeigt werden soll. |