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)

選用。工作階段的特徵門檻。用於啟用或停用工作階段的功能。

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。下一個 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

選用。機組人員介入的方式,例如「耳機」、「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 的整合屬性中 (例如 ItemIntegrationAttributesModifierIntegrationAttributes)。

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)

選用。工作階段的特徵門檻。用於啟用或停用工作階段的功能。

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

工作階段的特徵門檻。用於啟用或停用工作階段的功能。

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
  • ... pending agent response and order state messages
  • 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 回應 (選用)。這是代表銷售點交易狀態的不透明字串酬載。

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 商店已關閉。