Method: projects.locations.sessions.processOrder

מבצע לוגיקה של תור יחיד כדי לעבד את קלט של משתמשים ולהחזיר את התוצאה.

בקשת HTTP

POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder

כתובת ה-URL כתובה בתחביר של gRPC Transcoding.

פרמטרים של נתיב

פרמטרים
config.session

string

חובה. הסשן של ההזמנה. פורמט: projects/{project}/locations/{location}/sessions/{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 (SessionMode),
    "channelType": enum (ChannelType),
    "enableListenOnlyDualChannel": boolean,
    "testSessionStartTime": string
  },
  "turnType": enum (TurnType),

  // Union field input can be only one of the following:
  "textInput": {
    object (TextInput)
  },
  "audioInput": {
    object (AudioInput)
  },
  "eventInput": {
    object (EventInput)
  },
  "clientExecutionResult": {
    object (ClientExecutionResult)
  },
  "blobInput": {
    object (Blob)
  }
  // End of list of possible types for union field input.
}
שדות
config.store

string

חובה. החנות שבה מתבצעת ההזמנה. פורמט: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

זה שינוי אופציונלי. המזהה של נתיב ספציפי לנסיעה ברכב.

config.enableEchoCancellation

boolean

זה שינוי אופציונלי. האם להפעיל ביטול הד בסשן. אם האפשרות הזו מופעלת, הלקוח צריך לספק את customerAudio ואת crewAudio ב-AudioInput.

config.daypartId

string

זה שינוי אופציונלי. חלק מהיום שבו התפריט זמין, כולל ארוחת בוקר, צהריים, ערב וכו'. המידע הזה משמש לקביעת התפריט שבו יש להשתמש להזמנה.

config.featureGate

object (FeatureGate)

זה שינוי אופציונלי. שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן.

config.clientAppInfo

object (ClientAppInfo)

זה שינוי אופציונלי. המידע על אפליקציית הלקוח וסביבת המכשיר.

config.mode

enum (SessionMode)

זה שינוי אופציונלי. מצב הסשן.

config.channelType

enum (ChannelType)

זה שינוי אופציונלי. סוג הערוץ שמשמש לתקשורת עם נציג.

config.enableListenOnlyDualChannel

boolean

זה שינוי אופציונלי. האם להפעיל את האפשרות 'ערוץ כפול לצפייה בלבד' בסשן. אם ההגדרה הזו מופעלת, הלקוח צריך לספק את customerAudio ו-crewAudio ב-AudioInput, ו-CES יבצע EAC וסיכום בשרת לעיבוד מדיה.

config.testSessionStartTime

string (Timestamp format)

זה שינוי אופציונלי. זמן ההתחלה של הסשן, שמשמש למטרות בדיקה או הערכה.

הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

turnType

enum (TurnType)

זה שינוי אופציונלי. אינדיקטור מפורש של מיקום הבקשה במחזור החיים של הסשן. מאפשר ללקוחות לשלוט באופן דטרמיניסטי בהחדרה של משתני הגדרת הסשן הראשוני.

שדה איחוד input. הקלט מהלקוח. הערך input יכול להיות רק אחד מהבאים:
textInput

object (TextInput)

קלט הטקסט מהלקוח.

audioInput

object (AudioInput)

קלט האודיו מהלקוח.

eventInput

object (EventInput)

נתוני האירוע שהתקבלו מהלקוח.

clientExecutionResult

object (ClientExecutionResult)

התוצאה של בקשת ביצוע של לקוח.

blobInput

object (Blob)

קלט כללי של נתונים בינאריים. ‫Mirrors http://google3/google/cloud/ces/v1main/session_service.proto?l=720

גוף התשובה

הודעת תגובה ל-FoodOrderingService.ProcessOrder. מכיל פונקציונלית של שדות מ-BidiProcessOrderResponse, ללא שדות שספציפיים לסטרימינג.

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג ב-JSON
{
  "responses": [
    {
      object (BidiProcessOrderResponse)
    }
  ]
}
שדות
responses[]

object (BidiProcessOrderResponse)

פלט בלבד. רשימת התשובות של הסוכן לבקשה, שמוחזרות לפי הסדר.

היקפי הרשאות

נדרש היקף ההרשאות הבא של OAuth:

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

ניתן למצוא מידע נוסף כאן: Authentication Overview.

TextInput

