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 规范化(即转换为 UTC 零时区格式并在末尾附加 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 采样率。所有渠道的总字节数应小于 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。下一个 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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)

Turn Completed 消息。

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)

要在界面中为此商品显示的图片。

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

菜单中修饰符的 ID。

modifierGroupId

string

如果建议被接受,相应修饰符应添加到的修饰符组的 ID。

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

菜单中修饰符组的 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 商店已停业。