- HTTP 要求
- 路徑參數
- 要求主體
- 回應主體
- 授權範圍
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CustomizedInputEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- SubmitOrderResponse
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- 設定
- 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
執行單一回合邏輯,處理使用者輸入內容並傳回結果。
HTTP 要求
POST https://foodorderingaiagent.googleapis.com/v1beta/{config.session=projects/*/locations/*/sessions/*}:processOrder
這個網址使用 gRPC 轉碼語法。
路徑參數
| 參數 | |
|---|---|
config.session |
這是必要旗標,訂單的工作階段。格式: |
要求主體
要求主體包含下列結構的資料:
| JSON 表示法 |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "userInfo": { "preferredName": string, "paymentInfo": { object ( |
| 欄位 | |
|---|---|
config.store |
這是必要旗標,訂單所屬的商店。格式: |
config.laneId |
選用。特定得來速車道的 ID。 |
config.enableEchoCancellation |
選用。是否要為工作階段啟用消除回音功能。啟用後,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio。 |
config.daypartId |
選用。菜單的時段,包括早餐、午餐、晚餐等。這項資訊用於決定訂單要使用的菜單。 |
config.userInfo |
選用。與代理共用的使用者個人資訊。 |
config.orderType |
選用。已淘汰:請改用 initialOrder.fulfillment.fulfillment_type。要建立的訂單類型。 |
config.initialOrder |
選用。啟動代理工作階段前的初始訂單。如果提供,代理會將其做為初始訂單狀態。 |
config.featureGate |
選用。工作階段的 feature gate。用於啟用或停用工作階段的功能。 |
config.initialUtterance |
選用。用戶端用來啟動對話的初始語句。如果提供,代理會將此做為最初招攬到使用者語句,且不會以問候訊息開頭。 |
config.clientAppInfo |
選用。用戶端應用程式和裝置環境的相關資訊。 |
config.mode |
選用。工作階段的模式。 |
config.channelType |
選用。用於代理通訊的管道類型。 |
config.enableListenOnlyDualChannel |
選用。是否為工作階段啟用僅限收聽的雙聲道。如果啟用,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio,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
用戶端的音訊輸入。輸入的音訊可能有多個聲道,分別代表顧客、機組人員等。這些聲道應全部同步,並採用設定中指定的格式。不應包含音訊標頭。根據預設,音訊應使用 16 位元線性 PCM 音訊編碼和 16000 Hz 取樣率。所有管道的總位元組數應小於 25600 個位元組。
| JSON 表示法 |
|---|
{ "customerAudio": string, "crewAudio": string } |
| 欄位 | |
|---|---|
customerAudio |
這是必要旗標,顧客音訊資料。 Base64 編碼字串。 |
crewAudio |
選用。機組人員音訊資料。這是選用的音訊頻道,用於與顧客在同一車道的服務人員,並做為消除回音的參考音訊。 Base64 編碼字串。 |
EventInput
用戶端輸入的事件。用於觸發代理中的特定事件。
| JSON 表示法 |
|---|
{ // Union field |
| 欄位 | |
|---|---|
聯集欄位 event。Next ID: 10 要觸發的事件。event 只能是下列其中一個設定: |
|
driveOffEvent |
車輛駛離事件。 |
crewInterjectionEvent |
團隊插話事件。 |
updateOrderStateEvent |
用戶端更新訂單狀態。 |
clientEscalationEvent |
用戶端提報事件。 |
customizedInputEvent |
自訂輸入事件。 |
callerHangupEvent |
選用。來電者掛斷事件。 |
posErrorInput |
選用。POS 錯誤事件。 |
DriveOffEvent
車輛駛離事件。這表示顧客已開車離開。這個事件發生後,工作階段就會關閉。
| JSON 表示法 |
|---|
{ "reason": string } |
| 欄位 | |
|---|---|
reason |
選用。車輛駛離的原因,例如「訂單完成」、「意外駛離」。 |
CrewInterjectionEvent
團隊插話事件。這表示有團隊成員在課程中插話。活動結束後,工作階段就會關閉。
| JSON 表示法 |
|---|
{ "mode": string } |
| 欄位 | |
|---|---|
mode |
選用。機組人員插話時的模式,例如「headset」、「pos」。 |
OrderStateUpdateEvent
更新訂單狀態要求。當訂單在用戶端更新時 (例如透過傳統觸控介面新增或移除商品),應傳送這個事件。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 欄位 | |
|---|---|
order |
這是必要旗標,與這個工作階段相關聯的訂單更新狀態。 |
ClientEscalationEvent
表示用戶端將工作階段提報給真人服務專員。
| JSON 表示法 |
|---|
{ "reason": string } |
| 欄位 | |
|---|---|
reason |
選用。客戶提報問題的原因,例如「payment-declined」、「pos-error」、「integration-error」等。 |
CustomizedInputEvent
Food AI 用戶端可透過這個欄位,將自訂事件傳送至代理。根據預設,這項功能不會執行任何作業。如要啟用,請與客戶服務團隊聯絡。
| JSON 表示法 |
|---|
{ "input": { object } } |
| 欄位 | |
|---|---|
input |
這是必要旗標,用戶端傳送給代理的輸入內容。 |
CallerHangupEvent
這個類型沒有任何欄位。
表示顧客提早掛斷電話 (例如不喜歡 AI)。
PosErrorEvent
銷售點 (POS) 專屬失敗。
| JSON 表示法 |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| 欄位 | |
|---|---|
errorMessages[] |
選用。人類可讀的錯誤說明清單。如果同時發生多個問題 (例如多項商品缺貨中),或需要提供單一複雜失敗的詳細細目,則可提供多則錯誤訊息。服務專員可使用這些訊息通知客戶或記錄。 |
affectedItemUids[] |
選用。由訂餐 AI 代理生成的不重複項目 UID,導致錯誤。對應至 |
affectedExternalIds[] |
選用。導致錯誤的外部 ID (來自選單) 清單。應與 POS 中的實際代表項目相同,通常位於 menu.proto 的整合屬性下方 (例如 |
metadata |
選用。用於偵錯或品牌專屬信號的任意形式中繼資料。可用於傳遞品牌專屬錯誤代碼或類別 (例如 {"BRAND_ERROR_CODE": "OUT_OF_STOCK"})。 包含 |
ClientExecutionResult
用戶端執行要求的結果。
| JSON 表示法 |
|---|
{ "executionId": string, // Union field |
| 欄位 | |
|---|---|
executionId |
這是必要旗標,執行要求的 ID,這是執行要求的結果。 |
聯集欄位 response。執行作業的具體結果。response 只能是下列其中一個設定: |
|
finalizeOrderResponse |
完成訂單的結果。 |
submitOrderResponse |
提交訂單的結果。 |
orderPricesResponse |
取得訂單價格的結果。 |
validateDeliveryAddressResponse |
寄送地址的驗證結果。 |
orderStatusResponse |
取得訂單狀態的結果。 |
FinalizeOrderResponse
完成訂單的結果。
| JSON 表示法 |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| 欄位 | |
|---|---|
paymentFlowEnabled |
選用。是否在代理中啟用付款處理流程。 |
paymentInfo |
選用。客戶的付款資訊。如果 paymentFlowEnabled 為 false,則不執行任何操作。 |
totalAmountDue |
選用。訂單應付總額。 |
orderPriceInfo |
選用。訂單的詳細價格資訊。 |
SubmitOrderResponse
提交訂單的結果。
| JSON 表示法 |
|---|
{ "success": boolean, "estimatedReadyDuration": string } |
| 欄位 | |
|---|---|
success |
這是必要旗標,訂單是否已成功提交。 |
estimatedReadyDuration |
選用。訂單預計完成時間。 以秒為單位的時間長度,最多 9 個小數位數,結尾為「 |
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 |
這是必要旗標,來源資料的 IANA 標準 MIME 類型。 |
data |
這是必要旗標,Blob 的原始位元組。 Base64 編碼字串。 |
設定
工作階段和訂餐屬性的設定。每次連線開始時,用戶端都必須先傳送設定訊息。這項操作必須在任何其他要求之前完成,才能啟動工作階段。如果用戶端中斷連線,則應在重新連線時重複相同的設定訊息。
| JSON 表示法 |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "userInfo": { object ( |
| 欄位 | |
|---|---|
session |
這是必要旗標,訂單的工作階段。格式: |
store |
這是必要旗標,訂單所屬的商店。格式: |
laneId |
選用。特定得來速車道的 ID。 |
enableEchoCancellation |
選用。是否要為工作階段啟用消除回音功能。啟用後,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio。 |
daypartId |
選用。菜單的時段,包括早餐、午餐、晚餐等。這項資訊用於決定訂單要使用的菜單。 |
userInfo |
選用。與代理共用的使用者個人資訊。 |
orderType |
選用。已淘汰:請改用 initialOrder.fulfillment.fulfillment_type。要建立的訂單類型。 |
initialOrder |
選用。啟動代理工作階段前的初始訂單。如果提供,代理會將其做為初始訂單狀態。 |
featureGate |
選用。工作階段的 feature gate。用於啟用或停用工作階段的功能。 |
initialUtterance |
選用。用戶端用來啟動對話的初始語句。如果提供,代理會將此做為最初招攬到使用者語句,且不會以問候訊息開頭。 |
clientAppInfo |
選用。用戶端應用程式和裝置環境的相關資訊。 |
mode |
選用。工作階段的模式。 |
channelType |
選用。用於代理通訊的管道類型。 |
enableListenOnlyDualChannel |
選用。是否為工作階段啟用僅限收聽的雙聲道。如果啟用,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio,CES 則會在媒體處理伺服器上執行 EAC 和加總。 |
testSessionStartTime |
選用。工作階段的開始時間,用於測試或評估。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
UserInfo
與 Food AI 代理分享的使用者個人資訊。
| JSON 表示法 |
|---|
{ "preferredName": string, "paymentInfo": { object ( |
| 欄位 | |
|---|---|
preferredName |
選用。代理應使用的使用者名稱。Food AI 用戶端會根據使用者個人資料選取偏好名稱,並確保符合品牌慣例,例如使用名字或全名。 |
paymentInfo |
選用。使用者的付款資訊。 |
deliveryAddress |
選用。已淘汰:請改用 savedDeliveryAddress。使用者儲存的寄送地址。 |
pastOrders[] |
選用。使用者的訂單記錄。 |
loyaltyInfo |
選用。使用者的會員資訊。 |
phoneNumber |
選用。使用者的電話號碼。 |
userId |
選用。用戶端系統中的使用者專屬 ID。 |
savedDeliveryAddress |
選用。使用者儲存的寄送地址。將取代現有的字串 deliveryAddress 欄位。 |
PastOrder
使用者過往訂單。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 欄位 | |
|---|---|
order |
這是必要旗標,原始 Food AI 訂單。 |
LoyaltyInfo
代表顧客的會員資訊。
| JSON 表示法 |
|---|
{
"loyaltyAmount": {
object ( |
| 欄位 | |
|---|---|
loyaltyAmount |
這是必要旗標,會員點數。這可以是會員餘額或已使用的會員點數。 |
OrderType
要建立的訂單類型。
| 列舉 | |
|---|---|
ORDER_TYPE_UNSPECIFIED |
未指定訂單類型。 |
ORDER_TYPE_DRIVE_THROUGH |
訂單為得來速。 |
ORDER_TYPE_CARRY_OUT |
訂單為外帶。 |
ORDER_TYPE_DELIVERY |
訂單商品為外送。 |
FeatureGate
工作階段的 feature gate。用於啟用或停用工作階段的功能。
| JSON 表示法 |
|---|
{ "triggerOfferEngineOnDemand": boolean, "triggerLoyaltyOnDemand": boolean, "triggerOrderMediaAssistantOnDemand": boolean, "menuResponseEnabled": boolean, "revampedPaymentFlowEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| 欄位 | |
|---|---|
triggerOfferEngineOnDemand |
選用。僅限特定對象,設定後,優惠引擎在付款流程中為選用,且只有在使用者要求時才會觸發。 |
triggerLoyaltyOnDemand |
選用。僅限部分目標對象,設定後,會員方案在付款流程中會變成選用項目,只有在使用者要求時才會觸發。 |
triggerOrderMediaAssistantOnDemand |
選用。僅限部分觀眾,如果設定,訂購媒體助理將為選用,且只有在使用者要求時才會觸發。 |
menuResponseEnabled |
選用。如果已設定,則在 BidiProcessOrderResponse 中將選單資料傳回用戶端。 |
revampedPaymentFlowEnabled |
選用。僅限部分目標對象,如果設定,系統會使用新版付款流程。 |
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
工作階段的模式。
| 列舉 | |
|---|---|
SESSION_MODE_UNSPECIFIED |
未指定工作階段模式。 |
HYBRID |
工作階段支援音訊和文字。這是目前的預設做法。 |
TEXT |
工作階段僅限文字。 |
TurnType
代表一元要求在工作階段中的生命週期位置。
| 列舉 | |
|---|---|
TURN_TYPE_UNSPECIFIED |
未指定轉彎類型。 |
INITIALIZE |
明確指出這項要求會以一元模式初始化工作階段。設定後,起始工作階段變數 (例如商店中繼資料和選單) 會插入 CES。 |
SUBSEQUENT |
明確指出後續的對話輪次或會話中更新。設定後,系統會省略起始工作階段變數,避免輸入權杖數量暴增。 |
BidiProcessOrderResponse
從 FoodOrderingService.BidiProcessOrder 方法傳回的頂層訊息。
| JSON 表示法 |
|---|
{ // Union field |
| 欄位 | |
|---|---|
聯集欄位 response。代理的回覆。response 只能是下列其中一個設定: |
|
agentAudio |
代理的音訊回覆。 |
speechRecognition |
代理的語音辨識結果。 |
legacyOrderStateResponse |
工作階段的舊版訂單狀態回應。 |
interruptionSignal |
偵測到音訊輸入的中斷信號。 |
agentEvent |
代理事件。 |
clientExecutionRequest |
要求會轉送給用戶端執行。這項資訊用於用戶端執行,例如在訂單中加入代碼。 |
updatedOrderState |
表示訂單狀態有更新。包含訂單的完整狀態。 |
agentText |
代理的文字回覆。 |
suggestedOptions |
可向客戶建議的選項。 |
sentimentMeasurement |
這個回合評估的即時情緒分數。 |
turnCompleted |
「轉彎完成」訊息。 |
endSession |
表示工作階段即將結束,這是最後一輪。 代理會傳送目前回合中所有待傳送的回覆,然後傳送最終的 turnCompleted 訊息。代理不會開始任何新的回合。舉例來說,2 輪工作階段會像這樣:
|
recommendedOrders |
代理推薦的訂單。 |
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 |
這是必要旗標,這項執行要求的專屬 ID。 |
聯集欄位 request。要執行的特定要求。request 只能是下列其中一個設定: |
|
finalizeOrderRequest |
要求完成訂單。 |
submitOrderRequest |
提交訂單的要求。 |
orderPricesRequest |
取得訂單價格的要求。 |
validateDeliveryAddressRequest |
要求驗證寄送地址。 |
orderStatusRequest |
取得訂單狀態的要求。 |
FinalizeOrderRequest
這個類型沒有任何欄位。
要求完成訂單。當顧客表示已完成訂購並想付款時,服務專員通常會傳送這則訊息。
SubmitOrderRequest
提交訂單的要求,其中包含從顧客收集的所有必要付款資訊。
| JSON 表示法 |
|---|
{ "paymentInfo": { object ( |
| 欄位 | |
|---|---|
paymentInfo |
這是必要旗標,訂單的付款資訊。 |
loyaltyInfo |
選用。訂單使用的會員方案。 |
tipAmount |
選用。訂單的小費金額。 |
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 |
菜單中的品項 ID。 |
displayName |
這個項目的使用者介面顯示名稱,人類可讀。 |
image |
在 UI 中為這個項目顯示的圖片。 |
basePrice |
商品的底價。這可能會受到所選修飾標記的影響。這是商品的單價。 |
integrationAttributes |
與這個實體相關聯的中繼資料,用於下游整合。 |
SuggestedModifiers
建議顧客使用的修飾詞清單。
| JSON 表示法 |
|---|
{
"modifiers": [
{
object ( |
| 欄位 | |
|---|---|
modifiers[] |
建議客戶使用的修飾符。 |
parentUid |
要套用修飾項的上層項目/修飾項專屬 ID。 |
SuggestedModifier
建議顧客加點的配料。
| JSON 表示法 |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| 欄位 | |
|---|---|
modifierId |
菜單中附餐的 ID。 |
modifierGroupId |
如果接受建議,這個修飾符應加入的修飾符群組 ID。 |
modifierGroupDisplayName |
這個修飾符所屬修飾符群組的顯示名稱。 |
displayName |
這個項目的使用者介面顯示名稱,人類可讀。 |
image |
在 UI 中為這個項目顯示的圖片。 |
priceAdjustment |
與這個修飾符相關聯的價格調整項 (如有)。這是修飾符的每單位價格。 |
integrationAttributes |
與這個實體相關聯的中繼資料,用於下游整合。 |
alreadyIncluded |
訂單是否已包含這項修改。 |
SuggestedModifierGroups
建議顧客選用的修改器群組清單。
| JSON 表示法 |
|---|
{
"modifierGroups": [
{
object ( |
| 欄位 | |
|---|---|
modifierGroups[] |
要向顧客建議的修飾符群組。 |
SuggestedModGroup
建議顧客加購的選項群組。
| JSON 表示法 |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| 欄位 | |
|---|---|
modifierGroupId |
菜單中修飾符群組的 ID。 |
displayName |
修飾符群組的顯示名稱。 |
modifiers[] |
這個群組中的修飾符。 |
maxSelectionCount |
這個群組可選取的修飾符數量上限。 |
minSelectionCount |
必須從這個群組中選取的修飾符數量下限。 |
maxSelectionCountPerModifier |
限制這個群組中每個修飾符可套用的次數。 |
SentimentMeasurement
這個回合的即時情緒分數。
| JSON 表示法 |
|---|
{ "score": number, "magnitude": number } |
| 欄位 | |
|---|---|
score |
選用。情緒分數介於 -1.0 (負面情緒) 和 1.0 (正面情緒) 之間。 |
magnitude |
選用。情緒強度,不論分數為何。 |
TurnCompleted
這個類型沒有任何欄位。
表示 Food AI 代理偵測到目前對話回合結束,不會再提供這個回合的輸出內容。
EndSession
表示代理已終止工作階段,原因可能是成功完成 (例如使用者說「再見!」) 或提報給服務專員。
| JSON 表示法 |
|---|
{ "type": enum ( |
| 欄位 | |
|---|---|
type |
結束工作階段事件的類型。 |
reason |
結束工作階段的原因。 |
posResponse |
選用。POS 系統在訂單報到時的回應 (選用)。這是代表 POS 交易狀態的不透明字串酬載。 |
agentResponse |
選用。代理最終向使用者說出/顯示的回覆訊息 (選用)。 |
storeSchedule |
選用。商店時間表。只有在結束類型為 STORE_CLOSED 時,才會設定這個值。 |
EndType
結束工作階段事件的類型。
| 列舉 | |
|---|---|
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 |
商店已關閉。 |
RecommendedOrders
代理向使用者推薦的訂單清單。
| JSON 表示法 |
|---|
{
"recommendedOrders": [
{
object ( |
| 欄位 | |
|---|---|
recommendedOrders[] |
要向使用者顯示的推薦訂單。 |
RecommendedOrder
代理向使用者推薦的訂單。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 欄位 | |
|---|---|
order |
向使用者顯示的建議順序。 |