קלט הטקסט מהלקוח. במקום אודיו, הלקוח יכול גם לשלוח לנציג קלט טקסט. הלקוח צריך להשתמש בקלט טקסט או בקלט אודיו, ולא בשניהם.

ייצוג ב-JSON
{
  "text": string
}
שדות
text

string

חובה. ההבעה המילולית מהלקוח.

AudioInput

קלט האודיו מהלקוח. יכול להיות שלקלט האודיו יהיו כמה ערוצים ללקוח, לצוות וכו'. כולם צריכים להיות מסונכרנים ובפורמט שצוין בהגדרות. אין לכלול כותרות של אודיו. כברירת מחדל, האודיו צריך להיות עם קידוד אודיו PCM ליניארי של 16 ביט ותדירות דגימה של 16,000 הרץ. הגודל הכולל בבייטים מכל הערוצים צריך להיות קטן מ-25,600 בייטים.

ייצוג ב-JSON
{
  "customerAudio": string,
  "crewAudio": string
}
שדות
customerAudio

string (bytes format)

חובה. נתוני אודיו של לקוחות.

מחרוזת בקידוד Base64.

crewAudio

string (bytes format)

זה שינוי אופציונלי. נתוני אודיו של הצוות. זהו ערוץ אודיו אופציונלי לחבר הצוות שנמצא באותו נתיב כמו הלקוח, והוא משמש כאודיו הייחוס לביטול ההד.

מחרוזת בקידוד Base64.

EventInput

נתוני האירוע שהתקבלו מהלקוח. הפרמטר הזה משמש להפעלת אירועים ספציפיים בתוך הסוכן.

ייצוג ב-JSON
{

  // Union field event can be only one of the following:
  "driveOffEvent": {
    object (DriveOffEvent)
  },
  "crewInterjectionEvent": {
    object (CrewInterjectionEvent)
  },
  "updateOrderStateEvent": {
    object (OrderStateUpdateEvent)
  },
  "clientEscalationEvent": {
    object (ClientEscalationEvent)
  },
  "callerHangupEvent": {
    object (CallerHangupEvent)
  },
  "posErrorInput": {
    object (PosErrorEvent)
  }
  // End of list of possible types for union field event.
}
שדות
שדה איחוד event. המזהה הבא: 10 האירוע להפעלה. הערך event יכול להיות רק אחד מהבאים:
driveOffEvent

object (DriveOffEvent)

אירוע היציאה לנסיעה.

crewInterjectionEvent

object (CrewInterjectionEvent)

אירוע ההתפרצות של הצוות.

updateOrderStateEvent

object (OrderStateUpdateEvent)

עדכון של מצב ההזמנה בצד הלקוח.

clientEscalationEvent

object (ClientEscalationEvent)

אירוע העברה לטיפול בדרג גבוה יותר מצד הלקוח.

callerHangupEvent

object (CallerHangupEvent)

זה שינוי אופציונלי. אירוע של ניתוק שיחה על ידי המתקשר.

posErrorInput

object (PosErrorEvent)

זה שינוי אופציונלי. אירוע שגיאה ב-POS.

DriveOffEvent

אירוע היציאה לנסיעה. האירוע הזה מציין שהלקוח עזב את התחנה. הסשן ייסגר אחרי האירוע הזה.

ייצוג ב-JSON
{
  "reason": string
}
שדות
reason

string

זה שינוי אופציונלי. הסיבה לנסיעה ללא תשלום, למשל: 'ההזמנה הושלמה', 'נסיעה לא צפויה ללא תשלום'.

CrewInterjectionEvent

אירוע ההתפרצות של הצוות. הסימן הזה מציין שאחד מאנשי הצוות התערב בסשן. הסשן ייסגר אחרי האירוע הזה.

ייצוג ב-JSON
{
  "mode": string
}
שדות
mode

string

זה שינוי אופציונלי. המצב שבו חבר הצוות התערב, לדוגמה, 'אוזניות', 'קופה'.

OrderStateUpdateEvent

בקשה לעדכון סטטוס ההזמנה. צריך לשלוח את האירוע הזה כשההזמנה מתעדכנת בצד הלקוח, למשל כשמוסיפים פריט או מסירים פריט דרך ממשק מגע רגיל.

ייצוג ב-JSON
{
  "order": {
    object (Order)
  }
}
שדות
order

object (Order)

חובה. הסטטוס המעודכן של ההזמנה שמשויכת לסשן הזה.

ClientEscalationEvent

