- בקשת HTTP
- פרמטרים של נתיבים
- גוף הבקשה
- גוף התשובה
- היקפי הרשאות
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- Config
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- LoyaltyInfo
- LoyaltyAmount
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
מבצע לוגיקה של תור יחיד כדי לעבד את קלט של משתמשים ולהחזיר את התוצאה.
בקשת HTTP
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
כתובת ה-URL כתובה בתחביר של gRPC Transcoding.
פרמטרים של נתיב
| פרמטרים | |
|---|---|
config.session |
חובה. הסשן של ההזמנה. פורמט: |
גוף הבקשה
גוף הבקשה מכיל נתונים במבנה הבא:
| ייצוג ב-JSON |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean }, "clientAppInfo": { "deviceModel": string, "osVersion": string, "sdkVersion": string }, "mode": enum ( |
| שדות | |
|---|---|
config.store |
חובה. החנות שבה מתבצעת ההזמנה. פורמט: |
config.laneId |
זה שינוי אופציונלי. המזהה של נתיב ספציפי לנסיעה ברכב. |
config.enableEchoCancellation |
זה שינוי אופציונלי. האם להפעיל ביטול הד בסשן. אם האפשרות הזו מופעלת, הלקוח צריך לספק את customerAudio ואת crewAudio ב-AudioInput. |
config.daypartId |
זה שינוי אופציונלי. חלק מהיום שבו התפריט זמין, כולל ארוחת בוקר, צהריים, ערב וכו'. המידע הזה משמש לקביעת התפריט שבו יש להשתמש להזמנה. |
config.featureGate |
זה שינוי אופציונלי. שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן. |
config.clientAppInfo |
זה שינוי אופציונלי. המידע על אפליקציית הלקוח וסביבת המכשיר. |
config.mode |
זה שינוי אופציונלי. מצב הסשן. |
config.channelType |
זה שינוי אופציונלי. סוג הערוץ שמשמש לתקשורת עם נציג. |
config.enableListenOnlyDualChannel |
זה שינוי אופציונלי. האם להפעיל את האפשרות 'ערוץ כפול לצפייה בלבד' בסשן. אם ההגדרה הזו מופעלת, הלקוח צריך לספק את customerAudio ו-crewAudio ב-AudioInput, ו-CES יבצע EAC וסיכום בשרת לעיבוד מדיה. |
config.testSessionStartTime |
זה שינוי אופציונלי. זמן ההתחלה של הסשן, שמשמש למטרות בדיקה או הערכה. הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
turnType |
זה שינוי אופציונלי. אינדיקטור מפורש של מיקום הבקשה במחזור החיים של הסשן. מאפשר ללקוחות לשלוט באופן דטרמיניסטי בהחדרה של משתני הגדרת הסשן הראשוני. |
שדה איחוד input. הקלט מהלקוח. הערך input יכול להיות רק אחד מהבאים: |
|
textInput |
קלט הטקסט מהלקוח. |
audioInput |
קלט האודיו מהלקוח. |
eventInput |
נתוני האירוע שהתקבלו מהלקוח. |
clientExecutionResult |
התוצאה של בקשת ביצוע של לקוח. |
blobInput |
קלט כללי של נתונים בינאריים. Mirrors http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
גוף התשובה
הודעת תגובה ל-FoodOrderingService.ProcessOrder. מכיל פונקציונלית של שדות מ-BidiProcessOrderResponse, ללא שדות שספציפיים לסטרימינג.
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:
| ייצוג ב-JSON |
|---|
{
"responses": [
{
object ( |
| שדות | |
|---|---|
responses[] |
פלט בלבד. רשימת התשובות של הסוכן לבקשה, שמוחזרות לפי הסדר. |
היקפי הרשאות
נדרש היקף ההרשאות הבא של OAuth:
https://www.googleapis.com/auth/cloud-platform
ניתן למצוא מידע נוסף כאן: Authentication Overview.
TextInput
קלט הטקסט מהלקוח. במקום אודיו, הלקוח יכול גם לשלוח לנציג קלט טקסט. הלקוח צריך להשתמש בקלט טקסט או בקלט אודיו, ולא בשניהם.
| ייצוג ב-JSON |
|---|
{ "text": string } |
| שדות | |
|---|---|
text |
חובה. ההבעה המילולית מהלקוח. |
AudioInput
קלט האודיו מהלקוח. יכול להיות שלקלט האודיו יהיו כמה ערוצים ללקוח, לצוות וכו'. כולם צריכים להיות מסונכרנים ובפורמט שצוין בהגדרות. אין לכלול כותרות של אודיו. כברירת מחדל, האודיו צריך להיות עם קידוד אודיו PCM ליניארי של 16 ביט ותדירות דגימה של 16,000 הרץ. הגודל הכולל בבייטים מכל הערוצים צריך להיות קטן מ-25,600 בייטים.
| ייצוג ב-JSON |
|---|
{ "customerAudio": string, "crewAudio": string } |
| שדות | |
|---|---|
customerAudio |
חובה. נתוני אודיו של לקוחות. מחרוזת בקידוד Base64. |
crewAudio |
זה שינוי אופציונלי. נתוני אודיו של הצוות. זהו ערוץ אודיו אופציונלי לחבר הצוות שנמצא באותו נתיב כמו הלקוח, והוא משמש כאודיו הייחוס לביטול ההד. מחרוזת בקידוד Base64. |
EventInput
נתוני האירוע שהתקבלו מהלקוח. הפרמטר הזה משמש להפעלת אירועים ספציפיים בתוך הסוכן.
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד event. המזהה הבא: 10 האירוע להפעלה. הערך event יכול להיות רק אחד מהבאים: |
|
driveOffEvent |
אירוע היציאה לנסיעה. |
crewInterjectionEvent |
אירוע ההתפרצות של הצוות. |
updateOrderStateEvent |
עדכון של מצב ההזמנה בצד הלקוח. |
clientEscalationEvent |
אירוע העברה לטיפול בדרג גבוה יותר מצד הלקוח. |
callerHangupEvent |
זה שינוי אופציונלי. אירוע של ניתוק שיחה על ידי המתקשר. |
posErrorInput |
זה שינוי אופציונלי. אירוע שגיאה ב-POS. |
DriveOffEvent
אירוע היציאה לנסיעה. האירוע הזה מציין שהלקוח עזב את התחנה. הסשן ייסגר אחרי האירוע הזה.
| ייצוג ב-JSON |
|---|
{ "reason": string } |
| שדות | |
|---|---|
reason |
זה שינוי אופציונלי. הסיבה לנסיעה ללא תשלום, למשל: 'ההזמנה הושלמה', 'נסיעה לא צפויה ללא תשלום'. |
CrewInterjectionEvent
אירוע ההתפרצות של הצוות. הסימן הזה מציין שאחד מאנשי הצוות התערב בסשן. הסשן ייסגר אחרי האירוע הזה.
| ייצוג ב-JSON |
|---|
{ "mode": string } |
| שדות | |
|---|---|
mode |
זה שינוי אופציונלי. המצב שבו חבר הצוות התערב, לדוגמה, 'אוזניות', 'קופה'. |
OrderStateUpdateEvent
בקשה לעדכון סטטוס ההזמנה. צריך לשלוח את האירוע הזה כשההזמנה מתעדכנת בצד הלקוח, למשל כשמוסיפים פריט או מסירים פריט דרך ממשק מגע רגיל.
| ייצוג ב-JSON |
|---|
{
"order": {
object ( |
| שדות | |
|---|---|
order |
חובה. הסטטוס המעודכן של ההזמנה שמשויכת לסשן הזה. |
ClientEscalationEvent
מציין שהלקוח מעביר את הסשן לנציג תמיכה אנושי.
| ייצוג ב-JSON |
|---|
{ "reason": string } |
| שדות | |
|---|---|
reason |
זה שינוי אופציונלי. הסיבה להעברה להמשך טיפול בצד הלקוח, למשל payment-declined, pos-error, integration-error וכו'. |
CallerHangupEvent
בסוג הזה אין שדות.
מציין שהלקוח ניתק את השיחה לפני הזמן (למשל, בגלל חוסר אמון ב-AI).
PosErrorEvent
כשלים ספציפיים בנקודת המכירה (POS).
| ייצוג ב-JSON |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| שדות | |
|---|---|
errorMessages[] |
זה שינוי אופציונלי. רשימה של תיאורים של השגיאות שכתובים בצורה שקריאה לאנשים. יכול להיות שיוצגו כמה הודעות שגיאה אם מתרחשות כמה בעיות בו-זמנית (למשל, אם כמה פריטים חסרים במלאי) או כדי לספק פירוט מפורט יותר של כשל מורכב אחד. יכול להיות שהסוכן ישתמש בהודעות האלה כדי לעדכן את הלקוח או למטרות רישום ביומן. |
affectedItemUids[] |
זה שינוי אופציונלי. מזהי פריטים ייחודיים שנוצרו על ידי סוכן ה-AI להזמנה ממסעדות וגרמו לשגיאה. תואם ל- |
affectedExternalIds[] |
זה שינוי אופציונלי. רשימת מזהים חיצוניים (מהתפריט) שגרמו לשגיאה. הערך צריך להיות שווה למספר הנציגים בפועל בקופה, שבדרך כלל מופיע במאפייני השילוב בתפריט proto (למשל, ב- |
metadata |
זה שינוי אופציונלי. מטא-נתונים חופשיים לניפוי באגים או לאיתות ספציפי למותג. אפשר להשתמש במאפיין הזה כדי להעביר קודי שגיאה או קטגוריות ספציפיות למותג (למשל, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). אובייקט שמכיל רשימה של |
ClientExecutionResult
התוצאה של בקשת ביצוע של לקוח.
| ייצוג ב-JSON |
|---|
{ "executionId": string, // Union field |
| שדות | |
|---|---|
executionId |
חובה. המזהה של בקשת ההפעלה שאליה מתייחסת התוצאה. |
שדה איחוד response. התוצאה הספציפית של ההרצה. הערך response יכול להיות רק אחד מהבאים: |
|
finalizeOrderResponse |
התוצאה של סיום ההזמנה. |
orderPricesResponse |
התוצאה של קבלת מחירי ההזמנה. |
validateDeliveryAddressResponse |
התוצאה של אימות הכתובת למשלוח. |
orderStatusResponse |
התוצאה של קבלת סטטוס ההזמנה. |
FinalizeOrderResponse
התוצאה של סיום ההזמנה.
| ייצוג ב-JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| שדות | |
|---|---|
paymentFlowEnabled |
זה שינוי אופציונלי. האם להפעיל את תהליך הטיפול בתשלומים בסוכן. |
paymentInfo |
זה שינוי אופציונלי. פרטי התשלום של הלקוח. לא מתבצעת פעולה אם paymentFlowEnabled הוא false. |
totalAmountDue |
זה שינוי אופציונלי. הסכום הכולל לתשלום על ההזמנה. |
orderPriceInfo |
זה שינוי אופציונלי. מידע מפורט על המחיר של ההזמנה. |
PaymentInfo
פרטי התשלום של המשתמש.
| ייצוג ב-JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| שדות | |
|---|---|
creditCardLastFourDigits |
זה שינוי אופציונלי. ארבע הספרות האחרונות של כרטיס האשראי. הוא משמש לאימות מספר כרטיס האשראי בשלב התשלום. |
creditCardCvv |
זה שינוי אופציונלי. קוד האימות (CVV) של כרטיס האשראי. |
paymentMethod |
זה שינוי אופציונלי. סוג אמצעי התשלום ששימש לביצוע העסקה. |
PaymentMethod
סוג אמצעי התשלום.
| טיפוסים בני מנייה (enum) | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
אמצעי התשלום לא צוין. |
PAYMENT_METHOD_CREDIT_CARD |
כרטיס אשראי. |
PAYMENT_METHOD_CASH |
מזומן. |
OrderPricesResponse
התוצאה של קבלת מחירי ההזמנה.
| ייצוג ב-JSON |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| שדות | |
|---|---|
success |
חובה. האם המחירים של ההזמנה אוחזרו בהצלחה. |
orderPriceInfo |
זה שינוי אופציונלי. המחיר הכולל של ההזמנה אחרי כל ההנחות, העמלות, המיסים וכו' |
ValidateDeliveryAddressResponse
התוצאה של אימות הכתובת למשלוח.
| ייצוג ב-JSON |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| שדות | |
|---|---|
success |
חובה. האם האימות הושלם ללא שגיאה. |
validationStatus |
חובה. סטטוס האימות של הכתובת למשלוח. |
OrderStatusResponse
התוצאה של קבלת סטטוס ההזמנה.
| ייצוג ב-JSON |
|---|
{ "success": boolean } |
| שדות | |
|---|---|
success |
חובה. האם סטטוס ההזמנה אוחזר בהצלחה. |
Blob
מייצג קלט או פלט של blob בשיחה.
| ייצוג ב-JSON |
|---|
{ "mimeType": string, "data": string } |
| שדות | |
|---|---|
mimeType |
חובה. סוג ה-MIME התקני של IANA של נתוני המקור. |
data |
חובה. בייטים גולמיים של ה-blob. מחרוזת בקידוד Base64. |
הגדרה
ההגדרה של סשן ומאפיינים של הזמנת אוכל. בתחילת כל חיבור, הלקוח חייב לשלוח קודם הודעת הגדרה. הפעולה הזו חייבת להתבצע לפני כל בקשה אחרת להפעלת הסשן. אם הלקוח מתנתק, הוא צריך לחזור על אותה הודעת הגדרה כשהוא מתחבר מחדש.
| ייצוג ב-JSON |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { object ( |
| שדות | |
|---|---|
session |
חובה. הסשן של ההזמנה. פורמט: |
store |
חובה. החנות שבה מתבצעת ההזמנה. פורמט: |
laneId |
זה שינוי אופציונלי. המזהה של נתיב ספציפי לנסיעה ברכב. |
enableEchoCancellation |
זה שינוי אופציונלי. האם להפעיל ביטול הד בסשן. אם האפשרות הזו מופעלת, הלקוח צריך לספק את customerAudio ואת crewAudio ב-AudioInput. |
daypartId |
זה שינוי אופציונלי. חלק מהיום שבו התפריט זמין, כולל ארוחת בוקר, צהריים, ערב וכו'. המידע הזה משמש לקביעת התפריט שבו יש להשתמש להזמנה. |
featureGate |
זה שינוי אופציונלי. שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן. |
clientAppInfo |
זה שינוי אופציונלי. המידע על אפליקציית הלקוח וסביבת המכשיר. |
mode |
זה שינוי אופציונלי. מצב הסשן. |
channelType |
זה שינוי אופציונלי. סוג הערוץ שמשמש לתקשורת עם נציג. |
enableListenOnlyDualChannel |
זה שינוי אופציונלי. האם להפעיל את האפשרות 'ערוץ כפול לצפייה בלבד' בסשן. אם ההגדרה הזו מופעלת, הלקוח צריך לספק את customerAudio ו-crewAudio ב-AudioInput, ו-CES יבצע EAC וסיכום בשרת לעיבוד מדיה. |
testSessionStartTime |
זה שינוי אופציונלי. זמן ההתחלה של הסשן, שמשמש למטרות בדיקה או הערכה. הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
FeatureGate
שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן.
| ייצוג ב-JSON |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| שדות | |
|---|---|
menuResponseEnabled |
זה שינוי אופציונלי. מחזירה את נתוני התפריט ללקוח ב-BidiProcessOrderResponse אם היא מוגדרת. |
updatedOrderStateEnabled |
זה שינוי אופציונלי. אם ההגדרה הזו מוגדרת, מוחזר updatedOrderState במקום legacyOrderStateResponse. |
enableOrderStatusRetrieval |
זה שינוי אופציונלי. אם ההגדרה מוגדרת, הסוכן יתמוך באחזור של סטטוס ההזמנה. |
ClientAppInfo
מידע על אפליקציית הלקוח וסביבת המכשיר. הוא משמש בעיקר לרישום ביומן, לניתוח ולניפוי באגים.
| ייצוג ב-JSON |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| שדות | |
|---|---|
deviceModel |
זה שינוי אופציונלי. דגם המכשיר של הלקוח (לדוגמה, iPhone 13, Pixel 7, Kiosk v2). |
osVersion |
זה שינוי אופציונלי. גרסת מערכת ההפעלה של הלקוח (למשל, iOS 16.1 או Android 13). |
sdkVersion |
זה שינוי אופציונלי. גרסת ה-SDK של הלקוח או תוכנת האפליקציה. |
SessionMode
מצב הסשן.
| טיפוסים בני מנייה (enum) | |
|---|---|
SESSION_MODE_UNSPECIFIED |
לא צוין מצב הפעילות. |
HYBRID |
במהלך הסשן אפשר לשמוע אתכם ולראות אתכם, וגם לכתוב לכם. (זוהי ברירת המחדל) |
TEXT |
הסשן הוא טקסט בלבד. |
TurnType
מייצג את המיקום במחזור החיים של בקשה אוניטרית בתוך סשן.
| טיפוסים בני מנייה (enum) | |
|---|---|
TURN_TYPE_UNSPECIFIED |
סוג הפנייה לא צוין. |
INITIALIZE |
מציין במפורש שהבקשה הזו מאתחלת את הסשן במצב unary. כשמגדירים את האפשרות הזו, משתני סשן ראשוניים (למשל, מטא-נתונים ותפריטים של חנות) מוזרקים ל-CES. |
SUBSEQUENT |
מציין באופן מפורש תור שיחה עוקב או עדכון באמצע הסשן. כשמגדירים את המדיניות הזו, משמיטים את משתני הסשן הראשוניים כדי למנוע התרחבות של טוקן הקלט. |
BidiProcessOrderResponse
ההודעה ברמה העליונה שמוחזרת מהשיטה FoodOrderingService.BidiProcessOrder.
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד response. התשובה מהסוכן. הערך response יכול להיות רק אחד מהבאים: |
|
agentAudio |
תשובה קולית מהסוכן. |
speechRecognition |
תוצאת זיהוי הדיבור מהסוכן. |
legacyOrderStateResponse |
תגובת מצב ההזמנה מדור קודם לסשן. |
interruptionSignal |
אות הפרעה זוהה מקלט האודיו. |
agentEvent |
אירוע מהסוכן. |
clientExecutionRequest |
הבקשה מועברת ללקוח לביצוע. המשתנה הזה משמש לביצוע בצד הלקוח, כמו הוספת קוד להזמנה. |
updatedOrderState |
מציין עדכון בסטטוס ההזמנה. כולל את הסטטוס המלא של ההזמנה. |
agentText |
תשובה כתובה מהסוכן. |
suggestedOptions |
אפשרויות להצעה ללקוח. |
sentimentMeasurement |
ציון הסנטימנט בזמן אמת שנמדד בתור הזה. |
turnCompleted |
הודעה על השלמת הפעולה. |
endSession |
מציין שהסשן מסתיים, ושהתור הזה יהיה האחרון. הנציג יסיים לשלוח את כל התשובות שממתינות לתור הנוכחי, ואז ישלח הודעה סופית turnCompleted. הנציג לא יתחיל תורות חדשים. לדוגמה, שיחה עם 2 תורות תיראה כך:
|
AgentAudio
תשובה קולית מהסוכן.
| ייצוג ב-JSON |
|---|
{ "agentAudio": string } |
| שדות | |
|---|---|
agentAudio |
נתוני האודיו מהסוכן. מחרוזת בקידוד Base64. |
SpeechRecognition
תוצאת זיהוי הדיבור מהסוכן.
| ייצוג ב-JSON |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| שדות | |
|---|---|
transcript |
טקסט מתומלל מקלט האודיו בשפה שזוהתה. |
languageCode |
קוד השפה של התמליל. קוד השפה צריך להיות בפורמט BCP-47, למשל en-US. |
isFinal |
מציין אם זה התמליל הסופי של התור. |
InterruptionSignal
בסוג הזה אין שדות.
מציין שהתגובה הקולית של הסוכן הופרעה (לדוגמה, על ידי התפרצות של משתמש הקצה). הלקוח צריך להפסיק את ההפעלה באופן מיידי.
AgentEvent
אירוע מיוחד מהנציג שדורש מהלקוח לבצע פעולה.
| ייצוג ב-JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד event. האירוע מהסוכן. הערך event יכול להיות רק אחד מהבאים: |
|
restartOrder |
הלקוח מבקש להפעיל מחדש את ההזמנה. |
RestartOrder
הלקוח מבקש להתחיל מחדש את ההזמנה.
| ייצוג ב-JSON |
|---|
{ "confirmationStep": boolean } |
| שדות | |
|---|---|
confirmationStep |
הסוכן מבקש מהלקוח לאשר את בקשת ההפעלה מחדש. |
ClientExecutionRequest
בקשה לצד הלקוח להפעיל פקודה.
| ייצוג ב-JSON |
|---|
{ "executionId": string, // Union field |
| שדות | |
|---|---|
executionId |
חובה. מזהה ייחודי של בקשת ההפעלה הזו. |
שדה איחוד request. הבקשה הספציפית שרוצים לבצע. הערך request יכול להיות רק אחד מהבאים: |
|
finalizeOrderRequest |
בקשה לסיום ההזמנה. |
submitOrderRequest |
בקשה לשליחת ההזמנה. |
orderPricesRequest |
בקשה לקבלת מחירי ההזמנה. |
validateDeliveryAddressRequest |
בקשה לאימות הכתובת למשלוח. |
orderStatusRequest |
בקשה לקבלת סטטוס ההזמנה. |
FinalizeOrderRequest
בסוג הזה אין שדות.
בקשה לסיום ההזמנה. ההודעה הזו נשלחת בדרך כלל על ידי הנציג כשהלקוח מציין שהוא סיים להזמין ורוצה לשלם.
SubmitOrderRequest
בקשה לשליחת ההזמנה, עם כל פרטי התשלום הנדרשים שנאספו מהלקוח.
| ייצוג ב-JSON |
|---|
{ "paymentInfo": { object ( |
| שדות | |
|---|---|
paymentInfo |
חובה. פרטי התשלום של ההזמנה. |
loyaltyInfo |
זה שינוי אופציונלי. נקודות המועדון שמומשו בהזמנה. |
tipAmount |
זה שינוי אופציונלי. סכום הטיפ בהזמנה. |
LoyaltyInfo
מייצג את פרטי מועדון הלקוחות של הלקוח.
| ייצוג ב-JSON |
|---|
{
"loyaltyAmount": {
object ( |
| שדות | |
|---|---|
loyaltyAmount |
חובה. סכום הנקודות במועדון הלקוחות. זה יכול להיות יתרת נאמנות או נאמנות שנצרכה. |
LoyaltyAmount
מייצג את סכום הנאמנות של הלקוח.
| ייצוג ב-JSON |
|---|
{ "units": string } |
| שדות | |
|---|---|
units |
חובה. נקודות המועדון. |
OrderPricesRequest
בקשה לקבלת מחירי ההזמנה.
| ייצוג ב-JSON |
|---|
{
"order": {
object ( |
| שדות | |
|---|---|
order |
זה שינוי אופציונלי. ההזמנה שרוצים לקבל את המחירים שלה. אם לא מציינים את מספר ההזמנה, אפשר להניח שהבקשה מתייחסת להזמנה או לעגלת הקניות הקיימות בסשן. |
ValidateDeliveryAddressRequest
בקשה לאימות כתובת למשלוח שנאספה במהלך הסשן.
| ייצוג ב-JSON |
|---|
{
"deliveryAddress": {
object ( |
| שדות | |
|---|---|
deliveryAddress |
חובה. הכתובת למשלוח שצריך לאמת. |
OrderStatusRequest
בסוג הזה אין שדות.
בקשה לקבלת סטטוס ההזמנה.
UpdatedOrderState
אירוע שמוחזר על ידי הסוכן ומייצג עדכון של סטטוס ההזמנה.
| ייצוג ב-JSON |
|---|
{
"order": {
object ( |
| שדות | |
|---|---|
order |
הסטטוס המעודכן של ההזמנה שמשויכת לסשן הזה. |
changed |
פלט בלבד. אם יש עדכונים בסטטוס ההזמנה. |
AgentText
תשובה כתובה מהסוכן.
| ייצוג ב-JSON |
|---|
{ "text": string } |
| שדות | |
|---|---|
text |
תשובה כתובה מהסוכן. |
SuggestedOptions
אפשרויות להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| שדות | |
|---|---|
suggestedModifierGroups |
קבוצה של משנים מוצעים. |
שדה איחוד suggested_options. האפשרויות המוצעות. הערך suggested_options יכול להיות רק אחד מהבאים: |
|
suggestedItems |
רשימת פריטים להצעה ללקוח. |
suggestedModifiers |
רשימה של שינויים להצעה ללקוח. |
SuggestedItems
רשימת פריטים להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{
"items": [
{
object ( |
| שדות | |
|---|---|
items[] |
הפריטים שיוצעו ללקוח. |
SuggestedItem
פריט להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| שדות | |
|---|---|
itemId |
המזהה של הפריט בתפריט. |
displayName |
שם קריא של הפריט שיוצג בממשקי משתמש. |
image |
התמונה שתוצג לפריט הזה בממשק המשתמש. |
basePrice |
המחיר הבסיסי של הפריט. יכול להיות שההשפעה תהיה שונה בהתאם למשני המיקום שנבחרו. המחיר ליחידה של הפריט. |
integrationAttributes |
מטא-נתונים שמשויכים לישות הזו ומשמשים לשילובים במורד הזרם. |
SuggestedModifiers
רשימה של שינויים להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{
"modifiers": [
{
object ( |
| שדות | |
|---|---|
modifiers[] |
המשנים שיוצעו ללקוח. |
parentUid |
המזהה הייחודי של פריט האב או של התוסף שאליו רוצים להחיל את התוספים. |
SuggestedModifier
שינוי להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| שדות | |
|---|---|
modifierId |
המזהה של התוסף בתפריט. |
modifierGroupId |
המזהה של קבוצת המשנים שאליה צריך להוסיף את המשנה הזה אם ההצעה תתקבל. |
modifierGroupDisplayName |
השם המוצג של קבוצת התוספים שאליה התוסף הזה משתייך. |
displayName |
שם קריא של הפריט שיוצג בממשקי משתמש. |
image |
התמונה שתוצג לפריט הזה בממשק המשתמש. |
priceAdjustment |
התאמת המחיר שמשויכת לשינוי הזה, אם יש. המחיר ליחידה של התוסף. |
integrationAttributes |
מטא-נתונים שמשויכים לישות הזו ומשמשים לשילובים במורד הזרם. |
alreadyIncluded |
אם התוסף הזה כבר כלול בהזמנה. |
SuggestedModifierGroups
רשימה של קבוצות משנים להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{
"modifierGroups": [
{
object ( |
| שדות | |
|---|---|
modifierGroups[] |
קבוצות התוספים להצעה ללקוח. |
SuggestedModGroup
קבוצת משני מחירים להצעה ללקוח.
| ייצוג ב-JSON |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| שדות | |
|---|---|
modifierGroupId |
המזהה של קבוצת התוספים בתפריט. |
displayName |
השם המוצג של קבוצת שינוי המחירים. |
modifiers[] |
המשנים בקבוצה הזו. |
maxSelectionCount |
המספר המקסימלי של משנים שאפשר לבחור מהקבוצה הזו. |
minSelectionCount |
מספר מקשי הצירוף המינימלי שצריך לבחור מהקבוצה הזו. |
maxSelectionCountPerModifier |
מגבילה את מספר הפעמים שבהן אפשר להחיל כל משנה בקבוצה הזו. |
SentimentMeasurement
ציון הסנטימנט בזמן אמת שנמדד בתור הזה.
| ייצוג ב-JSON |
|---|
{ "score": number, "magnitude": number } |
| שדות | |
|---|---|
score |
זה שינוי אופציונלי. ציון הסנטימנט בין -1.0 (סנטימנט שלילי) ל-1.0 (סנטימנט חיובי). |
magnitude |
זה שינוי אופציונלי. עוצמת הסנטימנט, בלי קשר לציון. |
TurnCompleted
בסוג הזה אין שדות.
מציין שנציג ה-AI בתחום המזון זיהה את סוף תור השיחה הנוכחי ולא יספק פלט נוסף בתור הזה.
EndSession
הערך מציין שהסוכן סיים את הסשן, בגלל השלמה מוצלחת (למשל, המשתמש אומר "להתראות!" ) או להעביר את השיחה לנציג.
| ייצוג ב-JSON |
|---|
{ "type": enum ( |
| שדות | |
|---|---|
type |
סוג האירוע של סיום הסשן. |
reason |
הסיבה לסיום הסשן. |
posResponse |
זה שינוי אופציונלי. התגובה של מערכת ה-POS לאחר ביצוע הצ'ק-אין להזמנה (אופציונלי). מטען ייעודי (payload) של מחרוזת אטומה שמייצג את סטטוס העסקה בנקודת המכירה. |
agentResponse |
זה שינוי אופציונלי. ההודעה הסופית של הסוכן שתוצג למשתמש או תושמע לו (אופציונלי). |
storeSchedule |
זה שינוי אופציונלי. לוח הזמנים של החנות. השדה הזה מוגדר רק אם סוג הסיום הוא STORE_CLOSED. |
EndType
סוג האירוע של סיום הסשן.
| טיפוסים בני מנייה (enum) | |
|---|---|
END_TYPE_UNSPECIFIED |
לא צוין סוג הסיום. |
DRIVE_OFF |
הלקוח נסע. |
AGENT_ESCALATION |
הסוכן העביר את הסשן לטיפול ברמה גבוהה יותר אצל נציג תמיכה אנושי. |
CREW_INTERJECTION |
חבר צוות התפרץ לסשן. |
ORDER_COMPLETED |
ההזמנה הושלמה בהצלחה ולא נדרשת פעולה נוספת. |
PAYMENT_FLOW_SUCCESS |
תהליך התשלום הסתיים בהצלחה ולא צריך לעשות כלום. |
PAYMENT_FLOW_FAILURE |
תהליך התשלום נכשל. |
CLIENT_ESCALATION |
הלקוח העביר את הסשן לטיפול של נציג תמיכה אנושי. |
CALLER_HANGUP |
הלקוח ניתק את השיחה לפני הזמן. |
REQUESTED_CHECKOUT |
הלקוח ביקש לבצע תשלום. |
REQUESTED_ORDER_STATUS |
הלקוח שאל לגבי סטטוס ההזמנה שלו. |
STORE_CLOSED |
החנות סגורה. |