- Solicitud HTTP
- Parámetros de ruta
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Permisos de autorización
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- BLOB
- Configuración
- 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
Realiza una lógica de turno único para procesar la entrada del usuario y devolver el resultado.
Solicitud HTTP
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
La URL usa la sintaxis de la transcodificación gRPC.
Parámetros de ruta
| Parámetros | |
|---|---|
config.session |
Obligatorio. Es la sesión del pedido. Formato: |
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
| Representación 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 |
Obligatorio. La tienda para la que se realiza el pedido. Formato: |
config.laneId |
Es opcional. Es el ID de un carril de acceso vehicular específico. |
config.enableEchoCancellation |
Es opcional. Indica si se debe habilitar la cancelación de eco para la sesión. Si está habilitado, el cliente debe proporcionar customerAudio y crewAudio en AudioInput. |
config.daypartId |
Es opcional. Es el momento del día del menú de comida, como desayuno, almuerzo, cena, etc. Se usa para determinar el menú que se usará para el pedido. |
config.featureGate |
Es opcional. Son los interruptores de función de la sesión. Se usa para habilitar o inhabilitar funciones de la sesión. |
config.clientAppInfo |
Es opcional. Es la información sobre la aplicación cliente y el entorno del dispositivo. |
config.mode |
Es opcional. Es el modo de la sesión. |
config.channelType |
Es opcional. Es el tipo de canal que se usa para la comunicación con el agente. |
config.enableListenOnlyDualChannel |
Es opcional. Indica si se debe habilitar el canal doble de solo escucha para la sesión. Si se habilita, el cliente debe proporcionar customerAudio y crewAudio en AudioInput, y CES realizará la EAC y la suma en el servidor de procesamiento de contenido multimedia. |
config.testSessionStartTime |
Es opcional. Es la hora de inicio de la sesión, que se usa para realizar pruebas o evaluaciones. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
turnType |
Es opcional. Es un indicador explícito de la posición de la solicitud en el ciclo de vida de la sesión. Permite que los clientes controlen de forma determinística cuándo se insertan las variables de configuración de la sesión inicial. |
Campo de unión input. La entrada del cliente. input puede ser solo uno de los parámetros siguientes: |
|
textInput |
La entrada de texto del cliente. |
audioInput |
Es la entrada de audio del cliente. |
eventInput |
La entrada del evento del cliente. |
clientExecutionResult |
Es el resultado de una solicitud de ejecución del cliente. |
blobInput |
Entrada de datos binarios genéricos. Duplica http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Cuerpo de la respuesta
Mensaje de respuesta para FoodOrderingService.ProcessOrder. Contiene de forma funcional campos de BidiProcessOrderResponse, excepto los específicos de la transmisión.
Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:
| Representación JSON |
|---|
{
"responses": [
{
object ( |
| Campos | |
|---|---|
responses[] |
Solo salida. Es la lista de respuestas del agente a la solicitud, que se devuelve en orden. |
Permisos de autorización
Requiere el siguiente permiso de OAuth:
https://www.googleapis.com/auth/cloud-platform
Para obtener más información, consulta Authentication Overview.
TextInput
La entrada de texto del cliente. En lugar de audio, el cliente puede enviar una entrada de texto al agente. Un cliente debe usar una entrada de texto o de audio, no ambas.
| Representación JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
Obligatorio. Es la expresión de texto del cliente. |
AudioInput
Es la entrada de audio del cliente. El audio de entrada puede tener varios canales para el cliente, el equipo, etc. Todos deben estar sincronizados y en el formato especificado en la configuración. No se deben incluir encabezados de audio. De forma predeterminada, el audio debe usar la codificación de audio PCM lineal de 16 bits y una tasa de muestreo de 16,000 Hz. La cantidad total de bytes de todos los canales debe ser inferior a 25,600 bytes.
| Representación JSON |
|---|
{ "customerAudio": string, "crewAudio": string } |
| Campos | |
|---|---|
customerAudio |
Obligatorio. Datos de audio del cliente. Es una cadena codificada en Base64. |
crewAudio |
Es opcional. Datos de audio de la tripulación. Este es un canal de audio opcional para el miembro del personal que se encuentra en el mismo carril que el cliente y se usó como audio de referencia para la cancelación de eco. Es una cadena codificada en Base64. |
EventInput
La entrada del evento del cliente. Se usa para activar eventos específicos dentro del agente.
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión event. ID siguiente: 10 El evento que se activará. event puede ser solo uno de los parámetros siguientes: |
|
driveOffEvent |
El evento de salida. |
crewInterjectionEvent |
Es el evento de interjección de la tripulación. |
updateOrderStateEvent |
Es una actualización del estado del pedido del cliente. |
clientEscalationEvent |
Es un evento de derivación del cliente. |
callerHangupEvent |
Es opcional. Es un evento de corte de llamada por parte del emisor. |
posErrorInput |
Es opcional. Es un evento de error de POS. |
DriveOffEvent
El evento de salida. Esto indica que el cliente se fue. La sesión se cerrará después de este evento.
| Representación JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Es opcional. Es el motivo de la salida, p.ej., "pedido completado", "salida inesperada". |
CrewInterjectionEvent
Es el evento de interjección de la tripulación. Esto indica que un miembro del equipo intervino en la sesión. La sesión se cerrará después de este evento.
| Representación JSON |
|---|
{ "mode": string } |
| Campos | |
|---|---|
mode |
Es opcional. Es el modo en el que intervino el miembro del equipo, p.ej., "headset", "pos". |
OrderStateUpdateEvent
Es la solicitud para actualizar el estado del pedido. Este evento se debe enviar cuando se actualiza el pedido en el cliente, p.ej., cuando se agrega o quita un artículo a través de una interfaz táctil tradicional.
| Representación JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Obligatorio. Es el estado actualizado del pedido asociado a esta sesión. |
ClientEscalationEvent
Indica que el cliente está derivando la sesión a un agente humano.
| Representación JSON |
|---|
{ "reason": string } |
| Campos | |
|---|---|
reason |
Es opcional. Es el motivo de la derivación del cliente, p.ej., "payment-declined", "pos-error", "integration-error", etc. |
CallerHangupEvent
Este tipo no tiene campos.
Indica que el cliente colgó la llamada antes de tiempo (p.ej., por aversión a la IA).
PosErrorEvent
Fallas específicas del punto de venta (PdV)
| Representación JSON |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| Campos | |
|---|---|
errorMessages[] |
Es opcional. Es una lista de descripciones legibles por humanos de los errores. Se pueden proporcionar varios mensajes de error si se producen varios problemas de forma simultánea (p.ej., varios artículos están agotados) o para proporcionar un desglose más detallado de una sola falla compleja. El agente puede usar estos mensajes para informar al cliente o con fines de registro. |
affectedItemUids[] |
Es opcional. Son los UID de elementos únicos generados por el agente de IA para Pedidos de comida que causaron el error. Corresponde a |
affectedExternalIds[] |
Es opcional. Es la lista de IDs externos (del menú) que causaron el error. Debe ser igual a los representantes reales en el PdV, que suelen estar en los atributos de integración en menu.proto (p.ej., en |
metadata |
Es opcional. Son metadatos de formato libre para la depuración o la señalización específica de la marca. Se puede usar para pasar categorías o códigos de error específicos de la marca (p.ej., {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}). Un objeto que contiene una lista de pares |
ClientExecutionResult
Es el resultado de una solicitud de ejecución del cliente.
| Representación JSON |
|---|
{ "executionId": string, // Union field |
| Campos | |
|---|---|
executionId |
Obligatorio. Es el ID de la solicitud de ejecución para la que se genera este resultado. |
Campo de unión response. Es el resultado específico de la ejecución. response puede ser solo uno de los parámetros siguientes: |
|
finalizeOrderResponse |
Es el resultado de finalizar el pedido. |
orderPricesResponse |
Es el resultado de obtener los precios de los pedidos. |
validateDeliveryAddressResponse |
Es el resultado de la validación de la dirección de entrega. |
orderStatusResponse |
Es el resultado de obtener el estado del pedido. |
FinalizeOrderResponse
Es el resultado de finalizar el pedido.
| Representación JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Campos | |
|---|---|
paymentFlowEnabled |
Es opcional. Indica si se debe habilitar el flujo de control de pagos en el agente. |
paymentInfo |
Es opcional. Es la información de pago del cliente. No se realiza ninguna acción si paymentFlowEnabled es falso. |
totalAmountDue |
Es opcional. Es el importe total adeudado por el pedido. |
orderPriceInfo |
Es opcional. Es la información detallada del precio del pedido. |
PaymentInfo
Es la información de pago del usuario.
| Representación JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| Campos | |
|---|---|
creditCardLastFourDigits |
Es opcional. Los últimos cuatro dígitos de la tarjeta de crédito Se usa para verificar el número de tarjeta de crédito en la etapa de pago. |
creditCardCvv |
Es opcional. Es el CVV de la tarjeta de crédito. |
paymentMethod |
Es opcional. El tipo de forma de pago utilizado |
PaymentMethod
Es el tipo de forma de pago.
| Enums | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
Forma de pago no especificada. |
PAYMENT_METHOD_CREDIT_CARD |
Tarjeta de crédito |
PAYMENT_METHOD_CASH |
Efectivo |
OrderPricesResponse
Es el resultado de obtener los precios de los pedidos.
| Representación JSON |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| Campos | |
|---|---|
success |
Obligatorio. Indica si los precios del pedido se recuperaron correctamente. |
orderPriceInfo |
Es opcional. Es el precio total del pedido después de aplicar todos los descuentos, las tarifas, los impuestos, etcétera. |
ValidateDeliveryAddressResponse
Es el resultado de validar una dirección de entrega.
| Representación JSON |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| Campos | |
|---|---|
success |
Obligatorio. Indica si la validación se completó sin errores. |
validationStatus |
Obligatorio. Es el estado de validación de la dirección de entrega. |
OrderStatusResponse
Es el resultado de obtener el estado del pedido.
| Representación JSON |
|---|
{ "success": boolean } |
| Campos | |
|---|---|
success |
Obligatorio. Indica si el estado del pedido se recuperó correctamente. |
BLOB
Representa una entrada o salida de BLOB en la conversación.
| Representación JSON |
|---|
{ "mimeType": string, "data": string } |
| Campos | |
|---|---|
mimeType |
Obligatorio. Es el tipo de MIME estándar de IANA de los datos de origen. |
data |
Obligatorio. Son los bytes sin procesar del BLOB. Es una cadena codificada en Base64. |
Configuración
La configuración de una sesión y las propiedades de los pedidos de comida. Al comienzo de cada conexión, el cliente primero debe enviar un mensaje de configuración. Esto debe ocurrir antes de cualquier otra solicitud para iniciar la sesión. Si el cliente se desconecta, debe repetir el mismo mensaje de configuración cuando se vuelva a conectar.
| Representación JSON |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { object ( |
| Campos | |
|---|---|
session |
Obligatorio. Es la sesión del pedido. Formato: |
store |
Obligatorio. La tienda para la que se realiza el pedido. Formato: |
laneId |
Es opcional. Es el ID de un carril de acceso vehicular específico. |
enableEchoCancellation |
Es opcional. Indica si se debe habilitar la cancelación de eco para la sesión. Si está habilitado, el cliente debe proporcionar customerAudio y crewAudio en AudioInput. |
daypartId |
Es opcional. Es el momento del día del menú de comida, como desayuno, almuerzo, cena, etc. Se usa para determinar el menú que se usará para el pedido. |
featureGate |
Es opcional. Son los interruptores de función de la sesión. Se usa para habilitar o inhabilitar funciones de la sesión. |
clientAppInfo |
Es opcional. Es la información sobre la aplicación cliente y el entorno del dispositivo. |
mode |
Es opcional. Es el modo de la sesión. |
channelType |
Es opcional. Es el tipo de canal que se usa para la comunicación con el agente. |
enableListenOnlyDualChannel |
Es opcional. Indica si se debe habilitar el canal doble de solo escucha para la sesión. Si se habilita, el cliente debe proporcionar customerAudio y crewAudio en AudioInput, y CES realizará la EAC y la suma en el servidor de procesamiento de contenido multimedia. |
testSessionStartTime |
Es opcional. Es la hora de inicio de la sesión, que se usa para realizar pruebas o evaluaciones. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
FeatureGate
Son los interruptores de función de la sesión. Se usa para habilitar o inhabilitar funciones de la sesión.
| Representación JSON |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| Campos | |
|---|---|
menuResponseEnabled |
Es opcional. Devuelve los datos del menú al cliente en BidiProcessOrderResponse si se establece. |
updatedOrderStateEnabled |
Es opcional. Si se establece, se devuelve updatedOrderState en lugar de legacyOrderStateResponse. |
enableOrderStatusRetrieval |
Es opcional. Si se establece, el agente admitirá la recuperación del estado del pedido. |
ClientAppInfo
Información sobre la aplicación cliente y el entorno del dispositivo. Se usa principalmente para el registro, el análisis y la depuración.
| Representación JSON |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| Campos | |
|---|---|
deviceModel |
Es opcional. Es el modelo del dispositivo del cliente (p.ej., "iPhone 13", "Pixel 7", "Kiosk v2"). |
osVersion |
Es opcional. Es la versión del sistema operativo del cliente (p.ej., "iOS 16.1", "Android 13"). |
sdkVersion |
Es opcional. Es la versión del SDK de cliente o del software de aplicación. |
SessionMode
Es el modo de la sesión.
| Enums | |
|---|---|
SESSION_MODE_UNSPECIFIED |
No se especificó el modo de sesión. |
HYBRID |
La sesión admite audio y texto. Esta es la opción predeterminada. |
TEXT |
La sesión es solo de texto. |
TurnType
Representa la posición del ciclo de vida de una solicitud unaria dentro de una sesión.
| Enums | |
|---|---|
TURN_TYPE_UNSPECIFIED |
Indica que no se especificó el tipo de giro. |
INITIALIZE |
Indica de forma explícita que esta solicitud inicializa la sesión en modo unario. Cuando se configuran, las variables de sesión iniciales (p.ej., los metadatos y los menús de la tienda) se insertan en el CES. |
SUBSEQUENT |
Indica de forma explícita un turno de conversación posterior o una actualización a mitad de la sesión. Cuando se establece, se omiten las variables de sesión iniciales para evitar la explosión de tokens de entrada. |
BidiProcessOrderResponse
Es el mensaje de nivel superior que se devuelve del método FoodOrderingService.BidiProcessOrder.
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión response. La respuesta del agente. response puede ser solo uno de los parámetros siguientes: |
|
agentAudio |
Es la respuesta de audio del agente. |
speechRecognition |
Es el resultado del reconocimiento de voz del agente. |
legacyOrderStateResponse |
Es la respuesta de estado del pedido heredado para una sesión. |
interruptionSignal |
Se detectó una señal de interrupción en la entrada de audio. |
agentEvent |
Es el evento del agente. |
clientExecutionRequest |
La solicitud se reenvía al cliente para que la ejecute. Se usa para la ejecución del cliente, como agregar un código al pedido. |
updatedOrderState |
Indica una actualización del estado del pedido. Incluye el estado completo del pedido. |
agentText |
Es la respuesta de texto del agente. |
suggestedOptions |
Opciones para sugerirle al cliente. |
sentimentMeasurement |
Es la puntuación de opinión en tiempo real medida para este turno. |
turnCompleted |
Mensaje de giro completado. |
endSession |
Indica que la sesión está finalizando y que este será el último turno. El agente terminará de enviar las respuestas pendientes para el turno actual y, luego, enviará un mensaje final de turnCompleted. El agente no iniciará ningún turno nuevo. Por ejemplo, una sesión de 2 turnos se verá de la siguiente manera:
|
AgentAudio
Es la respuesta de audio del agente.
| Representación JSON |
|---|
{ "agentAudio": string } |
| Campos | |
|---|---|
agentAudio |
Son los datos de audio del agente. Es una cadena codificada en Base64. |
SpeechRecognition
Es el resultado del reconocimiento de voz del agente.
| Representación JSON |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| Campos | |
|---|---|
transcript |
Es el texto transcrito de la entrada de audio en el idioma detectado. |
languageCode |
Es el código de idioma de la transcripción. El código de idioma debe estar en formato BCP-47, como "en-US". |
isFinal |
Indica si esta es la transcripción final del turno. |
InterruptionSignal
Este tipo no tiene campos.
Indica que se interrumpió la respuesta de audio del agente (p.ej., por la interrupción del usuario final). El cliente debería detener la reproducción de inmediato.
AgentEvent
Es un evento especial del agente que requiere que el cliente tome medidas.
| Representación JSON |
|---|
{ // Union field |
| Campos | |
|---|---|
Campo de unión event. Es el evento del agente. event puede ser solo uno de los parámetros siguientes: |
|
restartOrder |
El cliente solicita reiniciar el pedido. |
RestartOrder
El cliente solicita volver a iniciar el pedido.
| Representación JSON |
|---|
{ "confirmationStep": boolean } |
| Campos | |
|---|---|
confirmationStep |
El agente le pide al cliente que confirme la solicitud de reinicio. |
ClientExecutionRequest
Es una solicitud para que el cliente ejecute un comando.
| Representación JSON |
|---|
{ "executionId": string, // Union field |
| Campos | |
|---|---|
executionId |
Obligatorio. Es un ID único para esta solicitud de ejecución. |
Campo de unión request. Es la solicitud específica que se ejecutará. request puede ser solo uno de los parámetros siguientes: |
|
finalizeOrderRequest |
Es una solicitud para finalizar el pedido. |
submitOrderRequest |
Es una solicitud para enviar el pedido. |
orderPricesRequest |
Es una solicitud para obtener los precios de los pedidos. |
validateDeliveryAddressRequest |
Una solicitud para validar la dirección de entrega |
orderStatusRequest |
Una solicitud para obtener el estado del pedido. |
FinalizeOrderRequest
Este tipo no tiene campos.
Es una solicitud para finalizar el pedido. Por lo general, el agente lo envía cuando el cliente indica que terminó de hacer el pedido y quiere pagar.
SubmitOrderRequest
Una solicitud para enviar el pedido, con toda la información de pago requerida recopilada del cliente.
| Representación JSON |
|---|
{ "paymentInfo": { object ( |
| Campos | |
|---|---|
paymentInfo |
Obligatorio. Es la información de pago del pedido. |
loyaltyInfo |
Es opcional. Es la fidelidad consumida para el pedido. |
tipAmount |
Es opcional. Es el importe de la propina del pedido. |
LoyaltyInfo
Representa la información de lealtad de un cliente.
| Representación JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Campos | |
|---|---|
loyaltyAmount |
Obligatorio. Es el importe de lealtad. Puede ser un saldo de lealtad o un consumo de lealtad. |
LoyaltyAmount
Representa el importe de lealtad de un cliente.
| Representación JSON |
|---|
{ "units": string } |
| Campos | |
|---|---|
units |
Obligatorio. Son los puntos de lealtad. |
OrderPricesRequest
Es una solicitud para obtener los precios de los pedidos.
| Representación JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Es opcional. Es el pedido para el que se obtendrán los precios. Si no se especifica, podemos suponer que la solicitud es para el pedido o carrito existente en la sesión. |
ValidateDeliveryAddressRequest
Es una solicitud para validar una dirección de entrega recopilada durante la sesión.
| Representación JSON |
|---|
{
"deliveryAddress": {
object ( |
| Campos | |
|---|---|
deliveryAddress |
Obligatorio. Es la dirección de entrega que se validará. |
OrderStatusRequest
Este tipo no tiene campos.
Una solicitud para obtener el estado del pedido.
UpdatedOrderState
Es el evento que devuelve el agente y que representa una actualización del estado del pedido.
| Representación JSON |
|---|
{
"order": {
object ( |
| Campos | |
|---|---|
order |
Es el estado actualizado del pedido asociado a esta sesión. |
changed |
Solo salida. Indica si el estado del pedido tiene actualizaciones. |
AgentText
Es la respuesta de texto del agente.
| Representación JSON |
|---|
{ "text": string } |
| Campos | |
|---|---|
text |
Es la respuesta de texto del agente. |
SuggestedOptions
Opciones para sugerirle al cliente.
| Representación JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| Campos | |
|---|---|
suggestedModifierGroups |
Es un grupo de modificadores sugeridos. |
Campo de unión suggested_options. Las opciones sugeridas. suggested_options puede ser solo uno de los parámetros siguientes: |
|
suggestedItems |
Es una lista de artículos que se le sugerirán al cliente. |
suggestedModifiers |
Es una lista de modificadores que se le sugerirán al cliente. |
SuggestedItems
Es una lista de artículos que se le sugerirán al cliente.
| Representación JSON |
|---|
{
"items": [
{
object ( |
| Campos | |
|---|---|
items[] |
Son los artículos que se le sugerirán al cliente. |
SuggestedItem
Es un artículo que se le sugiere al cliente.
| Representación JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| Campos | |
|---|---|
itemId |
Es el ID del elemento en el menú. |
displayName |
Nombre legible por humanos de este elemento que se mostrará en las interfaces de usuario. |
image |
Es la imagen que se mostrará para este elemento en la IU. |
basePrice |
Es el precio base del artículo. Esto puede verse afectado por los modificadores seleccionados. Es el precio por unidad del artículo. |
integrationAttributes |
Son los metadatos asociados con esta entidad que se usan para las integraciones downstream. |
SuggestedModifiers
Es una lista de modificadores que se le sugerirán al cliente.
| Representación JSON |
|---|
{
"modifiers": [
{
object ( |
| Campos | |
|---|---|
modifiers[] |
Son los modificadores que se le sugerirán al cliente. |
parentUid |
Es el identificador único del elemento o modificador superior al que se aplicarán los modificadores. |
SuggestedModifier
Un modificador para sugerir al cliente.
| Representación JSON |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| Campos | |
|---|---|
modifierId |
Es el ID del modificador en el menú. |
modifierGroupId |
Es el ID del grupo de modificadores al que se debe agregar este modificador si se acepta la sugerencia. |
modifierGroupDisplayName |
Es el nombre visible del grupo de modificadores al que pertenece este modificador. |
displayName |
Nombre legible por humanos de este elemento que se mostrará en las interfaces de usuario. |
image |
Es la imagen que se mostrará para este elemento en la IU. |
priceAdjustment |
Es el ajuste de precio asociado con este modificador, si lo hay. Este es el precio por unidad del modificador. |
integrationAttributes |
Son los metadatos asociados con esta entidad que se usan para las integraciones downstream. |
alreadyIncluded |
Indica si este modificador ya está incluido en el pedido. |
SuggestedModifierGroups
Es una lista de grupos de modificadores que se sugerirán al cliente.
| Representación JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Campos | |
|---|---|
modifierGroups[] |
Son los grupos de modificadores que se sugerirán al cliente. |
SuggestedModGroup
Es un grupo de modificadores que se sugiere al cliente.
| Representación JSON |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| Campos | |
|---|---|
modifierGroupId |
Es el ID del grupo de modificadores en el menú. |
displayName |
Es el nombre visible del grupo de modificadores. |
modifiers[] |
Son los modificadores de este grupo. |
maxSelectionCount |
Es la cantidad máxima de modificadores que se pueden seleccionar de este grupo. |
minSelectionCount |
Es la cantidad mínima de modificadores que se deben seleccionar de este grupo. |
maxSelectionCountPerModifier |
Limita la cantidad de veces que se puede aplicar cada modificador dentro de este grupo. |
SentimentMeasurement
Es la puntuación de opinión en tiempo real medida para este turno.
| Representación JSON |
|---|
{ "score": number, "magnitude": number } |
| Campos | |
|---|---|
score |
Es opcional. Puntuación de opinión entre -1.0 (opinión negativa) y 1.0 (opinión positiva). |
magnitude |
Es opcional. Magnitud del sentimiento, independientemente de la puntuación. |
TurnCompleted
Este tipo no tiene campos.
Indica que el agente de IA de comida detectó el final del turno de conversación actual y no proporcionará más resultados para este turno.
EndSession
Indica que el agente finalizó la sesión, ya sea porque se completó correctamente (p.ej., el usuario dice "¡Adiós!") ) o una derivación a un agente.
| Representación JSON |
|---|
{ "type": enum ( |
| Campos | |
|---|---|
type |
Es el tipo de evento de finalización de sesión. |
reason |
Es el motivo por el que finalizó la sesión. |
posResponse |
Es opcional. Es la respuesta del PdV después de registrar el pedido (opcional). Esta es una carga útil de cadena opaca que representa el estado de la transacción de PdV. |
agentResponse |
Es opcional. Es el mensaje de respuesta final del agente que se dirá o mostrará al usuario (opcional). |
storeSchedule |
Es opcional. Es el horario de la tienda. Esto solo se establece cuando el tipo de finalización es STORE_CLOSED. |
EndType
Es el tipo de evento de finalización de sesión.
| Enums | |
|---|---|
END_TYPE_UNSPECIFIED |
No se especifica el tipo de finalización. |
DRIVE_OFF |
El cliente se fue en su vehículo. |
AGENT_ESCALATION |
El agente derivó la sesión a un agente humano. |
CREW_INTERJECTION |
Un miembro del equipo interrumpió la sesión. |
ORDER_COMPLETED |
El pedido se completó correctamente y no es necesario que realices ninguna otra acción. |
PAYMENT_FLOW_SUCCESS |
El flujo de pago se completó correctamente y no se requiere ninguna otra acción. |
PAYMENT_FLOW_FAILURE |
Se produjo un error en el flujo de pago. |
CLIENT_ESCALATION |
El cliente derivó la sesión a un agente humano. |
CALLER_HANGUP |
El cliente cortó la llamada antes de tiempo. |
REQUESTED_CHECKOUT |
El cliente solicitó pagar. |
REQUESTED_ORDER_STATUS |
El cliente preguntó sobre el estado de su pedido. |
STORE_CLOSED |
La tienda está cerrada. |