Method: projects.locations.sessions.processOrder

執行單一回合邏輯,處理使用者輸入內容並傳回結果。

HTTP 要求

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

這個網址使用 gRPC 轉碼語法。

路徑參數

參數
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

選用。特定得來速車道的 ID。

config.enableEchoCancellation

boolean

選用。是否要為工作階段啟用消除回音功能。啟用後,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio。

config.daypartId

string

選用。菜單的時段,包括早餐、午餐、晚餐等。這項資訊用於決定訂單要使用的菜單。

config.featureGate

object (FeatureGate)

選用。工作階段的 feature gate。用於啟用或停用工作階段的功能。

config.clientAppInfo

object (ClientAppInfo)

選用。用戶端應用程式和裝置環境的相關資訊。

config.mode

enum (SessionMode)

選用。工作階段的模式。

config.channelType

enum (ChannelType)

選用。用於代理通訊的管道類型。

config.enableListenOnlyDualChannel

boolean

選用。是否為工作階段啟用僅限收聽的雙聲道。如果啟用,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio,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)

一般二進位資料輸入。鏡像 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

用戶端的音訊輸入。輸入的音訊可能有多個聲道,分別代表顧客、機組人員等。這些聲道應全部同步,並採用設定中指定的格式。不應包含音訊標頭。根據預設,音訊應使用 16 位元線性 PCM 音訊編碼和 16000 Hz 取樣率。所有管道的總位元組數應小於 25600 個位元組。

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。Next ID: 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

選用。機組人員插話時的模式,例如「headset」、「pos」。

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 代理生成的不重複項目 UID,導致錯誤。對應至 UpdatedOrderState.OrderItem.uid。

affectedExternalIds[]

string

選用。導致錯誤的外部 ID (來自選單) 清單。應與 POS 中的實際代表項目相同,通常位於 menu.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

這是必要旗標,執行要求的 ID,這是執行要求的結果。

聯集欄位 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

付款方式類型。

列舉
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

這是必要旗標,來源資料的 IANA 標準 MIME 類型。

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

選用。特定得來速車道的 ID。

enableEchoCancellation

boolean

選用。是否要為工作階段啟用消除回音功能。啟用後,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio。

daypartId

string

選用。菜單的時段,包括早餐、午餐、晚餐等。這項資訊用於決定訂單要使用的菜單。

featureGate

object (FeatureGate)

選用。工作階段的 feature gate。用於啟用或停用工作階段的功能。

clientAppInfo

object (ClientAppInfo)

選用。用戶端應用程式和裝置環境的相關資訊。

mode

enum (SessionMode)

選用。工作階段的模式。

channelType

enum (ChannelType)

選用。用於代理通訊的管道類型。

enableListenOnlyDualChannel

boolean

選用。是否為工作階段啟用僅限收聽的雙聲道。如果啟用,用戶端應在 AudioInput 中提供 customerAudio 和 crewAudio,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

工作階段的 feature gate。用於啟用或停用工作階段的功能。

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

工作階段的模式。

列舉
SESSION_MODE_UNSPECIFIED 未指定工作階段模式。
HYBRID 工作階段支援音訊和文字。這是目前的預設做法。
TEXT 工作階段僅限文字。

TurnType

代表一元要求在工作階段中的生命週期位置。

列舉
TURN_TYPE_UNSPECIFIED 未指定轉彎類型。
INITIALIZE 明確指出這項要求會以一元模式初始化工作階段。設定後,起始工作階段變數 (例如商店中繼資料和選單) 會插入 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 輪:
  • 顧客輸入內容 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

這是必要旗標,這項執行要求的專屬 ID。

聯集欄位 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

菜單中的品項 ID。

displayName

string

這個項目的使用者介面顯示名稱,人類可讀。

image

object (Image)

在 UI 中為這個項目顯示的圖片。

basePrice

object (Money)

商品的底價。這可能會受到所選修飾標記的影響。這是商品的單價。

integrationAttributes

object (ItemIntegrationAttributes)

與這個實體相關聯的中繼資料,用於下游整合。

SuggestedModifiers

建議顧客使用的修飾符清單。

JSON 表示法
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
欄位
modifiers[]

object (SuggestedModifier)

建議客戶使用的修飾符。

parentUid

string

要套用修飾項的上層項目/修飾項專屬 ID。

SuggestedModifier

建議顧客加點的配料。

JSON 表示法
{
  "modifierId": string,
  "modifierGroupId": string,
  "modifierGroupDisplayName": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
欄位
modifierId

string

菜單中附餐的 ID。

modifierGroupId

string

如果接受建議,這個修飾符應加入的修飾符群組 ID。

modifierGroupDisplayName

string

這個修飾符所屬修飾符群組的顯示名稱。

displayName

string

這個項目的使用者介面顯示名稱,人類可讀。

image

object (Image)

在 UI 中為這個項目顯示的圖片。

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

菜單中修飾符群組的 ID。

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

這個類型沒有任何欄位。

表示 Food AI 代理偵測到目前對話回合結束,不會再提供這個回合的輸出內容。

EndSession

表示代理已終止工作階段,原因可能是成功完成 (例如使用者說「再見!」) 或提報給服務專員。

JSON 表示法
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
欄位
type

enum (EndType)

結束工作階段事件的類型。

reason

string

結束工作階段的原因。

posResponse

string

選用。POS 系統在訂單報到時的回應 (選用)。這是代表 POS 交易狀態的不透明字串酬載。

agentResponse

string

選用。代理最終向使用者說出/顯示的回覆訊息 (選用)。

storeSchedule

object (Schedule)

選用。商店時間表。只有在結束類型為 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 商店已關閉。