- HTTP 请求
- 路径参数
- 请求正文
- 响应正文
- 授权范围
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- 配置
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- LoyaltyInfo
- LoyaltyAmount
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
执行单轮逻辑来处理用户输入并返回结果。
HTTP 请求
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
网址采用 gRPC 转码语法。
路径参数
| 参数 | |
|---|---|
config.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 ( |
| 字段 | |
|---|---|
config.store |
必需。要下单的商店。格式: |
config.laneId |
可选。特定驾车通道的 ID。 |
config.enableEchoCancellation |
可选。是否为会话启用回声消除功能。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio。 |
config.daypartId |
可选。食品菜单的时段,包括早餐、午餐、晚餐等。用于确定订单所用的菜单。 |
config.featureGate |
可选。相应会话的功能门控。用于为会话启用或停用功能。 |
config.clientAppInfo |
可选。有关客户端应用和设备环境的信息。 |
config.mode |
可选。会话的模式。 |
config.channelType |
可选。用于客服人员沟通的渠道类型。 |
config.enableListenOnlyDualChannel |
可选。是否为会话启用仅收听双声道。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio,CES 将在媒体处理服务器上执行 EAC 和求和。 |
config.testSessionStartTime |
可选。会话的开始时间,用于测试或评估。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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 采样率。所有渠道的总字节数应小于 25,600 字节。
| JSON 表示法 |
|---|
{ "customerAudio": string, "crewAudio": string } |
| 字段 | |
|---|---|
customerAudio |
必需。客户音频数据。 使用 base64 编码的字符串。 |
crewAudio |
可选。机组人员音频数据。这是与客户位于同一车道的乘务员的可选音频渠道,用作回声消除的参考音频。 使用 base64 编码的字符串。 |
EventInput
来自客户端的事件输入。用于触发代理中的特定事件。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 event。下一个 ID:10 要触发的事件。event 只能是下列其中一项: |
|
driveOffEvent |
驶离事件。 |
crewInterjectionEvent |
乘务员插话事件。 |
updateOrderStateEvent |
对订单状态的客户端更新。 |
clientEscalationEvent |
客户端升级事件。 |
callerHangupEvent |
可选。来电者挂断电话事件。 |
posErrorInput |
可选。POS 错误事件。 |
DriveOffEvent
驶离事件。表示客户已驾车离开。此事件发生后,会话将关闭。
| JSON 表示法 |
|---|
{ "reason": string } |
| 字段 | |
|---|---|
reason |
可选。驶离的原因,例如“订单完成”“意外驶离”。 |
CrewInterjectionEvent
机组人员插话事件。这表示有剧组人员在会话中插话。此活动结束后,会话将关闭。
| JSON 表示法 |
|---|
{ "mode": string } |
| 字段 | |
|---|---|
mode |
可选。机组人员插话的模式,例如“耳机”“POS”。 |
OrderStateUpdateEvent
更新订单状态请求。当在客户端更新订单时(例如通过传统触摸界面添加或移除商品时),应发送此事件。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 字段 | |
|---|---|
order |
必需。与相应会话关联的订单的更新状态。 |
ClientEscalationEvent
表示客户端正在将会话上报给人工客服。
| JSON 表示法 |
|---|
{ "reason": string } |
| 字段 | |
|---|---|
reason |
可选。客户升级的原因,例如“payment-declined”“pos-error”“integration-error”等。 |
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 |
完成订单的结果。 |
orderPricesResponse |
获取订单价格的结果。 |
validateDeliveryAddressResponse |
验证配送地址的结果。 |
orderStatusResponse |
获取订单状态的结果。 |
FinalizeOrderResponse
完成订单的结果。
| JSON 表示法 |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| 字段 | |
|---|---|
paymentFlowEnabled |
可选。是否在代理中启用付款处理流程。 |
paymentInfo |
可选。客户的支付信息。如果 paymentFlowEnabled 为 false,则不执行任何操作。 |
totalAmountDue |
可选。订单的应付总金额。 |
orderPriceInfo |
可选。订单的详细价格信息。 |
PaymentInfo
用户的支付信息。
| JSON 表示法 |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| 字段 | |
|---|---|
creditCardLastFourDigits |
可选。信用卡的后四位数字。此属性用于在付款阶段验证信用卡号。 |
creditCardCvv |
可选。信用卡的 CVV。 |
paymentMethod |
可选。所用支付方式的类型。 |
PaymentMethod
支付方式的类型。
| 枚举 | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
未指定的付款方式。 |
PAYMENT_METHOD_CREDIT_CARD |
信用卡。 |
PAYMENT_METHOD_CASH |
现金。 |
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, "featureGate": { object ( |
| 字段 | |
|---|---|
session |
必需。相应订单的会话。格式: |
store |
必需。要下单的商店。格式: |
laneId |
可选。特定驾车通道的 ID。 |
enableEchoCancellation |
可选。是否为会话启用回声消除功能。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio。 |
daypartId |
可选。食品菜单的时段,包括早餐、午餐、晚餐等。用于确定订单所用的菜单。 |
featureGate |
可选。相应会话的功能门控。用于为会话启用或停用功能。 |
clientAppInfo |
可选。有关客户端应用和设备环境的信息。 |
mode |
可选。会话的模式。 |
channelType |
可选。用于客服人员沟通的渠道类型。 |
enableListenOnlyDualChannel |
可选。是否为会话启用仅收听双声道。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio,CES 将在媒体处理服务器上执行 EAC 和求和。 |
testSessionStartTime |
可选。会话的开始时间,用于测试或评估。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
FeatureGate
相应会话的功能门控。用于为会话启用或停用功能。
| JSON 表示法 |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| 字段 | |
|---|---|
menuResponseEnabled |
可选。如果已设置,则以 BidiProcessOrderResponse 形式将菜单数据返回给客户端。 |
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 |
Turn Completed 消息。 |
endSession |
表示会话即将结束,并且这是最后一轮对话。 代理将完成发送当前回合的所有待处理响应,然后发送最终的 turnCompleted 消息。代理不会开始任何新的对话轮次。例如,一个 2 轮对话会话如下所示:
|
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 |
可选。相应订单的小费金额。 |
LoyaltyInfo
表示客户的会员信息。
| JSON 表示法 |
|---|
{
"loyaltyAmount": {
object ( |
| 字段 | |
|---|---|
loyaltyAmount |
必需。会员积分金额。可以是会员积分余额或已消耗的会员积分。 |
LoyaltyAmount
表示客户的忠诚度金额。
| JSON 表示法 |
|---|
{ "units": string } |
| 字段 | |
|---|---|
units |
必需。积分。 |
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 |
要在界面中为此商品显示的图片。 |
basePrice |
商品的基本价格。这可能会受到所选修正因素的影响。这是商品的单价。 |
integrationAttributes |
与此实体关联的元数据,用于下游集成。 |
SuggestedModifiers
要向客户建议的修饰符列表。
| JSON 表示法 |
|---|
{
"modifiers": [
{
object ( |
| 字段 | |
|---|---|
modifiers[] |
要向客户建议的修饰符。 |
parentUid |
要应用修饰符的父商品/修饰符的唯一标识符。 |
SuggestedModifier
要向客户建议的修饰符。
| JSON 表示法 |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| 字段 | |
|---|---|
modifierId |
菜单中修饰符的 ID。 |
modifierGroupId |
如果建议被接受,相应修饰符应添加到的修饰符组的 ID。 |
modifierGroupDisplayName |
相应修饰符所属的修饰符组的显示名称。 |
displayName |
要在界面上显示的相应项的人类可读名称。 |
image |
要在界面中为此商品显示的图片。 |
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 |
商店已停业。 |