Method: projects.locations.sessions.processOrder

Melakukan logika giliran tunggal untuk memproses input pengguna dan menampilkan hasilnya.

Permintaan HTTP

POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder

URL menggunakan sintaks gRPC Transcoding.

Parameter jalur

Parameter
config.session

string

Wajib. Sesi untuk pesanan. Format: projects/{project}/locations/{location}/sessions/{session}

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "config": {
    "session": string,
    "store": string,
    "laneId": string,
    "enableEchoCancellation": boolean,
    "daypartId": string,
    "featureGate": {
      "menuResponseEnabled": boolean,
      "updatedOrderStateEnabled": boolean,
      "enableOrderStatusRetrieval": boolean
    },
    "clientAppInfo": {
      "deviceModel": string,
      "osVersion": string,
      "sdkVersion": string
    },
    "mode": enum (SessionMode),
    "channelType": enum (ChannelType),
    "enableListenOnlyDualChannel": boolean,
    "testSessionStartTime": string
  },
  "turnType": enum (TurnType),

  // Union field input can be only one of the following:
  "textInput": {
    object (TextInput)
  },
  "audioInput": {
    object (AudioInput)
  },
  "eventInput": {
    object (EventInput)
  },
  "clientExecutionResult": {
    object (ClientExecutionResult)
  },
  "blobInput": {
    object (Blob)
  }
  // End of list of possible types for union field input.
}
Kolom
config.store

string

Wajib. Toko tempat pesanan dilakukan. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

Opsional. ID jalur drive-through tertentu.

config.enableEchoCancellation

boolean

Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput.

config.daypartId

string

Opsional. Bagian waktu menu makanan, termasuk sarapan, makan siang, makan malam, dll. Ini digunakan untuk menentukan menu yang akan digunakan untuk pesanan.

config.featureGate

object (FeatureGate)

Opsional. Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi.

config.clientAppInfo

object (ClientAppInfo)

Opsional. Informasi tentang aplikasi klien dan lingkungan perangkat.

config.mode

enum (SessionMode)

Opsional. Mode sesi.

config.channelType

enum (ChannelType)

Opsional. Jenis saluran yang digunakan untuk komunikasi agen.

config.enableListenOnlyDualChannel

boolean

Opsional. Apakah akan mengaktifkan saluran ganda hanya dengar untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput, dan CES akan melakukan EAC dan penjumlahan di server pemrosesan media.

config.testSessionStartTime

string (Timestamp format)

Opsional. Waktu mulai sesi, digunakan untuk tujuan pengujian atau evaluasi.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

turnType

enum (TurnType)

Opsional. Indikator eksplisit posisi permintaan dalam siklus proses sesi. Memungkinkan klien mengontrol secara deterministik kapan variabel penyiapan sesi awal disisipkan.

Kolom union input. Input dari klien. input hanya ada berupa salah satu diantara berikut:
textInput

object (TextInput)

Input teks dari klien.

audioInput

object (AudioInput)

Input audio dari klien.

eventInput

object (EventInput)

Input peristiwa dari klien.

clientExecutionResult

object (ClientExecutionResult)

Hasil permintaan eksekusi klien.

blobInput

object (Blob)

Input data biner generik. Mirror http://google3/google/cloud/ces/v1main/session_service.proto?l=720

Isi respons

Pesan respons untuk FoodOrderingService.ProcessOrder. Secara fungsional berisi kolom dari BidiProcessOrderResponse minus kolom khusus streaming.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "responses": [
    {
      object (BidiProcessOrderResponse)
    }
  ]
}
Kolom
responses[]

object (BidiProcessOrderResponse)

Hanya output. Daftar respons agen terhadap permintaan, ditampilkan secara berurutan.

Cakupan otorisasi

Memerlukan cakupan OAuth berikut:

  • https://www.googleapis.com/auth/cloud-platform

Untuk mengetahui informasi selengkapnya, lihat Authentication Overview.

TextInput

Input teks dari klien. Sebagai alternatif, klien dapat mengirim input teks ke agen, bukan audio. Klien harus menggunakan input teks atau audio, bukan keduanya.