מציין שהלקוח מעביר את הסשן לנציג תמיכה אנושי.

ייצוג ב-JSON
{
  "reason": string
}
שדות
reason

string

זה שינוי אופציונלי. הסיבה להעברה להמשך טיפול בצד הלקוח, למשל payment-declined,‏ pos-error,‏ integration-error וכו'.

CallerHangupEvent

בסוג הזה אין שדות.

מציין שהלקוח ניתק את השיחה לפני הזמן (למשל, בגלל חוסר אמון ב-AI).

PosErrorEvent

כשלים ספציפיים בנקודת המכירה (POS).

ייצוג ב-JSON
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
שדות
errorMessages[]

string

זה שינוי אופציונלי. רשימה של תיאורים של השגיאות שכתובים בצורה שקריאה לאנשים. יכול להיות שיוצגו כמה הודעות שגיאה אם מתרחשות כמה בעיות בו-זמנית (למשל, אם כמה פריטים חסרים במלאי) או כדי לספק פירוט מפורט יותר של כשל מורכב אחד. יכול להיות שהסוכן ישתמש בהודעות האלה כדי לעדכן את הלקוח או למטרות רישום ביומן.

affectedItemUids[]

string

זה שינוי אופציונלי. מזהי פריטים ייחודיים שנוצרו על ידי סוכן ה-AI להזמנה ממסעדות וגרמו לשגיאה. תואם ל-UpdatedOrderState.OrderItem.uid.

affectedExternalIds[]

string

זה שינוי אופציונלי. רשימת מזהים חיצוניים (מהתפריט) שגרמו לשגיאה. הערך צריך להיות שווה למספר הנציגים בפועל בקופה, שבדרך כלל מופיע במאפייני השילוב בתפריט proto (למשל, ב-ItemIntegrationAttributes או ב-ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

זה שינוי אופציונלי. מטא-נתונים חופשיים לניפוי באגים או לאיתות ספציפי למותג. אפשר להשתמש במאפיין הזה כדי להעביר קודי שגיאה או קטגוריות ספציפיות למותג (למשל, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}).

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientExecutionResult

התוצאה של בקשת ביצוע של לקוח.

ייצוג ב-JSON
{
  "executionId": string,

  // Union field response can be only one of the following:
  "finalizeOrderResponse": {
    object (FinalizeOrderResponse)
  },
  "orderPricesResponse": {
    object (OrderPricesResponse)
  },
  "validateDeliveryAddressResponse": {
    object (ValidateDeliveryAddressResponse)
  },
  "orderStatusResponse": {
    object (OrderStatusResponse)
  }
  // End of list of possible types for union field response.
}
שדות
executionId

string

חובה. המזהה של בקשת ההפעלה שאליה מתייחסת התוצאה.

שדה איחוד response. התוצאה הספציפית של ההרצה. הערך response יכול להיות רק אחד מהבאים:
finalizeOrderResponse

object (FinalizeOrderResponse)

התוצאה של סיום ההזמנה.

orderPricesResponse

object (OrderPricesResponse)

התוצאה של קבלת מחירי ההזמנה.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

התוצאה של אימות הכתובת למשלוח.

orderStatusResponse

object (OrderStatusResponse)

התוצאה של קבלת סטטוס ההזמנה.

FinalizeOrderResponse

התוצאה של סיום ההזמנה.

