- בקשת 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 |
זה שינוי אופציונלי. ה-Feature Gates של הסשן. הוא משמש להפעלה או להשבתה של תכונות בסשן. |
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 |
קלט של נתונים בינאריים כלליים. מראות 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,000Hz. הגודל הכולל של כל הערוצים צריך להיות קטן מ-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 |
זה שינוי אופציונלי. המצב שבו איש הצוות התערב, למשל "אוזניות", "pos". |
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[] |
זה שינוי אופציונלי. רשימה של מזהים חיצוניים (מהתפריט) שגרמו לשגיאה. הערך צריך להיות זהה לייצוגים בפועל בנקודת המכירה, שבדרך כלל נמצאים במאפייני השילוב ב-menu.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 בשיחה.
| ייצוג ב-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 |
זה שינוי אופציונלי. ה-Feature Gates של הסשן. הוא משמש להפעלה או להשבתה של תכונות בסשן. |
clientAppInfo |
זה שינוי אופציונלי. מידע על אפליקציית הלקוח וסביבת המכשיר. |
mode |
זה שינוי אופציונלי. מצב הסשן. |
channelType |
זה שינוי אופציונלי. סוג הערוץ שמשמש לתקשורת עם הנציג. |
enableListenOnlyDualChannel |
זה שינוי אופציונלי. האם להפעיל ערוץ כפול להאזנה בלבד בסשן. אם ההגדרה מופעלת, הלקוח צריך לספק את customerAudio ו-crewAudio ב-AudioInput, ו-CES יבצע EAC וסיכום בשרת עיבוד המדיה. |
testSessionStartTime |
זה שינוי אופציונלי. שעת ההתחלה של הסשן, שמשמשת למטרות בדיקה או הערכה. השימוש הוא ב-RFC 3339, שבו הפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות אחרי הנקודה העשרונית. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. לדוגמה: |
FeatureGate
ה-Feature Gates של הסשן. הוא משמש להפעלה או להשבתה של תכונות בסשן.
| ייצוג ב-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 |
מציין במפורש שהבקשה הזו מאתחלת את הסשן במצב אונרי. כשההגדרה הזו מופעלת, משתני הסשן הראשוניים (למשל, מטא-נתונים של החנות ותפריטים) מוזרקים ל-CES. |
SUBSEQUENT |
מציין במפורש תור נוסף בשיחה או עדכון באמצע הסשן. כשההגדרה הזו מופעלת, המערכת משמיטה את משתני הסשן הראשוניים כדי למנוע מצב של יותר מדי אסימוני קלט. |
BidiProcessOrderResponse
ההודעה ברמה העליונה שהוחזרה מה-method 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 |
החנות סגורה. |