Representasi JSON
{
  "text": string
}
Kolom
text

string

Wajib. Ucapan teks dari klien.

AudioInput

Input audio dari klien. Audio input mungkin memiliki beberapa saluran untuk pelanggan, kru, dll. Semua saluran ini harus disinkronkan dan dalam format yang ditentukan dalam konfigurasi. Header audio tidak boleh disertakan. Secara default, audio harus menggunakan encoding audio PCM linear 16-bit dan frekuensi sampling 16.000 Hz. Total byte dari semua saluran harus kurang dari 25.600 byte.

Representasi JSON
{
  "customerAudio": string,
  "crewAudio": string
}
Kolom
customerAudio

string (bytes format)

Wajib. Data audio pelanggan.

String berenkode base64.

crewAudio

string (bytes format)

Opsional. Data audio kru. Ini adalah saluran audio opsional untuk anggota kru di jalur yang sama dengan pelanggan, dan berfungsi sebagai audio referensi untuk peredam gema.

String berenkode base64.

EventInput

Input peristiwa dari klien. Ini digunakan untuk memicu peristiwa tertentu dalam agen.

Representasi JSON
{

  // Union field event can be only one of the following:
  "driveOffEvent": {
    object (DriveOffEvent)
  },
  "crewInterjectionEvent": {
    object (CrewInterjectionEvent)
  },
  "updateOrderStateEvent": {
    object (OrderStateUpdateEvent)
  },
  "clientEscalationEvent": {
    object (ClientEscalationEvent)
  },
  "callerHangupEvent": {
    object (CallerHangupEvent)
  },
  "posErrorInput": {
    object (PosErrorEvent)
  }
  // End of list of possible types for union field event.
}
Kolom
Kolom union event. ID Berikutnya: 10 Peristiwa yang akan dipicu. event hanya ada berupa salah satu diantara berikut:
driveOffEvent

object (DriveOffEvent)

Peristiwa mengemudi.

crewInterjectionEvent

object (CrewInterjectionEvent)

Peristiwa interupsi kru.

updateOrderStateEvent

object (OrderStateUpdateEvent)

Pembaruan sisi klien pada status pesanan.

clientEscalationEvent

object (ClientEscalationEvent)

Peristiwa eskalasi sisi klien.

callerHangupEvent

object (CallerHangupEvent)

Opsional. Peristiwa panggilan ditutup oleh pemanggil.

posErrorInput

object (PosErrorEvent)

Opsional. Peristiwa error POS.

DriveOffEvent

Peristiwa mengemudi. Ini menunjukkan bahwa pelanggan pergi. Sesi akan ditutup setelah peristiwa ini.

Representasi JSON
{
  "reason": string
}
Kolom
reason

string

Opsional. Alasan pengemudi mengakhiri perjalanan, misalnya "pesanan selesai", "pengemudi mengakhiri perjalanan tanpa diduga".

CrewInterjectionEvent

Peristiwa interupsi kru. Hal ini menunjukkan bahwa anggota kru menyela sesi. Sesi akan ditutup setelah acara ini.

Representasi JSON
{
  "mode": string
}
Kolom
mode

string

Opsional. Mode saat anggota kru menyela, misalnya "headset", "pos".

OrderStateUpdateEvent

Permintaan status pesanan update. Peristiwa ini harus dikirim saat pesanan diperbarui di sisi klien, misalnya saat item ditambahkan atau dihapus melalui antarmuka sentuh tradisional.

Representasi JSON
{
  "order": {
    object (Order)
  }
}
Kolom
order

object (Order)

Wajib. Status Pesanan yang diperbarui yang terkait dengan sesi ini.

ClientEscalationEvent

Menunjukkan bahwa klien mengeskalasikan sesi ke agen manusia.

Representasi JSON
{
  "reason": string
}
Kolom
reason

string

Opsional. Alasan eskalasi klien, misalnya, "pembayaran ditolak", "error pos", "error integrasi", dll.

CallerHangupEvent

Jenis ini tidak memiliki kolom.