ייצוג ב-JSON
{
  "paymentFlowEnabled": boolean,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
שדות
paymentFlowEnabled

boolean

זה שינוי אופציונלי. האם להפעיל את תהליך הטיפול בתשלומים בסוכן.

paymentInfo

object (PaymentInfo)

זה שינוי אופציונלי. פרטי התשלום של הלקוח. לא מתבצעת פעולה אם paymentFlowEnabled הוא false.

totalAmountDue

object (Money)

זה שינוי אופציונלי. הסכום הכולל לתשלום על ההזמנה.

orderPriceInfo

object (OrderPriceInfo)

זה שינוי אופציונלי. מידע מפורט על המחיר של ההזמנה.

PaymentInfo

פרטי התשלום של המשתמש.

ייצוג ב-JSON
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
שדות
creditCardLastFourDigits

string

זה שינוי אופציונלי. ארבע הספרות האחרונות של כרטיס האשראי. הוא משמש לאימות מספר כרטיס האשראי בשלב התשלום.

creditCardCvv

string

זה שינוי אופציונלי. קוד האימות (CVV) של כרטיס האשראי.

paymentMethod

enum (PaymentMethod)

זה שינוי אופציונלי. סוג אמצעי התשלום ששימש לביצוע העסקה.

PaymentMethod

סוג אמצעי התשלום.

טיפוסים בני מנייה (enum)
PAYMENT_METHOD_UNSPECIFIED אמצעי התשלום לא צוין.
PAYMENT_METHOD_CREDIT_CARD כרטיס אשראי.
PAYMENT_METHOD_CASH מזומן.

OrderPricesResponse

התוצאה של קבלת מחירי ההזמנה.

ייצוג ב-JSON
{
  "success": boolean,
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
שדות
success

boolean

חובה. האם המחירים של ההזמנה אוחזרו בהצלחה.

orderPriceInfo

object (OrderPriceInfo)

זה שינוי אופציונלי. המחיר הכולל של ההזמנה אחרי כל ההנחות, העמלות, המיסים וכו'

ValidateDeliveryAddressResponse

התוצאה של אימות הכתובת למשלוח.

ייצוג ב-JSON
{
  "success": boolean,
  "validationStatus": enum (ValidationStatus)
}
שדות
success

boolean

חובה. האם האימות הושלם ללא שגיאה.

validationStatus

enum (ValidationStatus)

חובה. סטטוס האימות של הכתובת למשלוח.

OrderStatusResponse

התוצאה של קבלת סטטוס ההזמנה.

ייצוג ב-JSON
{
  "success": boolean
}
שדות
success

boolean

חובה. האם סטטוס ההזמנה אוחזר בהצלחה.

Blob

מייצג קלט או פלט של blob בשיחה.

ייצוג ב-JSON
{
  "mimeType": string,
  "data": string
}
שדות
mimeType

string

חובה. סוג ה-MIME התקני של IANA של נתוני המקור.

data

string (bytes format)

חובה. בייטים גולמיים של ה-blob.

מחרוזת בקידוד Base64.

הגדרה

ההגדרה של סשן ומאפיינים של הזמנת אוכל. בתחילת כל חיבור, הלקוח חייב לשלוח קודם הודעת הגדרה. הפעולה הזו חייבת להתבצע לפני כל בקשה אחרת להפעלת הסשן. אם הלקוח מתנתק, הוא צריך לחזור על אותה הודעת הגדרה כשהוא מתחבר מחדש.

ייצוג ב-JSON
{
  "session": string,
  "store": string,
  "laneId": string,
  "enableEchoCancellation": boolean,
  "daypartId": string,
  "featureGate": {
    object (FeatureGate)
  },
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string
}
שדות
session

string

חובה. הסשן של ההזמנה. פורמט: projects/{project}/locations/{location}/sessions/{session}

store

string

חובה. החנות שבה מתבצעת ההזמנה. פורמט: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

זה שינוי אופציונלי. המזהה של נתיב ספציפי לנסיעה ברכב.

enableEchoCancellation

boolean

זה שינוי אופציונלי. האם להפעיל ביטול הד בסשן. אם האפשרות הזו מופעלת, הלקוח צריך לספק את customerAudio ואת crewAudio ב-AudioInput.

daypartId

string

זה שינוי אופציונלי. חלק מהיום שבו התפריט זמין, כולל ארוחת בוקר, צהריים, ערב וכו'. המידע הזה משמש לקביעת התפריט שבו יש להשתמש להזמנה.

featureGate

object (FeatureGate)

זה שינוי אופציונלי. שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן.

clientAppInfo

object (ClientAppInfo)

זה שינוי אופציונלי. המידע על אפליקציית הלקוח וסביבת המכשיר.

mode

enum (SessionMode)

זה שינוי אופציונלי. מצב הסשן.

channelType

enum (ChannelType)

זה שינוי אופציונלי. סוג הערוץ שמשמש לתקשורת עם נציג.

enableListenOnlyDualChannel

boolean

זה שינוי אופציונלי. האם להפעיל את האפשרות 'ערוץ כפול לצפייה בלבד' בסשן. אם ההגדרה הזו מופעלת, הלקוח צריך לספק את customerAudio ו-crewAudio ב-AudioInput, ו-CES יבצע EAC וסיכום בשרת לעיבוד מדיה.

testSessionStartTime

string (Timestamp format)

זה שינוי אופציונלי. זמן ההתחלה של הסשן, שמשמש למטרות בדיקה או הערכה.

הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: "2014-10-02T15:01:23Z", ‏ "2014-10-02T15:01:23.045123456Z" או "2014-10-02T15:01:23+05:30".

FeatureGate

שערי התכונות של הסשן. ההגדרה הזו משמשת להפעלה או להשבתה של תכונות בסשן.

ייצוג ב-JSON
{
  "menuResponseEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean
}
שדות
menuResponseEnabled

boolean

זה שינוי אופציונלי. מחזירה את נתוני התפריט ללקוח ב-BidiProcessOrderResponse אם היא מוגדרת.

updatedOrderStateEnabled

boolean

זה שינוי אופציונלי. אם ההגדרה הזו מוגדרת, מוחזר updatedOrderState במקום legacyOrderStateResponse.

enableOrderStatusRetrieval

boolean

זה שינוי אופציונלי. אם ההגדרה מוגדרת, הסוכן יתמוך באחזור של סטטוס ההזמנה.

ClientAppInfo

מידע על אפליקציית הלקוח וסביבת המכשיר. הוא משמש בעיקר לרישום ביומן, לניתוח ולניפוי באגים.

ייצוג ב-JSON
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
שדות
deviceModel

string

זה שינוי אופציונלי. דגם המכשיר של הלקוח (לדוגמה, iPhone 13,‏ Pixel 7,‏ Kiosk v2).

osVersion

string

זה שינוי אופציונלי. גרסת מערכת ההפעלה של הלקוח (למשל, iOS 16.1 או Android 13).

sdkVersion

string

זה שינוי אופציונלי. גרסת ה-SDK של הלקוח או תוכנת האפליקציה.

SessionMode

מצב הסשן.

טיפוסים בני מנייה (enum)
SESSION_MODE_UNSPECIFIED לא צוין מצב הפעילות.
HYBRID במהלך הסשן אפשר לשמוע אתכם ולראות אתכם, וגם לכתוב לכם. (זוהי ברירת המחדל)
TEXT הסשן הוא טקסט בלבד.

TurnType

מייצג את המיקום במחזור החיים של בקשה אוניטרית בתוך סשן.

טיפוסים בני מנייה (enum)
TURN_TYPE_UNSPECIFIED סוג הפנייה לא צוין.
INITIALIZE מציין במפורש שהבקשה הזו מאתחלת את הסשן במצב unary. כשמגדירים את האפשרות הזו, משתני סשן ראשוניים (למשל, מטא-נתונים ותפריטים של חנות) מוזרקים ל-CES.
SUBSEQUENT מציין באופן מפורש תור שיחה עוקב או עדכון באמצע הסשן. כשמגדירים את המדיניות הזו, משמיטים את משתני הסשן הראשוניים כדי למנוע התרחבות של טוקן הקלט.

BidiProcessOrderResponse

ההודעה ברמה העליונה שמוחזרת מהשיטה FoodOrderingService.BidiProcessOrder.

ייצוג ב-JSON
{

  // Union field response can be only one of the following:
  "agentAudio": {
    object (AgentAudio)
  },
  "speechRecognition": {
    object (SpeechRecognition)
  },
  "legacyOrderStateResponse": {
    object
  },
  "interruptionSignal": {
    object (InterruptionSignal)
  },
  "agentEvent": {
    object (AgentEvent)
  },
  "clientExecutionRequest": {
    object (ClientExecutionRequest)
  },
  "updatedOrderState": {
    object (UpdatedOrderState)
  },
  "agentText": {
    object (AgentText)
  },
  "suggestedOptions": {
    object (SuggestedOptions)
  },
  "sentimentMeasurement": {
    object (SentimentMeasurement)
  },
  "turnCompleted": {
    object (TurnCompleted)
  },
  "endSession": {
    object (EndSession)
  }
  // End of list of possible types for union field response.
}
שדות
שדה איחוד response. התשובה מהסוכן. הערך response יכול להיות רק אחד מהבאים:
agentAudio

object (AgentAudio)

תשובה קולית מהסוכן.

speechRecognition

object (SpeechRecognition)

תוצאת זיהוי הדיבור מהסוכן.

legacyOrderStateResponse

object (Struct format)

תגובת מצב ההזמנה מדור קודם לסשן.

interruptionSignal

object (InterruptionSignal)

אות הפרעה זוהה מקלט האודיו.

agentEvent

object (AgentEvent)

אירוע מהסוכן.

clientExecutionRequest

object (ClientExecutionRequest)

הבקשה מועברת ללקוח לביצוע. המשתנה הזה משמש לביצוע בצד הלקוח, כמו הוספת קוד להזמנה.

updatedOrderState

object (UpdatedOrderState)

מציין עדכון בסטטוס ההזמנה. כולל את הסטטוס המלא של ההזמנה.

agentText

object (AgentText)

תשובה כתובה מהסוכן.

suggestedOptions

object (SuggestedOptions)

אפשרויות להצעה ללקוח.

sentimentMeasurement

object (SentimentMeasurement)

ציון הסנטימנט בזמן אמת שנמדד בתור הזה.

turnCompleted

object (TurnCompleted)

הודעה על השלמת הפעולה.

endSession

object (EndSession)

מציין שהסשן מסתיים, ושהתור הזה יהיה האחרון.

הנציג יסיים לשלוח את כל התשובות שממתינות לתור הנוכחי, ואז ישלח הודעה סופית turnCompleted. הנציג לא יתחיל תורות חדשים. לדוגמה, שיחה עם 2 תורות תיראה כך:

  • תור 1
  • קלט לקוח 1
  • ‫… הודעות על תגובת הסוכן ומצב ההזמנה
  • turnCompleted
  • תור 2
  • customer input 2
  • ‫… הודעות על תגובת הסוכן ומצב ההזמנה
  • endSession
  • ‫... הודעות על סטטוס ההזמנה ותשובה מנציג
  • turnCompleted

AgentAudio

תשובה קולית מהסוכן.

ייצוג ב-JSON
{
  "agentAudio": string
}
שדות
agentAudio

string (bytes format)

נתוני האודיו מהסוכן.

מחרוזת בקידוד Base64.

SpeechRecognition

תוצאת זיהוי הדיבור מהסוכן.

ייצוג ב-JSON
{
  "transcript": string,
  "languageCode": string,
  "isFinal": boolean
}
שדות
transcript

string

טקסט מתומלל מקלט האודיו בשפה שזוהתה.

languageCode

string

קוד השפה של התמליל. קוד השפה צריך להיות בפורמט BCP-47, למשל en-US.

isFinal

boolean

מציין אם זה התמליל הסופי של התור.

InterruptionSignal

בסוג הזה אין שדות.

מציין שהתגובה הקולית של הסוכן הופרעה (לדוגמה, על ידי התפרצות של משתמש הקצה). הלקוח צריך להפסיק את ההפעלה באופן מיידי.

AgentEvent

אירוע מיוחד מהנציג שדורש מהלקוח לבצע פעולה.

ייצוג ב-JSON
{

  // Union field event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
שדות
שדה איחוד event. האירוע מהסוכן. הערך event יכול להיות רק אחד מהבאים:
restartOrder

object (RestartOrder)

הלקוח מבקש להפעיל מחדש את ההזמנה.

RestartOrder

הלקוח מבקש להתחיל מחדש את ההזמנה.

ייצוג ב-JSON
{
  "confirmationStep": boolean
}
שדות
confirmationStep

boolean

הסוכן מבקש מהלקוח לאשר את בקשת ההפעלה מחדש.

ClientExecutionRequest

בקשה לצד הלקוח להפעיל פקודה.

ייצוג ב-JSON
{
  "executionId": string,

  // Union field request can be only one of the following:
  "finalizeOrderRequest": {
    object (FinalizeOrderRequest)
  },
  "submitOrderRequest": {
    object (SubmitOrderRequest)
  },
  "orderPricesRequest": {
    object (OrderPricesRequest)
  },
  "validateDeliveryAddressRequest": {
    object (ValidateDeliveryAddressRequest)
  },
  "orderStatusRequest": {
    object (OrderStatusRequest)
  }
  // End of list of possible types for union field request.
}
שדות
executionId

string

חובה. מזהה ייחודי של בקשת ההפעלה הזו.

שדה איחוד request. הבקשה הספציפית שרוצים לבצע. הערך request יכול להיות רק אחד מהבאים:
finalizeOrderRequest

object (FinalizeOrderRequest)

בקשה לסיום ההזמנה.

submitOrderRequest

object (SubmitOrderRequest)

בקשה לשליחת ההזמנה.

orderPricesRequest

object (OrderPricesRequest)

בקשה לקבלת מחירי ההזמנה.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

בקשה לאימות הכתובת למשלוח.

orderStatusRequest

object (OrderStatusRequest)

בקשה לקבלת סטטוס ההזמנה.

FinalizeOrderRequest

בסוג הזה אין שדות.

בקשה לסיום ההזמנה. ההודעה הזו נשלחת בדרך כלל על ידי הנציג כשהלקוח מציין שהוא סיים להזמין ורוצה לשלם.

SubmitOrderRequest

בקשה לשליחת ההזמנה, עם כל פרטי התשלום הנדרשים שנאספו מהלקוח.

ייצוג ב-JSON
{
  "paymentInfo": {
    object (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
שדות
paymentInfo

object (PaymentInfo)

חובה. פרטי התשלום של ההזמנה.

loyaltyInfo

object (LoyaltyInfo)

זה שינוי אופציונלי. נקודות המועדון שמומשו בהזמנה.

tipAmount

object (Money)

זה שינוי אופציונלי. סכום הטיפ בהזמנה.

LoyaltyInfo

מייצג את פרטי מועדון הלקוחות של הלקוח.

ייצוג ב-JSON
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
שדות
loyaltyAmount

object (LoyaltyAmount)

חובה. סכום הנקודות במועדון הלקוחות. זה יכול להיות יתרת נאמנות או נאמנות שנצרכה.

LoyaltyAmount

מייצג את סכום הנאמנות של הלקוח.

ייצוג ב-JSON
{
  "units": string
}
שדות
units

string (int64 format)

חובה. נקודות המועדון.

OrderPricesRequest

בקשה לקבלת מחירי ההזמנה.

ייצוג ב-JSON
{
  "order": {
    object (Order)
  }
}
שדות
order

object (Order)

זה שינוי אופציונלי. ההזמנה שרוצים לקבל את המחירים שלה. אם לא מציינים את מספר ההזמנה, אפשר להניח שהבקשה מתייחסת להזמנה או לעגלת הקניות הקיימות בסשן.

ValidateDeliveryAddressRequest

בקשה לאימות כתובת למשלוח שנאספה במהלך הסשן.

ייצוג ב-JSON
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
שדות
deliveryAddress

object (DeliveryAddress)

חובה. הכתובת למשלוח שצריך לאמת.

OrderStatusRequest

בסוג הזה אין שדות.

בקשה לקבלת סטטוס ההזמנה.

UpdatedOrderState

אירוע שמוחזר על ידי הסוכן ומייצג עדכון של סטטוס ההזמנה.

ייצוג ב-JSON
{
  "order": {
    object (Order)
  },
  "changed": boolean
}
שדות
order

object (Order)

הסטטוס המעודכן של ההזמנה שמשויכת לסשן הזה.

changed

boolean

פלט בלבד. אם יש עדכונים בסטטוס ההזמנה.

AgentText

תשובה כתובה מהסוכן.

ייצוג ב-JSON
{
  "text": string
}
שדות
text

string

תשובה כתובה מהסוכן.

SuggestedOptions

אפשרויות להצעה ללקוח.

ייצוג ב-JSON
{
  "suggestedModifierGroups": {
    object (SuggestedModifierGroups)
  },

  // Union field suggested_options can be only one of the following:
  "suggestedItems": {
    object (SuggestedItems)
  },
  "suggestedModifiers": {
    object (SuggestedModifiers)
  }
  // End of list of possible types for union field suggested_options.
}
שדות
suggestedModifierGroups

object (SuggestedModifierGroups)

קבוצה של משנים מוצעים.

שדה איחוד suggested_options. האפשרויות המוצעות. הערך suggested_options יכול להיות רק אחד מהבאים:
suggestedItems

object (SuggestedItems)

רשימת פריטים להצעה ללקוח.

suggestedModifiers

object (SuggestedModifiers)

רשימה של שינויים להצעה ללקוח.

SuggestedItems

רשימת פריטים להצעה ללקוח.

ייצוג ב-JSON
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
שדות
items[]

object (SuggestedItem)

הפריטים שיוצעו ללקוח.

SuggestedItem

פריט להצעה ללקוח.

ייצוג ב-JSON
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
שדות
itemId

string

המזהה של הפריט בתפריט.

displayName

string

שם קריא של הפריט שיוצג בממשקי משתמש.

image

object (Image)

התמונה שתוצג לפריט הזה בממשק המשתמש.

basePrice

object (Money)

המחיר הבסיסי של הפריט. יכול להיות שההשפעה תהיה שונה בהתאם למשני המיקום שנבחרו. המחיר ליחידה של הפריט.

integrationAttributes

object (ItemIntegrationAttributes)

מטא-נתונים שמשויכים לישות הזו ומשמשים לשילובים במורד הזרם.

SuggestedModifiers

רשימה של שינויים להצעה ללקוח.

ייצוג ב-JSON
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
שדות
modifiers[]

object (SuggestedModifier)

המשנים שיוצעו ללקוח.

parentUid

string

המזהה הייחודי של פריט האב או של התוסף שאליו רוצים להחיל את התוספים.

SuggestedModifier

שינוי להצעה ללקוח.

ייצוג ב-JSON
{
  "modifierId": string,
  "modifierGroupId": string,
  "modifierGroupDisplayName": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
שדות
modifierId

string

המזהה של התוסף בתפריט.

modifierGroupId

string

המזהה של קבוצת המשנים שאליה צריך להוסיף את המשנה הזה אם ההצעה תתקבל.

modifierGroupDisplayName

string

השם המוצג של קבוצת התוספים שאליה התוסף הזה משתייך.

displayName

string

שם קריא של הפריט שיוצג בממשקי משתמש.

image

object (Image)

התמונה שתוצג לפריט הזה בממשק המשתמש.

priceAdjustment

object (Money)

התאמת המחיר שמשויכת לשינוי הזה, אם יש. המחיר ליחידה של התוסף.

integrationAttributes

object (ModifierIntegrationAttributes)

מטא-נתונים שמשויכים לישות הזו ומשמשים לשילובים במורד הזרם.

alreadyIncluded

boolean

אם התוסף הזה כבר כלול בהזמנה.

SuggestedModifierGroups

רשימה של קבוצות משנים להצעה ללקוח.

ייצוג ב-JSON
{
  "modifierGroups": [
    {
      object (SuggestedModGroup)
    }
  ]
}
שדות
modifierGroups[]

object (SuggestedModGroup)

קבוצות התוספים להצעה ללקוח.

SuggestedModGroup

קבוצת משני מחירים להצעה ללקוח.

ייצוג ב-JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "maxSelectionCount": integer,
  "minSelectionCount": integer,
  "maxSelectionCountPerModifier": integer
}
שדות
modifierGroupId

string

המזהה של קבוצת התוספים בתפריט.

displayName

string

השם המוצג של קבוצת שינוי המחירים.

modifiers[]

object (SuggestedModifier)

המשנים בקבוצה הזו.

maxSelectionCount

integer

המספר המקסימלי של משנים שאפשר לבחור מהקבוצה הזו.

minSelectionCount

integer

מספר מקשי הצירוף המינימלי שצריך לבחור מהקבוצה הזו.

maxSelectionCountPerModifier

integer

מגבילה את מספר הפעמים שבהן אפשר להחיל כל משנה בקבוצה הזו.

SentimentMeasurement

ציון הסנטימנט בזמן אמת שנמדד בתור הזה.

ייצוג ב-JSON
{
  "score": number,
  "magnitude": number
}
שדות
score

number

זה שינוי אופציונלי. ציון הסנטימנט בין ‎-1.0 (סנטימנט שלילי) ל-1.0 (סנטימנט חיובי).

magnitude

number

זה שינוי אופציונלי. עוצמת הסנטימנט, בלי קשר לציון.

TurnCompleted

בסוג הזה אין שדות.

מציין שנציג ה-AI בתחום המזון זיהה את סוף תור השיחה הנוכחי ולא יספק פלט נוסף בתור הזה.

EndSession

הערך מציין שהסוכן סיים את הסשן, בגלל השלמה מוצלחת (למשל, המשתמש אומר "להתראות!" ) או להעביר את השיחה לנציג.

ייצוג ב-JSON
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
שדות
type

enum (EndType)

סוג האירוע של סיום הסשן.

reason

string

הסיבה לסיום הסשן.

posResponse

string

זה שינוי אופציונלי. התגובה של מערכת ה-POS לאחר ביצוע הצ'ק-אין להזמנה (אופציונלי). מטען ייעודי (payload) של מחרוזת אטומה שמייצג את סטטוס העסקה בנקודת המכירה.

agentResponse

string

זה שינוי אופציונלי. ההודעה הסופית של הסוכן שתוצג למשתמש או תושמע לו (אופציונלי).

storeSchedule

object (Schedule)

זה שינוי אופציונלי. לוח הזמנים של החנות. השדה הזה מוגדר רק אם סוג הסיום הוא 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 החנות סגורה.