- 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 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 |
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-through-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 „customerAudio“ und „crewAudio“ im AudioInput angeben. |
config.daypartId |
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 |
Optional. Die personenbezogenen Daten des Endnutzers, die mit dem Kundenservicemitarbeiter geteilt werden. |
config.orderType |
Optional. Eingestellt: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Der Typ der zu platzierenden Bestellung. |
config.initialOrder |
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 |
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 Kunden, mit der die Unterhaltung beginnt. Falls angegeben, verwendet der Agent diese als erste Nutzerinteraktion, und beginnt nicht mit einer Begrüßungsnachricht. |
config.clientAppInfo |
Optional. Informationen zur Clientanwendung und Geräteumgebung. |
config.mode |
Optional. Der Modus der Sitzung. |
config.channelType |
Optional. Der Typ des Kanals, der für die Kommunikation mit dem Kundenservicemitarbeiter verwendet wird. |
config.enableListenOnlyDualChannel |
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 |
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: |
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 |
Die Texteingabe des Kunden. |
audioInput |
Die Audioeingabe vom Client. |
eventInput |
Die Ereigniseingabe vom Client. |
clientExecutionResult |
Das Ergebnis einer Clientausführungsanfrage. |
blobInput |
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 ( |
| Felder | |
|---|---|
responses[] |
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 |
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 |
Erforderlich. Audio-Kundendaten. Ein base64-codierter String. |
crewAudio |
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 |
| Felder | |
|---|---|
Union-Feld event. Nächste ID: 10 Das auszulösende Ereignis. Für event ist nur einer der folgenden Werte zulässig: |
|
driveOffEvent |
Das Ereignis „Wegfahren“. |
crewInterjectionEvent |
Das Ereignis für die Crew-Unterbrechung. |
updateOrderStateEvent |
Eine clientseitige Aktualisierung des Bestellstatus. |
clientEscalationEvent |
Ein clientseitiges Eskalierungsereignis. |
customizedInputEvent |
Ein benutzerdefiniertes Eingabeereignis. |
callerHangupEvent |
Optional. Ein Anrufer legt auf. |
posErrorInput |
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 |
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 |
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 ( |
| Felder | |
|---|---|
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 |
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 |
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[] |
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[] |
Optional. Eindeutige Artikel-UIDs, die vom Food Ordering AI Agent generiert wurden und den Fehler verursacht haben. Entspricht |
affectedExternalIds[] |
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 |
metadata |
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 |
ClientExecutionResult
Das Ergebnis einer Clientausfü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 Abrufens der Bestellpreise. |
validateDeliveryAddressResponse |
Das Ergebnis der Validierung der Lieferadresse. |
orderStatusResponse |
Das Ergebnis des Abrufens des Bestellstatus. |
FinalizeOrderResponse
Das Ergebnis des Abschlusses der Bestellung.
| JSON-Darstellung |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Felder | |
|---|---|
paymentFlowEnabled |
Optional. Gibt an, ob der Zahlungsabwicklungsvorgang im Agent aktiviert werden soll. |
paymentInfo |
Optional. Die Zahlungsinformationen des Kunden. Wird nicht ausgeführt, wenn „paymentFlowEnabled“ auf „false“ gesetzt ist. |
totalAmountDue |
Optional. Der für die Bestellung fällige Gesamtbetrag. |
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 eingereicht 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 Abrufens der Bestellpreise.
| JSON-Darstellung |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Felder | |
|---|---|
success |
Erforderlich. Gibt an, ob die Bestellpreise erfolgreich abgerufen wurden. |
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 ( |
| Felder | |
|---|---|
success |
Erforderlich. Gibt an, ob die Validierung ohne Fehler abgeschlossen wurde. |
validationStatus |
Erforderlich. Der Bestätigungsstatus der Lieferadresse. |
OrderStatusResponse
Das Ergebnis des Abrufens des Bestellstatus.
| JSON-Darstellung |
|---|
{ "success": boolean } |
| Felder | |
|---|---|
success |
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 |
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 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 ( |
| 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-through-Spur. |
enableEchoCancellation |
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 |
Optional. Tageszeit der Speisekarte, z. B. Frühstück, Mittagessen, Abendessen. Damit wird bestimmt, welche Speisekarte für die Bestellung verwendet werden soll. |
userInfo |
Optional. Die personenbezogenen Daten des Endnutzers, die mit dem Kundenservicemitarbeiter geteilt werden. |
orderType |
Optional. Eingestellt: Verwenden Sie stattdessen „initialOrder.fulfillment.fulfillment_type“. Der Typ der zu platzierenden Bestellung. |
initialOrder |
Optional. Die ursprüngliche Bestellung vor dem Start der Agent-Sitzung. Falls angegeben, wird der KI-Agent ihn als anfänglichen Bestellstatus verwenden. |
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 Kunden, mit der die Unterhaltung beginnt. Falls angegeben, verwendet der Agent diese als erste Nutzerinteraktion, und beginnt nicht mit einer Begrüßungsnachricht. |
clientAppInfo |
Optional. Informationen zur Clientanwendung und Geräteumgebung. |
mode |
Optional. Der Modus der Sitzung. |
channelType |
Optional. Der Typ des Kanals, der für die Kommunikation mit dem Kundenservicemitarbeiter verwendet wird. |
enableListenOnlyDualChannel |
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 |
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: |
UserInfo
Personenbezogene Daten des Endnutzers, die mit dem Food KI-Agent geteilt werden.
| JSON-Darstellung |
|---|
{ "preferredName": string, "paymentInfo": { object ( |
| Felder | |
|---|---|
preferredName |
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 |
Optional. Die Zahlungsinformationen des Nutzers. |
deliveryAddress |
Optional. Eingestellt: Verwenden Sie stattdessen „savedDeliveryAddress“. Die gespeicherte Lieferadresse des Nutzers. |
pastOrders[] |
Optional. Der Bestellverlauf des Nutzers. |
loyaltyInfo |
Optional. Die Treuepunkte 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 Feld „deliveryAddress“ vom Typ „String“. |
PastOrder
Die letzte Bestellung des Nutzers.
| JSON-Darstellung |
|---|
{
"order": {
object ( |
| Felder | |
|---|---|
order |
Erforderlich. Die ursprüngliche Food AI-Bestellung. |
LoyaltyInfo
Represents a customer's loyalty information.
| JSON-Darstellung |
|---|
{
"loyaltyAmount": {
object ( |
| Felder | |
|---|---|
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 |
Optional. Bei einer eingeschränkten Zielgruppe ist die Angebots-Engine im Zahlungsablauf optional und wird nur ausgelöst, wenn Nutzer sie anfordern. |
triggerLoyaltyOnDemand |
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 |
Optional. Bei einer eingeschränkten Zielgruppe ist der Media-Assistent optional und wird nur ausgelöst, wenn Nutzer ihn anfordern. |
menuResponseEnabled |
Optional. Gibt die Menüdaten an den Client in BidiProcessOrderResponse zurück, sofern festgelegt. |
revampedPaymentFlowEnabled |
Optional. Nur für eine begrenzte Zielgruppe. Wenn festgelegt, wird 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. Sie 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“ oder „Kiosk v2“. |
osVersion |
Optional. Die Betriebssystemversion des Clients, z.B. „iOS 16.1“ oder „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 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 |
| Felder | |
|---|---|
Union-Feld response. Die Antwort des Agenten. Für response ist nur einer der folgenden Werte zulässig: |
|
agentAudio |
Die Audioantwort des KI-Agenten. |
speechRecognition |
Das Spracherkennungsergebnis des Agents. |
legacyOrderStateResponse |
Die Antwort mit dem alten Bestellstatus für eine Sitzung. |
interruptionSignal |
Über die Audioeingabe wurde ein Unterbrechungssignal erkannt. |
agentEvent |
Ereignis vom 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 zum Auftrag. |
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 diesen Zug gemessene Echtzeit-Sentimentwert. |
turnCompleted |
Nachricht „Turn abgeschlossen“. |
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:
|
recommendedOrders |
Die vom Agent empfohlenen Bestellungen. |
AgentAudio
Die Audioantwort des KI-Agenten.
| JSON-Darstellung |
|---|
{ "agentAudio": string } |
| Felder | |
|---|---|
agentAudio |
Die Audiodaten des Agenten. Ein base64-codierter String. |
SpeechRecognition
Das Spracherkennungsergebnis des Agents.
| 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 sollte im BCP-47-Format angegeben werden, z. B. „en-US“. |
isFinal |
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 |
| Felder | |
|---|---|
Union-Feld event. Das Ereignis vom Agenten. Für event ist nur einer der folgenden Werte zulässig: |
|
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 |
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 |
| Felder | |
|---|---|
executionId |
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 |
Ein Request zum Abschließen der Bestellung. |
submitOrderRequest |
Ein Request zum Einreichen der Bestellung. |
orderPricesRequest |
Ein Request zum Abrufen der Auftragspreise. |
validateDeliveryAddressRequest |
Eine Anfrage zur Bestätigung der Lieferadresse. |
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 ( |
| Felder | |
|---|---|
paymentInfo |
Erforderlich. Die Zahlungsinformationen für die Bestellung. |
loyaltyInfo |
Optional. Die für die Bestellung verwendeten Treuepunkte. |
tipAmount |
Optional. Der Trinkgeldbetrag für die Bestellung. |
OrderPricesRequest
Ein Request zum Abrufen der Auftragspreise.
| JSON-Darstellung |
|---|
{
"order": {
object ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
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 ( |
| Felder | |
|---|---|
order |
Der aktualisierte Status des Auftrags, der dieser Sitzung zugeordnet 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 von vorgeschlagenen 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 mit 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 Elements im Menü. |
displayName |
Menschenlesbarer Name für diesen Begriff, 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. Das ist der Preis pro Einheit des Artikels. |
integrationAttributes |
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 ( |
| Felder | |
|---|---|
modifiers[] |
Die Modifikatoren, die dem Kunden vorgeschlagen werden sollen. |
parentUid |
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 ( |
| Felder | |
|---|---|
modifierId |
ID des Modifikators im Menü. |
modifierGroupId |
ID der Modifikatorgruppe, der dieser Modifikator hinzugefügt werden soll, wenn der Vorschlag akzeptiert wird. |
modifierGroupDisplayName |
Anzeigename der Modifikatorgruppe, zu der dieser Modifikator gehört. |
displayName |
Menschenlesbarer Name für diesen Begriff, 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. Das ist der Preis pro Einheit des Modifikators. |
integrationAttributes |
Metadaten, die dieser Entität zugeordnet sind und für Downstream-Integrationen verwendet werden. |
alreadyIncluded |
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 ( |
| 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 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 |
Optional. Stimmungswert zwischen -1,0 (negative Stimmung) und 1,0 (positive Stimmung). |
magnitude |
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 ( |
| 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 eine intransparente String-Nutzlast, die den POS-Transaktionsstatus darstellt. |
agentResponse |
Optional. Die endgültige Antwortnachricht des Agents, die dem Nutzer vorgelesen oder angezeigt werden soll (optional). |
storeSchedule |
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 ( |
| Felder | |
|---|---|
recommendedOrders[] |
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 ( |
| Felder | |
|---|---|
order |
Die empfohlene Reihenfolge, in der die Elemente dem Nutzer angezeigt werden sollen. |