Menunjukkan bahwa pelanggan mengakhiri panggilan sebelum waktunya (misalnya, karena tidak menyukai AI).

PosErrorEvent

Kegagalan khusus Tempat Penjualan (POS).

Representasi JSON
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
Kolom
errorMessages[]

string

Opsional. Daftar deskripsi error yang dapat dibaca manusia. Beberapa pesan error dapat diberikan jika beberapa masalah terjadi secara bersamaan (misalnya, beberapa item kehabisan stok) atau untuk memberikan perincian yang lebih mendetail tentang satu kegagalan yang kompleks. Pesan ini dapat digunakan oleh agen untuk memberi tahu pelanggan atau untuk tujuan pencatatan.

affectedItemUids[]

string

Opsional. UID item unik yang dibuat oleh Agen AI Pemesanan Makanan yang menyebabkan error. Sesuai dengan UpdatedOrderState.OrderItem.uid.

affectedExternalIds[]

string

Opsional. Daftar ID eksternal (dari Menu) yang menyebabkan error. Harus sama dengan perwakilan sebenarnya di POS, yang biasanya berada di bawah atribut integrasi di menu.proto (misalnya, di ItemIntegrationAttributes atau ModifierIntegrationAttributes).

metadata

map (key: string, value: string)

Opsional. Metadata bentuk bebas untuk proses debug atau sinyal khusus merek. Dapat digunakan untuk meneruskan kode atau kategori error khusus merek (misalnya, {"BRAND_ERROR_CODE": "OUT_OF_STOCK"}).

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientExecutionResult

Hasil permintaan eksekusi klien.

Representasi JSON
{
  "executionId": string,

  // Union field response can be only one of the following:
  "finalizeOrderResponse": {
    object (FinalizeOrderResponse)
  },
  "orderPricesResponse": {
    object (OrderPricesResponse)
  },
  "validateDeliveryAddressResponse": {
    object (ValidateDeliveryAddressResponse)
  },
  "orderStatusResponse": {
    object (OrderStatusResponse)
  }
  // End of list of possible types for union field response.
}
Kolom
executionId

string

Wajib. ID permintaan eksekusi yang merupakan hasil ini.

Kolom union response. Hasil spesifik dari eksekusi. response hanya ada berupa salah satu diantara berikut:
finalizeOrderResponse

object (FinalizeOrderResponse)

Hasil penyelesaian pesanan.

orderPricesResponse

object (OrderPricesResponse)

Hasil pengambilan harga pesanan.

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

Hasil validasi alamat pengiriman.

orderStatusResponse

object (OrderStatusResponse)

Hasil mendapatkan status pesanan.

FinalizeOrderResponse

Hasil penyelesaian pesanan.

