- 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
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- Config
- 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
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/v1/{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, "featureGate": { "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean }, "clientAppInfo": { "deviceModel": string, "osVersion": string, "sdkVersion": string }, "mode": enum ( |
| Campos | |
|---|---|
config.store |
Obrigatório. A loja em que 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. Usado para determinar o cardápio a ser usado no pedido. |
config.featureGate |
Opcional. Os feature gates da sessão. Usado para ativar ou desativar recursos da sessã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 escuta será ativado para a sessão. Se ativado, o cliente precisa fornecer customerAudio e crewAudio no AudioInput, e o CES fará EAC e 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 determinista 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. Reflete http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Corpo da resposta
Mensagem de resposta para FoodOrderingService.ProcessOrder. Contém funcionalmente 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 entrada de texto para o agente. Um cliente precisa usar entrada de texto ou áudio, não ambas.
| Representação JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
Obrigatório. A expressã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 codificação de áudio PCM linear de 16 bits e 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 faixa que o cliente, e serviu como áudio de referência para 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. |
crewInterjectionEvent |
O evento de interjeição da equipe. |
updateOrderStateEvent |
Uma atualização do lado do cliente no estado do pedido. |
clientEscalationEvent |
Um evento de encaminhamento do lado do cliente. |
callerHangupEvent |
Opcional. Um evento de desligamento do autor da chamada. |
posErrorInput |
Opcional. Um evento de erro de PDV. |
DriveOffEvent
O evento de saída. Isso indica que o cliente saiu do local. A sessão será encerrada após esse evento.
| Representação JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Opcional. O motivo da saída do veículo, por exemplo, "pedido concluído", "saída inesperada". |
CrewInterjectionEvent
O evento de interjeição da equipe. Isso indica que um membro da equipe interrompeu a sessão. A sessão será encerrada após este evento.
| Representação JSON |
|---|
{ "mode": string } |
| Campos | |
|---|---|
mode |
Opcional. O modo em que o membro da tripulação fez a intervenção, por exemplo, "headset", "pos". |
OrderStateUpdateEvent
A solicitação de atualização do estado do pedido. Esse evento deve ser enviado quando o pedido for atualizado no lado do cliente, por exemplo, quando um item for 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 esta sessão. |
ClientEscalationEvent
Indica que o cliente está encaminhando a sessão para um atendente humano.
| Representação JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Opcional. O motivo da escalonamento do cliente, por exemplo, "payment-declined", "pos-error", "integration-error" etc. |
CallerHangupEvent
Esse tipo não tem campos.
Indica que o cliente encerrou a ligação antes do tempo (por exemplo, por não querer falar com uma 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 dos erros. Várias mensagens de erro podem ser fornecidas se vários problemas ocorrerem simultaneamente (por exemplo, vários itens estão fora de estoque) ou para fornecer uma análise mais detalhada 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 POS, que geralmente estão em 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 ou categorias de erro específicos 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 para a qual este é um 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. |
orderPricesResponse |
O resultado da obtenção dos preços do pedido. |
validateDeliveryAddressResponse |
O resultado da validação do endereço de entrega. |
orderStatusResponse |
O resultado da solicitação 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 será ativado no agente. |
paymentInfo |
Opcional. As informações de pagamento do cliente. Não faz nada se "paymentFlowEnabled" for "false". |
totalAmountDue |
Opcional. O valor total devido do pedido. |
orderPriceInfo |
Opcional. As informações detalhadas de preços do pedido. |
PaymentInfo
Informações de pagamento do usuário.
| Representação JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| Campos | |
|---|---|
creditCardLastFourDigits |
Opcional. Os últimos quatro dígitos do cartão de crédito. Isso é usado para verificar o número do cartão de crédito na etapa de pagamento. |
creditCardCvv |
Opcional. CVV do cartão de crédito. |
paymentMethod |
Opcional. O tipo de forma de pagamento usada. |
PaymentMethod
O tipo de forma de pagamento.
| Tipos enumerados | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
Forma de pagamento não especificada. |
PAYMENT_METHOD_CREDIT_CARD |
Cartão de crédito. |
PAYMENT_METHOD_CASH |
Dinheiro. |
OrderPricesResponse
O resultado da obtenção dos preços do pedido.
| 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 solicitação do status do pedido.
| Representação JSON |
|---|
{ "success": boolean } |
| Campos | |
|---|---|
success |
Obrigatório. Indica 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 propriedades de pedidos 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, "featureGate": { object ( |
| Campos | |
|---|---|
session |
Obrigatório. A sessão do pedido. Formato: |
store |
Obrigatório. A loja em que 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. Usado para determinar o cardápio a ser usado no pedido. |
featureGate |
Opcional. Os feature gates da sessão. Usado para ativar ou desativar recursos da sessã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 escuta será ativado para a sessão. Se ativado, o cliente precisa fornecer customerAudio e crewAudio no AudioInput, e o CES fará EAC e 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: |
FeatureGate
Os feature gates da sessão. Usado para ativar ou desativar recursos da sessão.
| Representação JSON |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| Campos | |
|---|---|
menuResponseEnabled |
Opcional. Retorna os dados do menu para o cliente em BidiProcessOrderResponse, se definido. |
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álises 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 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 é compatível com áudio e texto. Esse é o padrão. |
TEXT |
A sessão é apenas 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 esta solicitação inicializa a sessão no modo unário. Quando definido, as variáveis de sessão iniciais (por exemplo, metadados e menus da loja) são injetadas no CES. |
SUBSEQUENT |
Indica explicitamente uma rodada de conversa subsequente ou uma atualização no meio da sessão. Quando definido, as variáveis de sessão iniciais são omitidas para evitar a explosão de tokens de entrada. |
BidiProcessOrderResponse
A mensagem de nível superior retornada do 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 do 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. 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 de 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 conclusão do turno. |
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 rodada atual e, em seguida, enviar uma mensagem final turnCompleted. O agente não vai iniciar novas interações. Por exemplo, uma sessão de duas interações será assim:
|
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 do 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 uma ação do cliente.
| 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 começar o pedido de novo.
| Representação JSON |
|---|
{ "confirmationStep": boolean } |
| Campos | |
|---|---|
confirmationStep |
O agente está pedindo para o cliente confirmar a solicitação de reinicialização. |
ClientExecutionRequest
Uma solicitação para o lado do cliente executar um comando.
| Representação JSON |
|---|
{ "executionId": string, // Union field |
| Campos | |
|---|---|
executionId |
Obrigatório. Um ID exclusivo para esta 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, essa mensagem é enviada pelo agente quando o cliente indica que terminou de fazer 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 no pedido. |
tipAmount |
Opcional. O valor da gorjeta do pedido. |
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 um consumo de fidelidade. |
LoyaltyAmount
Representa o valor de fidelidade de um cliente.
| Representação JSON |
|---|
{ "units": string } |
| Campos | |
|---|---|
units |
Obrigatório. Os pontos de fidelidade. |
OrderPricesRequest
Uma solicitação para receber os preços do pedido.
| Representação JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Opcional. O pedido para receber os preços. 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 de texto do agente.
| Representação JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
A resposta de 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 a serem 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 ser mostrado nas interfaces do usuário. |
image |
Imagem a ser mostrada 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 usada para integrações downstream. |
SuggestedModifiers
Uma lista de modificadores para sugerir ao cliente.
| Representação JSON |
|---|
{
"modifiers": [
{
object ( |
| Campos | |
|---|---|
modifiers[] |
Os modificadores a serem sugeridos ao cliente. |
parentUid |
O identificador exclusivo do item/modificador principal a que 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 a que este modificador será adicionado se a sugestão for aceita. |
modifierGroupDisplayName |
Nome de exibição do grupo a que este modificador pertence. |
displayName |
Nome legível por humanos para ser mostrado nas interfaces do usuário. |
image |
Imagem a ser mostrada 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 usada para integrações downstream. |
alreadyIncluded |
Indica se este 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 a serem 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 menu. |
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 neste 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 nesse 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, independente da pontuação. |
TurnCompleted
Esse tipo não tem campos.
Indica que o agente de IA de alimentos detectou o fim da conversa atual e não vai fornecer mais resultados para essa vez.
EndSession
Indica que o agente encerrou a sessão devido à conclusão bem-sucedida (por exemplo, o usuário diz "Tchau!" ) ou uma transferência para um agente.
| Representação JSON |
|---|
{ "type": enum ( |
| Campos | |
|---|---|
type |
O tipo de evento de encerramento da sessão. |
reason |
O motivo para encerrar a sessão. |
posResponse |
Opcional. A resposta do PDV ao fazer o check-in do pedido (opcional). É uma carga útil de string opaca que representa o status da transação do PDV. |
agentResponse |
Opcional. A mensagem final de resposta do agente a ser falada/mostrada ao usuário (opcional). |
storeSchedule |
Opcional. A programação da loja. Isso só é definido quando o tipo de fim é STORE_CLOSED. |
EndType
Tipo de evento de encerramento da sessão.
| Tipos enumerados | |
|---|---|
END_TYPE_UNSPECIFIED |
O tipo de fim não foi 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 com sucesso e nenhuma outra ação é necessária. |
PAYMENT_FLOW_SUCCESS |
O fluxo de pagamento foi concluído, e você não precisa fazer mais nada. |
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 finalizar a compra. |
REQUESTED_ORDER_STATUS |
O cliente perguntou sobre o status do pedido. |
STORE_CLOSED |
A loja está fechada. |