- Solicitação HTTP
- Parâmetros de caminho
- Corpo da solicitação
- Corpo da resposta
- Escopos de autorização
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CustomizedInputEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- SubmitOrderResponse
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- Config
- 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
Executa uma lógica de turno único para processar a entrada do usuário e retornar o resultado.
Solicitação HTTP
POST https://foodorderingaiagent.googleapis.com/v1beta/{config.session=projects/*/locations/*/sessions/*}:processOrder
O URL usa a sintaxe de transcodificação gRPC.
Parâmetros de caminho
| Parâmetros | |
|---|---|
config.session |
Obrigatório. A sessão do pedido. Formato: |
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
| Representação JSON |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "userInfo": { "preferredName": string, "paymentInfo": { object ( |
| Campos | |
|---|---|
config.store |
Obrigatório. A loja para a qual o pedido está sendo feito. Formato: |
config.laneId |
Opcional. O ID de uma faixa de drive-thru específica. |
config.enableEchoCancellation |
Opcional. Define se o cancelamento de eco será ativado para a sessão. Se ativado, o cliente precisa fornecer o customerAudio e o crewAudio no AudioInput. |
config.daypartId |
Opcional. Período do dia do cardápio, incluindo café da manhã, almoço, jantar etc. Isso é usado para determinar o cardápio a ser usado no pedido. |
config.userInfo |
Opcional. As informações pessoais do usuário final compartilhadas com o agente. |
config.orderType |
Opcional. Descontinuado: use initialOrder.fulfillment.fulfillment_type. O tipo de pedido a ser feito. |
config.initialOrder |
Opcional. O pedido inicial antes de iniciar a sessão do agente. Se fornecido, o agente o usará como o estado inicial do pedido. |
config.featureGate |
Opcional. Os feature gates da sessão. Isso é usado para ativar ou desativar recursos da sessão. |
config.initialUtterance |
Opcional. A fala inicial do cliente para iniciar a conversa. Se fornecido, o agente vai usar isso como a primeira fala do usuário e não vai começar com uma mensagem de saudação. |
config.clientAppInfo |
Opcional. As informações sobre o aplicativo cliente e o ambiente do dispositivo. |
config.mode |
Opcional. O modo da sessão. |
config.channelType |
Opcional. O tipo de canal usado para a comunicação do agente. |
config.enableListenOnlyDualChannel |
Opcional. Define se o canal duplo somente para ouvir será ativado na sessão. Se ativado, o cliente precisa fornecer o customerAudio e o crewAudio no AudioInput, e o CES vai fazer o EAC e a soma no servidor de processamento de mídia. |
config.testSessionStartTime |
Opcional. O horário de início da sessão, usado para fins de teste ou avaliação. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
turnType |
Opcional. Indicador explícito da posição da solicitação no ciclo de vida da sessão. Permite que os clientes controlem de forma determinística quando as variáveis de configuração da sessão inicial são injetadas. |
Campo de união input. A entrada do cliente. input pode ser apenas de um dos tipos a seguir: |
|
textInput |
A entrada de texto do cliente. |
audioInput |
A entrada de áudio do cliente. |
eventInput |
A entrada de evento do cliente. |
clientExecutionResult |
O resultado de uma solicitação de execução do cliente. |
blobInput |
Entrada de dados binários genéricos. Espelha http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Corpo da resposta
Mensagem de resposta para FoodOrderingService.ProcessOrder. Contém campos de BidiProcessOrderResponse, exceto os específicos de streaming.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
| Representação JSON |
|---|
{
"responses": [
{
object ( |
| Campos | |
|---|---|
responses[] |
Apenas saída. Lista de respostas do agente à solicitação, retornadas em ordem. |
Escopos de autorização
Requer o seguinte escopo OAuth:
https://www.googleapis.com/auth/cloud-platform
Para mais informações, consulte Authentication Overview.
TextInput
A entrada de texto do cliente. Em vez de áudio, o cliente pode enviar uma entrada de texto para o agente. Um cliente precisa usar entrada de texto ou de áudio, não ambas.
| Representação JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
Obrigatório. A declaração de texto do cliente. |
AudioInput
A entrada de áudio do cliente. O áudio de entrada pode ter vários canais para o cliente, a equipe etc. Todos eles precisam estar sincronizados e no formato especificado na configuração. Não inclua cabeçalhos de áudio. Por padrão, o áudio precisa usar a codificação de áudio PCM linear de 16 bits e uma taxa de amostragem de 16.000 Hz. O total de bytes de todos os canais precisa ser menor que 25.600 bytes.
| Representação JSON |
|---|
{ "customerAudio": string, "crewAudio": string } |
| Campos | |
|---|---|
customerAudio |
Obrigatório. Dados de áudio do cliente. Uma string codificada em base64. |
crewAudio |
Opcional. Dados de áudio da equipe. Esse é um canal de áudio opcional para o membro da equipe na mesma pista que o cliente e serve como áudio de referência para o cancelamento de eco. Uma string codificada em base64. |
EventInput
A entrada de evento do cliente. Isso é usado para acionar eventos específicos no agente.
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união event. Próximo ID: 10. O evento a ser acionado. event pode ser apenas de um dos tipos a seguir: |
|
driveOffEvent |
O evento de saída do veículo. |
crewInterjectionEvent |
O evento de interjeição da tripulação. |
updateOrderStateEvent |
Uma atualização do lado do cliente para o estado do pedido. |
clientEscalationEvent |
Um evento de encaminhamento do lado do cliente. |
customizedInputEvent |
Um evento de entrada personalizado. |
callerHangupEvent |
Opcional. Um evento de desligamento do autor da chamada. |
posErrorInput |
Opcional. Um evento de erro de PDV. |
DriveOffEvent
O evento de saída do veículo. Isso indica que o cliente saiu. A sessão será encerrada após esse evento.
| Representação JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Opcional. O motivo da saída, por exemplo, "pedido concluído", "saída inesperada". |
CrewInterjectionEvent
O evento de interjeição da gangue. Isso indica que um membro da equipe interrompeu a sessão. A sessão será encerrada após esse evento.
| Representação JSON |
|---|
{ "mode": string } |
| Campos | |
|---|---|
mode |
Opcional. O modo como o membro da tripulação interveio, por exemplo, "headset", "pos". |
OrderStateUpdateEvent
A solicitação de atualização do estado do pedido. Esse evento precisa ser enviado quando o pedido é atualizado no lado do cliente, por exemplo, quando um item é adicionado ou removido por uma interface de toque tradicional.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Obrigatório. O estado atualizado do pedido associado a essa sessão. |
ClientEscalationEvent
Indica que o cliente está encaminhando a sessão para um agente humano.
| Representação JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Opcional. O motivo do encaminhamento do cliente, por exemplo, "payment-declined", "pos-error", "integration-error" etc. |
CustomizedInputEvent
Esse campo permite que um cliente da Food AI envie um evento personalizado ao agente. Por padrão, é uma operação nula. Entre em contato com o suporte ao cliente para ativar esse recurso.
| Representação JSON |
|---|
{ "input": { object } } |
| Campos | |
|---|---|
input |
Obrigatório. Entrada do cliente para o agente. |
CallerHangupEvent
Esse tipo não tem campos.
Indica que o cliente desligou a chamada antes do tempo (por exemplo, aversão à IA).
PosErrorEvent
Falhas específicas do ponto de venda (PDV).
| Representação JSON |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| Campos | |
|---|---|
errorMessages[] |
Opcional. Uma lista de descrições legíveis por humanos dos erros. É possível fornecer várias mensagens de erro se vários problemas ocorrerem simultaneamente (por exemplo, vários itens estão fora de estoque) ou para fornecer um detalhamento mais detalhado de uma única falha complexa. Essas mensagens podem ser usadas pelo agente para informar o cliente ou para fins de registro. |
affectedItemUids[] |
Opcional. UIDs de itens exclusivos gerados pelo agente de IA para pedidos de comida que causaram o erro. Corresponde a |
affectedExternalIds[] |
Opcional. Lista de IDs externos (do menu) que causaram o erro. Precisa ser igual aos representantes reais no PDV, que geralmente estão nos atributos de integração em menu.proto (por exemplo, em |
metadata |
Opcional. Metadados de formato livre para depuração ou sinalização específica da marca. Pode ser usado para transmitir códigos do erro ou categorias específicas da marca (por exemplo, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). Um objeto com uma lista de pares |
ClientExecutionResult
O resultado de uma solicitação de execução do cliente.
| Representação JSON |
|---|
{ "executionId": string, // Union field |
| Campos | |
|---|---|
executionId |
Obrigatório. O ID da solicitação de execução que gerou este resultado. |
Campo de união response. O resultado específico da execução. response pode ser apenas de um dos tipos a seguir: |
|
finalizeOrderResponse |
O resultado da finalização do pedido. |
submitOrderResponse |
O resultado do envio do pedido. |
orderPricesResponse |
O resultado de receber os preços dos pedidos. |
validateDeliveryAddressResponse |
O resultado da validação do endereço de entrega. |
orderStatusResponse |
O resultado da consulta do status do pedido. |
FinalizeOrderResponse
O resultado da finalização do pedido.
| Representação JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Campos | |
|---|---|
paymentFlowEnabled |
Opcional. Se o fluxo de processamento de pagamentos deve ser ativado no agente. |
paymentInfo |
Opcional. As informações de pagamento do cliente. Não operacional se paymentFlowEnabled for falso. |
totalAmountDue |
Opcional. O valor total devido pelo pedido. |
orderPriceInfo |
Opcional. As informações detalhadas de preço do pedido. |
SubmitOrderResponse
O resultado do envio do pedido.
| Representação JSON |
|---|
{ "success": boolean, "estimatedReadyDuration": string } |
| Campos | |
|---|---|
success |
Obrigatório. Se o pedido foi enviado com sucesso. |
estimatedReadyDuration |
Opcional. A duração estimada até que o pedido esteja pronto. Duração em segundos com até nove dígitos fracionários, terminando em " |
OrderPricesResponse
O resultado de receber os preços dos pedidos.
| Representação JSON |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Campos | |
|---|---|
success |
Obrigatório. Se os preços do pedido foram recuperados. |
orderPriceInfo |
Opcional. Preço total do pedido após todos os descontos, taxas, tributos etc. |
ValidateDeliveryAddressResponse
O resultado da validação de um endereço de entrega.
| Representação JSON |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| Campos | |
|---|---|
success |
Obrigatório. Se a validação foi concluída sem erros. |
validationStatus |
Obrigatório. O status de validação do endereço de entrega. |
OrderStatusResponse
O resultado da consulta do status do pedido.
| Representação JSON |
|---|
{ "success": boolean } |
| Campos | |
|---|---|
success |
Obrigatório. Se o status do pedido foi recuperado. |
Blob
Representa uma entrada ou saída de blob na conversa.
| Representação JSON |
|---|
{ "mimeType": string, "data": string } |
| Campos | |
|---|---|
mimeType |
Obrigatório. O tipo MIME padrão da IANA dos dados de origem. |
data |
Obrigatório. Bytes brutos do blob. Uma string codificada em base64. |
Configuração
A configuração de uma sessão e das propriedades de pedido de comida. No início de cada conexão, o cliente precisa enviar uma mensagem de configuração. Isso precisa acontecer antes de qualquer outra solicitação para iniciar a sessão. Se o cliente se desconectar, ele precisará repetir a mesma mensagem de configuração ao se reconectar.
| Representação JSON |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "userInfo": { object ( |
| Campos | |
|---|---|
session |
Obrigatório. A sessão do pedido. Formato: |
store |
Obrigatório. A loja para a qual o pedido está sendo feito. Formato: |
laneId |
Opcional. O ID de uma faixa de drive-thru específica. |
enableEchoCancellation |
Opcional. Define se o cancelamento de eco será ativado para a sessão. Se ativado, o cliente precisa fornecer o customerAudio e o crewAudio no AudioInput. |
daypartId |
Opcional. Período do dia do cardápio, incluindo café da manhã, almoço, jantar etc. Isso é usado para determinar o cardápio a ser usado no pedido. |
userInfo |
Opcional. As informações pessoais do usuário final compartilhadas com o agente. |
orderType |
Opcional. Descontinuado: use initialOrder.fulfillment.fulfillment_type. O tipo de pedido a ser feito. |
initialOrder |
Opcional. O pedido inicial antes de iniciar a sessão do agente. Se fornecido, o agente o usará como o estado inicial do pedido. |
featureGate |
Opcional. Os feature gates da sessão. Isso é usado para ativar ou desativar recursos da sessão. |
initialUtterance |
Opcional. A fala inicial do cliente para iniciar a conversa. Se fornecido, o agente vai usar isso como a primeira fala do usuário e não vai começar com uma mensagem de saudação. |
clientAppInfo |
Opcional. As informações sobre o aplicativo cliente e o ambiente do dispositivo. |
mode |
Opcional. O modo da sessão. |
channelType |
Opcional. O tipo de canal usado para a comunicação do agente. |
enableListenOnlyDualChannel |
Opcional. Define se o canal duplo somente para ouvir será ativado na sessão. Se ativado, o cliente precisa fornecer o customerAudio e o crewAudio no AudioInput, e o CES vai fazer o EAC e a soma no servidor de processamento de mídia. |
testSessionStartTime |
Opcional. O horário de início da sessão, usado para fins de teste ou avaliação. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
UserInfo
Informações pessoais do usuário final compartilhadas com o agente de IA de alimentação.
| Representação JSON |
|---|
{ "preferredName": string, "paymentInfo": { object ( |
| Campos | |
|---|---|
preferredName |
Opcional. O nome que o agente deve usar para se dirigir ao usuário. O cliente da IA de alimentos é responsável por selecionar o nome preferido com base no perfil do usuário e garantir que ele esteja alinhado com a convenção da marca, por exemplo, usar o nome ou o nome completo. |
paymentInfo |
Opcional. As informações de pagamento do usuário. |
deliveryAddress |
Opcional. Descontinuado: use savedDeliveryAddress. O endereço de entrega salvo do usuário. |
pastOrders[] |
Opcional. O histórico de pedidos do usuário. |
loyaltyInfo |
Opcional. As informações de fidelidade do usuário. |
phoneNumber |
Opcional. O número de telefone do usuário. |
userId |
Opcional. O identificador exclusivo do usuário no sistema do cliente. |
savedDeliveryAddress |
Opcional. O endereço de entrega salvo do usuário. Vai substituir o campo deliveryAddress de string atual. |
PastOrder
O pedido anterior do usuário.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Obrigatório. O pedido original da IA de comida. |
LoyaltyInfo
Representa as informações de fidelidade de um cliente.
| Representação JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Campos | |
|---|---|
loyaltyAmount |
Obrigatório. O valor da fidelidade. Pode ser um saldo de fidelidade ou fidelidade consumida. |
OrderType
O tipo de pedido a ser feito.
| Tipos enumerados | |
|---|---|
ORDER_TYPE_UNSPECIFIED |
O tipo de pedido não foi especificado. |
ORDER_TYPE_DRIVE_THROUGH |
O pedido é para drive-thru. |
ORDER_TYPE_CARRY_OUT |
O pedido é para viagem. |
ORDER_TYPE_DELIVERY |
O pedido é para entrega. |
FeatureGate
Os feature gates da sessão. Isso é usado para ativar ou desativar recursos da sessão.
| Representação JSON |
|---|
{ "triggerOfferEngineOnDemand": boolean, "triggerLoyaltyOnDemand": boolean, "triggerOrderMediaAssistantOnDemand": boolean, "menuResponseEnabled": boolean, "revampedPaymentFlowEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| Campos | |
|---|---|
triggerOfferEngineOnDemand |
Opcional. Somente para um público limitado, se definido, o mecanismo de ofertas será opcional no fluxo de pagamento e só será acionado quando os usuários solicitarem. |
triggerLoyaltyOnDemand |
Opcional. Somente para público limitado, se definido, o programa de fidelidade será opcional no fluxo de pagamento e só será acionado quando os usuários solicitarem. |
triggerOrderMediaAssistantOnDemand |
Opcional. Apenas para público limitado, se definido, o assistente de mídia de pedido será opcional e só será acionado quando os usuários solicitarem. |
menuResponseEnabled |
Opcional. Retorna os dados do menu para o cliente em BidiProcessOrderResponse, se definido. |
revampedPaymentFlowEnabled |
Opcional. Somente para um público-alvo limitado, se definido, uma versão reformulada do fluxo de pagamento será usada. |
updatedOrderStateEnabled |
Opcional. Se definido, updatedOrderState será retornado em vez de legacyOrderStateResponse. |
enableOrderStatusRetrieval |
Opcional. Se definido, o agente vai oferecer suporte à recuperação do status do pedido. |
ClientAppInfo
Informações sobre o aplicativo cliente e o ambiente do dispositivo. Isso é usado principalmente para geração de registros, análise e depuração.
| Representação JSON |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| Campos | |
|---|---|
deviceModel |
Opcional. O modelo do dispositivo do cliente (por exemplo, "iPhone 13", "Pixel 7", "Kiosk v2"). |
osVersion |
Opcional. A versão do sistema operacional do cliente (por exemplo, "iOS 16.1", "Android 13"). |
sdkVersion |
Opcional. A versão do SDK do cliente ou do software de aplicativo. |
SessionMode
O modo da sessão.
| Tipos enumerados | |
|---|---|
SESSION_MODE_UNSPECIFIED |
O modo de sessão não foi especificado. |
HYBRID |
A sessão aceita áudio e texto. Esse é o padrão. |
TEXT |
A sessão é somente de texto. |
TurnType
Representa a posição do ciclo de vida de uma solicitação unária em uma sessão.
| Tipos enumerados | |
|---|---|
TURN_TYPE_UNSPECIFIED |
Tipo de curva não especificado. |
INITIALIZE |
Indica explicitamente que essa solicitação inicializa a sessão no modo unário. Quando definidas, as variáveis de sessão inicial (por exemplo, metadados e menus da loja) são injetadas no CES. |
SUBSEQUENT |
Indica explicitamente uma conversa subsequente ou uma atualização no meio da sessão. Quando definido, as variáveis de sessão inicial são omitidas para evitar a explosão de tokens de entrada. |
BidiProcessOrderResponse
A mensagem de nível superior retornada pelo método FoodOrderingService.BidiProcessOrder.
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união response. A resposta do agente. response pode ser apenas de um dos tipos a seguir: |
|
agentAudio |
A resposta em áudio do agente. |
speechRecognition |
O resultado do reconhecimento de fala do agente. |
legacyOrderStateResponse |
A resposta de estado do pedido legado para uma sessão. |
interruptionSignal |
Sinal de interrupção detectado na entrada de áudio. |
agentEvent |
Evento do agente. |
clientExecutionRequest |
A solicitação é encaminhada ao cliente para execução. Isso é usado para execução do lado do cliente, como adicionar um código ao pedido. |
updatedOrderState |
Indica uma atualização no estado do pedido. Inclui o estado completo do pedido. |
agentText |
A resposta em texto do agente. |
suggestedOptions |
Opções para sugerir ao cliente. |
sentimentMeasurement |
A pontuação de sentimento em tempo real medida para essa vez. |
turnCompleted |
Mensagem de curva concluída. |
endSession |
Indica que a sessão está terminando e que esta será a última vez. O agente vai terminar de enviar as respostas pendentes da vez atual e, em seguida, vai enviar uma mensagem turnCompleted final. O agente não vai iniciar novas interações. Por exemplo, uma sessão de 2 turnos será assim:
|
recommendedOrders |
Os pedidos recomendados pelo agente. |
AgentAudio
A resposta em áudio do agente.
| Representação JSON |
|---|
{ "agentAudio": string } |
| Campos | |
|---|---|
agentAudio |
Os dados de áudio do agente. Uma string codificada em base64. |
SpeechRecognition
O resultado do reconhecimento de fala do agente.
| Representação JSON |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| Campos | |
|---|---|
transcript |
Texto transcrito da entrada de áudio no idioma detectado. |
languageCode |
O código de idioma da transcrição. O código de idioma precisa estar no formato BCP-47, como "en-US". |
isFinal |
Indica se esta é a transcrição final da vez. |
InterruptionSignal
Esse tipo não tem campos.
Indica que a resposta de áudio do agente foi interrompida (por exemplo, por uma interrupção do usuário final). O cliente precisa interromper a reprodução imediatamente.
AgentEvent
Data especial do agente que exige que o cliente entre em ação.
| Representação JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de união event. O evento do agente. event pode ser apenas de um dos tipos a seguir: |
|
restartOrder |
O cliente pede para reiniciar o pedido. |
RestartOrder
O cliente pede para reiniciar o pedido.
| Representação JSON |
|---|
{ "confirmationStep": boolean } |
| Campos | |
|---|---|
confirmationStep |
O agente está pedindo ao cliente para confirmar a solicitação de reinicialização. |
ClientExecutionRequest
Uma solicitação para que o lado do cliente execute um comando.
| Representação JSON |
|---|
{ "executionId": string, // Union field |
| Campos | |
|---|---|
executionId |
Obrigatório. Um ID exclusivo para essa solicitação de execução. |
Campo de união request. A solicitação específica a ser executada. request pode ser apenas de um dos tipos a seguir: |
|
finalizeOrderRequest |
Uma solicitação para finalizar o pedido. |
submitOrderRequest |
Uma solicitação para enviar o pedido. |
orderPricesRequest |
Uma solicitação para receber os preços do pedido. |
validateDeliveryAddressRequest |
Uma solicitação para validar o endereço de entrega. |
orderStatusRequest |
Uma solicitação para receber o status do pedido. |
FinalizeOrderRequest
Esse tipo não tem campos.
Uma solicitação para finalizar o pedido. Normalmente, isso é enviado pelo agente quando o cliente indica que terminou o pedido e quer pagar.
SubmitOrderRequest
Uma solicitação para enviar o pedido, com todas as informações de pagamento necessárias coletadas do cliente.
| Representação JSON |
|---|
{ "paymentInfo": { object ( |
| Campos | |
|---|---|
paymentInfo |
Obrigatório. As informações de pagamento do pedido. |
loyaltyInfo |
Opcional. A fidelidade consumida para o pedido. |
tipAmount |
Opcional. O valor da gorjeta do pedido. |
OrderPricesRequest
Uma solicitação para receber os preços do pedido.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Opcional. O pedido para o qual os preços serão mostrados. Se não for especificado, podemos presumir que a solicitação é para o pedido/carrinho atual na sessão. |
ValidateDeliveryAddressRequest
Uma solicitação para validar um endereço de entrega coletado durante a sessão.
| Representação JSON |
|---|
{
"deliveryAddress": {
object ( |
| Campos | |
|---|---|
deliveryAddress |
Obrigatório. O endereço de entrega a ser validado. |
OrderStatusRequest
Esse tipo não tem campos.
Uma solicitação para receber o status do pedido.
UpdatedOrderState
Evento retornado pelo agente que representa uma atualização no estado do pedido.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
O estado atualizado do pedido associado a esta sessão. |
changed |
Apenas saída. Se o estado do pedido tem atualizações. |
AgentText
A resposta em texto do agente.
| Representação JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
A resposta em texto do agente. |
SuggestedOptions
Opções para sugerir ao cliente.
| Representação JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| Campos | |
|---|---|
suggestedModifierGroups |
Um grupo de modificadores sugeridos. |
Campo de união suggested_options. As opções sugeridas. suggested_options pode ser apenas de um dos tipos a seguir: |
|
suggestedItems |
Uma lista de itens para sugerir ao cliente. |
suggestedModifiers |
Uma lista de modificadores para sugerir ao cliente. |
SuggestedItems
Uma lista de itens para sugerir ao cliente.
| Representação JSON |
|---|
{
"items": [
{
object ( |
| Campos | |
|---|---|
items[] |
Os itens que serão sugeridos ao cliente. |
SuggestedItem
Um item para sugerir ao cliente.
| Representação JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| Campos | |
|---|---|
itemId |
ID do item no menu. |
displayName |
Nome legível por humanos para que esse item seja mostrado nas interfaces do usuário. |
image |
Imagem a ser exibida para este item na UI. |
basePrice |
O preço base do item. Isso pode ser afetado pelos modificadores selecionados. É o preço por unidade do item. |
integrationAttributes |
Metadados associados a essa entidade usados para integrações downstream. |
SuggestedModifiers
Uma lista de modificadores para sugerir ao cliente.
| Representação JSON |
|---|
{
"modifiers": [
{
object ( |
| Campos | |
|---|---|
modifiers[] |
Os modificadores que serão sugeridos ao cliente. |
parentUid |
O identificador exclusivo do item/modificador pai ao qual os modificadores serão aplicados. |
SuggestedModifier
Um modificador para sugerir ao cliente.
| Representação JSON |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| Campos | |
|---|---|
modifierId |
ID do modificador no menu. |
modifierGroupId |
ID do grupo de modificadores ao qual esse modificador será adicionado se a sugestão for aceita. |
modifierGroupDisplayName |
Nome de exibição do grupo de modificadores a que esse modificador pertence. |
displayName |
Nome legível por humanos para que esse item seja mostrado nas interfaces do usuário. |
image |
Imagem a ser exibida para este item na UI. |
priceAdjustment |
O ajuste de preço associado a esse modificador, se houver. É o preço por unidade do modificador. |
integrationAttributes |
Metadados associados a essa entidade usados para integrações downstream. |
alreadyIncluded |
Se esse modificador já está incluído no pedido. |
SuggestedModifierGroups
Uma lista de grupos de modificadores para sugerir ao cliente.
| Representação JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Campos | |
|---|---|
modifierGroups[] |
Os grupos de modificadores que serão sugeridos ao cliente. |
SuggestedModGroup
Um grupo de modificadores para sugerir ao cliente.
| Representação JSON |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| Campos | |
|---|---|
modifierGroupId |
ID do grupo de modificadores no cardápio. |
displayName |
O nome de exibição do grupo de modificadores. |
modifiers[] |
Os modificadores neste grupo. |
maxSelectionCount |
O número máximo de modificadores que podem ser selecionados nesse grupo. |
minSelectionCount |
O número mínimo de modificadores que precisam ser selecionados desse grupo. |
maxSelectionCountPerModifier |
Limita o número de vezes que cada modificador pode ser aplicado dentro desse grupo. |
SentimentMeasurement
A pontuação de sentimento em tempo real medida para essa vez.
| Representação JSON |
|---|
{ "score": number, "magnitude": number } |
| Campos | |
|---|---|
score |
Opcional. Sentimento entre -1,0 (sentimento negativo) e 1,0 (sentimento positivo). |
magnitude |
Opcional. Magnitude do sentimento, independentemente da pontuação. |
TurnCompleted
Esse tipo não tem campos.
Indica que o agente de IA de comida detectou o fim da conversa atual e não vai fornecer mais respostas para ela.
EndSession
Indica que o agente encerrou a sessão, seja por conclusão bem-sucedida (por exemplo, o usuário diz "Até logo!"), ) ou um encaminhamento para um supervisor.
| Representação JSON |
|---|
{ "type": enum ( |
| Campos | |
|---|---|
type |
O tipo de evento de encerramento de sessão. |
reason |
O motivo para encerrar a sessão. |
posResponse |
Opcional. A resposta do PDV ao fazer check-in do pedido (opcional). É um payload de string opaco que representa o status da transação do PDV. |
agentResponse |
Opcional. A mensagem de resposta final do agente a ser falada/exibida para o usuário (opcional). |
storeSchedule |
Opcional. A programação da loja. Isso só é definido quando o tipo de término é STORE_CLOSED. |
EndType
Tipo de evento de encerramento de sessão.
| Tipos enumerados | |
|---|---|
END_TYPE_UNSPECIFIED |
O tipo de término não está especificado. |
DRIVE_OFF |
O cliente foi embora. |
AGENT_ESCALATION |
O agente encaminhou a sessão para um agente humano. |
CREW_INTERJECTION |
Um membro da equipe interrompeu a sessão. |
ORDER_COMPLETED |
O pedido foi concluído, e nenhuma outra ação é necessária. |
PAYMENT_FLOW_SUCCESS |
O fluxo de pagamento foi concluído, e nenhuma outra ação é necessária. |
PAYMENT_FLOW_FAILURE |
O fluxo de pagamento falhou. |
CLIENT_ESCALATION |
O cliente encaminhou a sessão para um agente humano. |
CALLER_HANGUP |
O cliente desligou a chamada antes do tempo. |
REQUESTED_CHECKOUT |
O cliente pediu para fazer o checkout. |
REQUESTED_ORDER_STATUS |
O cliente perguntou sobre o status do pedido. |
STORE_CLOSED |
A loja está fechada. |
RecommendedOrders
Uma lista de pedidos recomendados pelo agente ao usuário.
| Representação JSON |
|---|
{
"recommendedOrders": [
{
object ( |
| Campos | |
|---|---|
recommendedOrders[] |
Os pedidos recomendados que serão mostrados ao usuário. |
RecommendedOrder
Um pedido recomendado pelo agente ao usuário.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
A ordem recomendada para exibição ao usuário. |