Representasi JSON
{
  "paymentFlowEnabled": boolean,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Kolom
paymentFlowEnabled

boolean

Opsional. Apakah akan mengaktifkan alur penanganan pembayaran di agen.

paymentInfo

object (PaymentInfo)

Opsional. Informasi pembayaran pelanggan. Tidak ada operasi jika paymentFlowEnabled adalah salah (false).

totalAmountDue

object (Money)

Opsional. Total jumlah yang harus dibayar untuk pesanan.

orderPriceInfo

object (OrderPriceInfo)

Opsional. Informasi harga pesanan yang mendetail.

PaymentInfo

Informasi pembayaran pengguna.

Representasi JSON
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
Kolom
creditCardLastFourDigits

string

Opsional. Empat digit terakhir kartu kredit. Informasi ini digunakan untuk memverifikasi nomor kartu kredit pada tahap pembayaran.

creditCardCvv

string

Opsional. CVV kartu kredit.

paymentMethod

enum (PaymentMethod)

Opsional. Jenis metode pembayaran yang digunakan.

PaymentMethod

Jenis metode pembayaran.

Enum
PAYMENT_METHOD_UNSPECIFIED Metode pembayaran tidak ditentukan.
PAYMENT_METHOD_CREDIT_CARD Kartu kredit.
PAYMENT_METHOD_CASH Tunai.

OrderPricesResponse

Hasil pengambilan harga pesanan.

Representasi JSON
{
  "success": boolean,
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
Kolom
success

boolean

Wajib. Apakah harga pesanan berhasil diambil.

orderPriceInfo

object (OrderPriceInfo)

Opsional. Total harga pesanan setelah semua diskon, biaya, pajak, dll.

ValidateDeliveryAddressResponse

Hasil validasi alamat pengiriman.

Representasi JSON
{
  "success": boolean,
  "validationStatus": enum (ValidationStatus)
}
Kolom
success

boolean

Wajib. Apakah validasi selesai tanpa error.

validationStatus

enum (ValidationStatus)

Wajib. Status validasi alamat pengiriman.

OrderStatusResponse

Hasil mendapatkan status pesanan.

Representasi JSON
{
  "success": boolean
}
Kolom
success

boolean

Wajib. Apakah status pesanan berhasil diambil.

Blob

Mewakili input atau output blob dalam percakapan.

Representasi JSON
{
  "mimeType": string,
  "data": string
}
Kolom
mimeType

string

Wajib. Jenis MIME standar IANA dari data sumber.

data

string (bytes format)

Wajib. Byte mentah blob.

String berenkode base64.

Konfigurasi

Konfigurasi untuk sesi dan properti pemesanan makanan. Di awal setiap koneksi, klien harus mengirim pesan konfigurasi terlebih dahulu. Hal ini harus terjadi sebelum permintaan lain untuk memulai sesi. Jika klien terputus, klien harus mengulangi pesan konfigurasi yang sama saat terhubung kembali.

Representasi JSON
{
  "session": string,
  "store": string,
  "laneId": string,
  "enableEchoCancellation": boolean,
  "daypartId": string,
  "featureGate": {
    object (FeatureGate)
  },
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string
}
Kolom
session

string

Wajib. Sesi untuk pesanan. Format: projects/{project}/locations/{location}/sessions/{session}

store

string

Wajib. Toko tempat pesanan dilakukan. Format: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

Opsional. ID jalur drive-through tertentu.

enableEchoCancellation

boolean

Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput.

daypartId

string

Opsional. Bagian waktu menu makanan, termasuk sarapan, makan siang, makan malam, dll. Ini digunakan untuk menentukan menu yang akan digunakan untuk pesanan.

featureGate

object (FeatureGate)

Opsional. Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi.

clientAppInfo

object (ClientAppInfo)

Opsional. Informasi tentang aplikasi klien dan lingkungan perangkat.

mode

enum (SessionMode)

Opsional. Mode sesi.

channelType

enum (ChannelType)

Opsional. Jenis saluran yang digunakan untuk komunikasi agen.

enableListenOnlyDualChannel

boolean

Opsional. Apakah akan mengaktifkan saluran ganda hanya dengar untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput, dan CES akan melakukan EAC dan penjumlahan di server pemrosesan media.

testSessionStartTime

string (Timestamp format)

Opsional. Waktu mulai sesi, digunakan untuk tujuan pengujian atau evaluasi.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

FeatureGate

Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi.

Representasi JSON
{
  "menuResponseEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean
}
Kolom
menuResponseEnabled

boolean

Opsional. Mengembalikan data menu ke klien dalam BidiProcessOrderResponse jika disetel.

updatedOrderStateEnabled

boolean

Opsional. Jika disetel, updatedOrderState akan ditampilkan, bukan legacyOrderStateResponse.

enableOrderStatusRetrieval

boolean

Opsional. Jika disetel, agen akan mendukung pengambilan status pesanan.

ClientAppInfo

Informasi tentang aplikasi klien dan lingkungan perangkat. Ini terutama digunakan untuk logging, analisis, dan proses debug.

Representasi JSON
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
Kolom
deviceModel

string

Opsional. Model perangkat klien (misalnya, "iPhone 13", "Pixel 7", "Kiosk v2").

osVersion

string

Opsional. Versi sistem operasi klien (misalnya, "iOS 16.1", "Android 13").

sdkVersion

string

Opsional. Versi SDK klien atau software aplikasi.

SessionMode

Mode sesi.

Enum
SESSION_MODE_UNSPECIFIED Mode sesi tidak ditentukan.
HYBRID Sesi ini mendukung audio dan teks. Ini adalah setelan defaultnya.
TEXT Sesi ini hanya berupa teks.

TurnType

Mewakili posisi siklus proses permintaan unary dalam sesi.

Enum
TURN_TYPE_UNSPECIFIED Jenis belokan tidak ditentukan.
INITIALIZE Secara eksplisit menunjukkan bahwa permintaan ini menginisialisasi sesi dalam mode unary. Jika disetel, variabel sesi awal (misalnya, menyimpan metadata dan menu) akan dimasukkan ke CES.
SUBSEQUENT Secara eksplisit menunjukkan giliran percakapan berikutnya atau pembaruan di tengah sesi. Jika disetel, variabel sesi awal akan dihilangkan untuk mencegah ledakan token input.

BidiProcessOrderResponse

Pesan tingkat teratas yang ditampilkan dari metode FoodOrderingService.BidiProcessOrder.

Representasi JSON
{

  // Union field response can be only one of the following:
  "agentAudio": {
    object (AgentAudio)
  },
  "speechRecognition": {
    object (SpeechRecognition)
  },
  "legacyOrderStateResponse": {
    object
  },
  "interruptionSignal": {
    object (InterruptionSignal)
  },
  "agentEvent": {
    object (AgentEvent)
  },
  "clientExecutionRequest": {
    object (ClientExecutionRequest)
  },
  "updatedOrderState": {
    object (UpdatedOrderState)
  },
  "agentText": {
    object (AgentText)
  },
  "suggestedOptions": {
    object (SuggestedOptions)
  },
  "sentimentMeasurement": {
    object (SentimentMeasurement)
  },
  "turnCompleted": {
    object (TurnCompleted)
  },
  "endSession": {
    object (EndSession)
  }
  // End of list of possible types for union field response.
}
Kolom
Kolom union response. Respons dari agen. response hanya ada berupa salah satu diantara berikut:
agentAudio

object (AgentAudio)

Respons audio dari agen.

speechRecognition

object (SpeechRecognition)

Hasil pengenalan ucapan dari agen.

legacyOrderStateResponse

object (Struct format)

Respons status pesanan lama untuk sesi.

interruptionSignal

object (InterruptionSignal)

Sinyal interupsi terdeteksi dari input audio.

agentEvent

object (AgentEvent)

Acara dari agen.

clientExecutionRequest

object (ClientExecutionRequest)

Permintaan diteruskan ke klien untuk dieksekusi. Ini digunakan untuk eksekusi sisi klien, seperti menambahkan kode ke pesanan.

updatedOrderState

object (UpdatedOrderState)

Menunjukkan pembaruan pada status pesanan. Mencakup status lengkap pesanan.

agentText

object (AgentText)

Respons teks dari agen.

suggestedOptions

object (SuggestedOptions)

Opsi yang dapat disarankan kepada pelanggan.

sentimentMeasurement

object (SentimentMeasurement)

Skor sentimen real-time yang diukur untuk giliran ini.

turnCompleted

object (TurnCompleted)

Pesan Turn Completed.

endSession

object (EndSession)

Menunjukkan bahwa sesi akan berakhir, dan ini akan menjadi giliran terakhir.

Agen akan menyelesaikan pengiriman respons yang tertunda untuk giliran saat ini, lalu mengirim pesan turnCompleted akhir. Agen tidak akan memulai giliran baru. Misalnya, sesi 2 putaran akan terlihat seperti:

  • Giliran 1
  • input pelanggan 1
  • ... pesan status pesanan dan respons agen
  • turnCompleted
  • Giliran 2
  • input pelanggan 2
  • ... pesan status pesanan dan respons agen
  • endSession
  • ... pesan status pesanan dan respons agen yang tertunda
  • turnCompleted

AgentAudio

Respons audio dari agen.

Representasi JSON
{
  "agentAudio": string
}
Kolom
agentAudio

string (bytes format)

Data audio dari agen.

String berenkode base64.

SpeechRecognition

Hasil pengenalan ucapan dari agen.

Representasi JSON
{
  "transcript": string,
  "languageCode": string,
  "isFinal": boolean
}
Kolom
transcript

string

Teks yang ditranskripsikan dari input audio dalam bahasa yang terdeteksi.

languageCode

string

Kode bahasa transkrip. Kode bahasa harus dalam format BCP-47, seperti "en-US".

isFinal

boolean

Menunjukkan apakah ini adalah transkrip akhir untuk giliran bicara.

InterruptionSignal

Jenis ini tidak memiliki kolom.

Menunjukkan bahwa respons audio agen telah terganggu (misalnya, oleh interupsi pengguna akhir). Klien harus segera menghentikan pemutaran.

AgentEvent

Acara spesial dari agen yang mengharuskan klien mengambil tindakan.

Representasi JSON
{

  // Union field event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
Kolom
Kolom union event. Acara dari agen. event hanya ada berupa salah satu diantara berikut:
restartOrder

object (RestartOrder)

Pelanggan meminta untuk memulai ulang pesanan.

RestartOrder

Pelanggan meminta untuk memulai ulang pesanan.

Representasi JSON
{
  "confirmationStep": boolean
}
Kolom
confirmationStep

boolean

Agen meminta pelanggan untuk mengonfirmasi permintaan memulai ulang.

ClientExecutionRequest

Permintaan agar sisi klien menjalankan perintah.

Representasi JSON
{
  "executionId": string,

  // Union field request can be only one of the following:
  "finalizeOrderRequest": {
    object (FinalizeOrderRequest)
  },
  "submitOrderRequest": {
    object (SubmitOrderRequest)
  },
  "orderPricesRequest": {
    object (OrderPricesRequest)
  },
  "validateDeliveryAddressRequest": {
    object (ValidateDeliveryAddressRequest)
  },
  "orderStatusRequest": {
    object (OrderStatusRequest)
  }
  // End of list of possible types for union field request.
}
Kolom
executionId

string

Wajib. ID unik untuk permintaan eksekusi ini.

Kolom union request. Permintaan spesifik yang akan dieksekusi. request hanya ada berupa salah satu diantara berikut:
finalizeOrderRequest

object (FinalizeOrderRequest)

Permintaan untuk menyelesaikan pesanan.

submitOrderRequest

object (SubmitOrderRequest)

Permintaan untuk mengirimkan pesanan.

orderPricesRequest

object (OrderPricesRequest)

Permintaan untuk mendapatkan harga pesanan.

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

Permintaan untuk memvalidasi alamat pengiriman.

orderStatusRequest

object (OrderStatusRequest)

Permintaan untuk mendapatkan status pesanan.

FinalizeOrderRequest

Jenis ini tidak memiliki kolom.

Permintaan untuk menyelesaikan pesanan. Pesan ini biasanya dikirim oleh agen saat pelanggan menunjukkan bahwa mereka telah selesai memesan dan ingin membayar.

SubmitOrderRequest

Permintaan untuk mengirimkan pesanan, dengan semua informasi pembayaran yang diperlukan dikumpulkan dari pelanggan.

Representasi JSON
{
  "paymentInfo": {
    object (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
Kolom
paymentInfo

object (PaymentInfo)

Wajib. Informasi pembayaran untuk pesanan.

loyaltyInfo

object (LoyaltyInfo)

Opsional. Loyalitas yang digunakan untuk pesanan.

tipAmount

object (Money)

Opsional. Jumlah tip untuk pesanan.

LoyaltyInfo

Menampilkan informasi loyalitas pelanggan.

Representasi JSON
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
Kolom
loyaltyAmount

object (LoyaltyAmount)

Wajib. Jumlah loyalitas. Hal ini dapat berupa saldo loyalitas atau loyalitas yang digunakan.

LoyaltyAmount

Mewakili jumlah loyalitas pelanggan.

Representasi JSON
{
  "units": string
}
Kolom
units

string (int64 format)

Wajib. Poin loyalitas.

OrderPricesRequest

Permintaan untuk mendapatkan harga pesanan.

Representasi JSON
{
  "order": {
    object (Order)
  }
}
Kolom
order

object (Order)

Opsional. Urutan untuk mendapatkan harga. Jika tidak ditentukan, kita dapat mengasumsikan bahwa permintaan tersebut adalah untuk pesanan/keranjang yang ada dalam sesi.

ValidateDeliveryAddressRequest

Permintaan untuk memvalidasi alamat pengiriman yang dikumpulkan selama sesi.

Representasi JSON
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
Kolom
deliveryAddress

object (DeliveryAddress)

Wajib. Alamat pengiriman yang akan divalidasi.

OrderStatusRequest

Jenis ini tidak memiliki kolom.

Permintaan untuk mendapatkan status pesanan.

UpdatedOrderState

Peristiwa yang ditampilkan oleh agen yang merepresentasikan pembaruan pada status pesanan.

Representasi JSON
{
  "order": {
    object (Order)
  },
  "changed": boolean
}
Kolom
order

object (Order)

Status Pesanan yang diperbarui yang terkait dengan sesi ini.

changed

boolean

Hanya output. Apakah status pesanan memiliki pembaruan.

AgentText

Respons teks dari agen.

Representasi JSON
{
  "text": string
}
Kolom
text

string

Respons teks dari agen.

SuggestedOptions

Opsi yang dapat disarankan kepada pelanggan.

Representasi JSON
{
  "suggestedModifierGroups": {
    object (SuggestedModifierGroups)
  },

  // Union field suggested_options can be only one of the following:
  "suggestedItems": {
    object (SuggestedItems)
  },
  "suggestedModifiers": {
    object (SuggestedModifiers)
  }
  // End of list of possible types for union field suggested_options.
}
Kolom
suggestedModifierGroups

object (SuggestedModifierGroups)

Grup pengubah yang disarankan.

Kolom union suggested_options. Opsi yang disarankan. suggested_options hanya ada berupa salah satu diantara berikut:
suggestedItems

object (SuggestedItems)

Daftar item untuk disarankan kepada pelanggan.

suggestedModifiers

object (SuggestedModifiers)

Daftar pengubah yang akan disarankan kepada pelanggan.

SuggestedItems

Daftar item untuk disarankan kepada pelanggan.

Representasi JSON
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
Kolom
items[]

object (SuggestedItem)

Item yang disarankan kepada pelanggan.

SuggestedItem

Item yang disarankan kepada pelanggan.

Representasi JSON
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
Kolom
itemId

string

ID item dalam menu.

displayName

string

Nama yang dapat dibaca manusia untuk item ini yang akan ditampilkan di antarmuka pengguna.

image

object (Image)

Gambar yang akan ditampilkan untuk item ini di UI.

basePrice

object (Money)

Harga dasar item. Hal ini dapat dipengaruhi oleh pengubah yang dipilih. Ini adalah harga per unit item.

integrationAttributes

object (ItemIntegrationAttributes)

Metadata yang terkait dengan entity ini digunakan untuk integrasi hilir.

SuggestedModifiers

Daftar pengubah yang akan disarankan kepada pelanggan.

Representasi JSON
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
Kolom
modifiers[]

object (SuggestedModifier)

Pengubah yang akan disarankan kepada pelanggan.

parentUid

string

ID unik item/pengubah induk untuk menerapkan pengubah.

SuggestedModifier

Pengubah yang disarankan kepada pelanggan.

Representasi JSON
{
  "modifierId": string,
  "modifierGroupId": string,
  "modifierGroupDisplayName": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
Kolom
modifierId

string

ID pengubah di menu.

modifierGroupId

string

ID grup pengubah yang akan ditambahkan pengubah ini jika saran diterima.

modifierGroupDisplayName

string

Nama tampilan grup pengubah tempat pengubah ini berada.

displayName

string

Nama yang dapat dibaca manusia untuk item ini yang akan ditampilkan di antarmuka pengguna.

image

object (Image)

Gambar yang akan ditampilkan untuk item ini di UI.

priceAdjustment

object (Money)

Penyesuaian harga yang terkait dengan pengubah ini, jika ada. Ini adalah harga per unit pengubah.

integrationAttributes

object (ModifierIntegrationAttributes)

Metadata yang terkait dengan entity ini digunakan untuk integrasi hilir.

alreadyIncluded

boolean

Apakah pengubah ini sudah disertakan dalam pesanan.

SuggestedModifierGroups

Daftar grup pengubah untuk disarankan kepada pelanggan.

Representasi JSON
{
  "modifierGroups": [
    {
      object (SuggestedModGroup)
    }
  ]
}
Kolom
modifierGroups[]

object (SuggestedModGroup)

Grup pengubah yang disarankan kepada pelanggan.

SuggestedModGroup

Grup pengubah untuk disarankan kepada pelanggan.

Representasi JSON
{
  "modifierGroupId": string,
  "displayName": string,
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "maxSelectionCount": integer,
  "minSelectionCount": integer,
  "maxSelectionCountPerModifier": integer
}
Kolom
modifierGroupId

string

ID grup pengubah di menu.

displayName

string

Nama tampilan grup pengubah.

modifiers[]

object (SuggestedModifier)

Pengubah dalam grup ini.

maxSelectionCount

integer

Jumlah maksimum pengubah yang dapat dipilih dari grup ini.

minSelectionCount

integer

Jumlah minimum pengubah yang harus dipilih dari grup ini.

maxSelectionCountPerModifier

integer

Membatasi jumlah penerapan setiap pengubah dalam grup ini.

SentimentMeasurement

Skor sentimen real-time yang diukur untuk giliran ini.

Representasi JSON
{
  "score": number,
  "magnitude": number
}
Kolom
score

number

Opsional. Skor sentimen antara -1,0 (sentimen negatif) dan 1,0 (sentimen positif).

magnitude

number

Opsional. Besarnya sentimen, terlepas dari skornya.

TurnCompleted

Jenis ini tidak memiliki kolom.

Menunjukkan bahwa agen AI Makanan telah mendeteksi akhir giliran percakapan saat ini dan tidak akan memberikan output lebih lanjut untuk giliran ini.

EndSession

Menunjukkan bahwa agen telah mengakhiri sesi, karena berhasil diselesaikan (misalnya, pengguna mengatakan "Selamat tinggal!" ) atau eskalasi agen.

Representasi JSON
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
Kolom
type

enum (EndType)

Jenis peristiwa akhir sesi.

reason

string

Alasan mengakhiri sesi.

posResponse

string

Opsional. Respons POS dari check-in pesanan (opsional). Ini adalah payload string buram yang merepresentasikan status transaksi POS.

agentResponse

string

Opsional. Pesan respons agen akhir yang akan diucapkan/ditampilkan kepada pengguna (opsional).

storeSchedule

object (Schedule)

Opsional. Jadwal toko. Kolom ini hanya ditetapkan jika jenis akhir adalah STORE_CLOSED.

EndType

Jenis peristiwa akhir sesi.

Enum
END_TYPE_UNSPECIFIED Jenis akhir tidak ditentukan.
DRIVE_OFF Pelanggan pergi.
AGENT_ESCALATION Agen mengeskalasi sesi ke agen manusia.
CREW_INTERJECTION Anggota kru menyela sesi.
ORDER_COMPLETED Pesanan berhasil diselesaikan dan tidak ada tindakan lebih lanjut yang diperlukan.
PAYMENT_FLOW_SUCCESS Alur pembayaran berhasil dan tidak ada tindakan lebih lanjut yang diperlukan.
PAYMENT_FLOW_FAILURE Alur pembayaran gagal.
CLIENT_ESCALATION Klien mengeskalasikan sesi ke agen manusia.
CALLER_HANGUP Pelanggan mengakhiri panggilan sebelum waktunya.
REQUESTED_CHECKOUT Pelanggan meminta untuk check out.
REQUESTED_ORDER_STATUS Pelanggan menanyakan status pesanannya.
STORE_CLOSED Toko tutup.