- Permintaan HTTP
- Parameter lokasi
- Isi permintaan
- Isi respons
- Cakupan otorisasi
- 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
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 |
Wajib. Sesi untuk pesanan. Format: |
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 ( |
| Kolom | |
|---|---|
config.store |
Wajib. Toko tempat pesanan dilakukan. Format: |
config.laneId |
Opsional. ID jalur drive-through tertentu. |
config.enableEchoCancellation |
Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput. |
config.daypartId |
Opsional. Bagian waktu menu makanan, termasuk sarapan, makan siang, makan malam, dll. Ini digunakan untuk menentukan menu yang akan digunakan untuk pesanan. |
config.featureGate |
Opsional. Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi. |
config.clientAppInfo |
Opsional. Informasi tentang aplikasi klien dan lingkungan perangkat. |
config.mode |
Opsional. Mode sesi. |
config.channelType |
Opsional. Jenis saluran yang digunakan untuk komunikasi agen. |
config.enableListenOnlyDualChannel |
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 |
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: |
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 |
Input teks dari klien. |
audioInput |
Input audio dari klien. |
eventInput |
Input peristiwa dari klien. |
clientExecutionResult |
Hasil permintaan eksekusi klien. |
blobInput |
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 ( |
| Kolom | |
|---|---|
responses[] |
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 |
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 |
Wajib. Data audio pelanggan. String berenkode base64. |
crewAudio |
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 |
| Kolom | |
|---|---|
Kolom union event. ID Berikutnya: 10 Peristiwa yang akan dipicu. event hanya ada berupa salah satu diantara berikut: |
|
driveOffEvent |
Peristiwa mengemudi. |
crewInterjectionEvent |
Peristiwa interupsi kru. |
updateOrderStateEvent |
Pembaruan sisi klien pada status pesanan. |
clientEscalationEvent |
Peristiwa eskalasi sisi klien. |
callerHangupEvent |
Opsional. Peristiwa panggilan ditutup oleh pemanggil. |
posErrorInput |
Opsional. Peristiwa error POS. |
DriveOffEvent
Peristiwa mengemudi. Ini menunjukkan bahwa pelanggan pergi. Sesi akan ditutup setelah peristiwa ini.
| Representasi JSON |
|---|
{ "reason": string } |
| Kolom | |
|---|---|
reason |
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 |
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 ( |
| Kolom | |
|---|---|
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 |
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[] |
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[] |
Opsional. UID item unik yang dibuat oleh Agen AI Pemesanan Makanan yang menyebabkan error. Sesuai dengan |
affectedExternalIds[] |
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 |
metadata |
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 |
ClientExecutionResult
Hasil permintaan eksekusi klien.
| Representasi JSON |
|---|
{ "executionId": string, // Union field |
| Kolom | |
|---|---|
executionId |
Wajib. ID permintaan eksekusi yang merupakan hasil ini. |
Kolom union response. Hasil spesifik dari eksekusi. response hanya ada berupa salah satu diantara berikut: |
|
finalizeOrderResponse |
Hasil penyelesaian pesanan. |
orderPricesResponse |
Hasil pengambilan harga pesanan. |
validateDeliveryAddressResponse |
Hasil validasi alamat pengiriman. |
orderStatusResponse |
Hasil mendapatkan status pesanan. |
FinalizeOrderResponse
Hasil penyelesaian pesanan.
| Representasi JSON |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| Kolom | |
|---|---|
paymentFlowEnabled |
Opsional. Apakah akan mengaktifkan alur penanganan pembayaran di agen. |
paymentInfo |
Opsional. Informasi pembayaran pelanggan. Tidak ada operasi jika paymentFlowEnabled adalah salah (false). |
totalAmountDue |
Opsional. Total jumlah yang harus dibayar untuk pesanan. |
orderPriceInfo |
Opsional. Informasi harga pesanan yang mendetail. |
PaymentInfo
Informasi pembayaran pengguna.
| Representasi JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| Kolom | |
|---|---|
creditCardLastFourDigits |
Opsional. Empat digit terakhir kartu kredit. Informasi ini digunakan untuk memverifikasi nomor kartu kredit pada tahap pembayaran. |
creditCardCvv |
Opsional. CVV kartu kredit. |
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 ( |
| Kolom | |
|---|---|
success |
Wajib. Apakah harga pesanan berhasil diambil. |
orderPriceInfo |
Opsional. Total harga pesanan setelah semua diskon, biaya, pajak, dll. |
ValidateDeliveryAddressResponse
Hasil validasi alamat pengiriman.
| Representasi JSON |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| Kolom | |
|---|---|
success |
Wajib. Apakah validasi selesai tanpa error. |
validationStatus |
Wajib. Status validasi alamat pengiriman. |
OrderStatusResponse
Hasil mendapatkan status pesanan.
| Representasi JSON |
|---|
{ "success": boolean } |
| Kolom | |
|---|---|
success |
Wajib. Apakah status pesanan berhasil diambil. |
Blob
Mewakili input atau output blob dalam percakapan.
| Representasi JSON |
|---|
{ "mimeType": string, "data": string } |
| Kolom | |
|---|---|
mimeType |
Wajib. Jenis MIME standar IANA dari data sumber. |
data |
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 ( |
| Kolom | |
|---|---|
session |
Wajib. Sesi untuk pesanan. Format: |
store |
Wajib. Toko tempat pesanan dilakukan. Format: |
laneId |
Opsional. ID jalur drive-through tertentu. |
enableEchoCancellation |
Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus menyediakan customerAudio dan crewAudio di AudioInput. |
daypartId |
Opsional. Bagian waktu menu makanan, termasuk sarapan, makan siang, makan malam, dll. Ini digunakan untuk menentukan menu yang akan digunakan untuk pesanan. |
featureGate |
Opsional. Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi. |
clientAppInfo |
Opsional. Informasi tentang aplikasi klien dan lingkungan perangkat. |
mode |
Opsional. Mode sesi. |
channelType |
Opsional. Jenis saluran yang digunakan untuk komunikasi agen. |
enableListenOnlyDualChannel |
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 |
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: |
FeatureGate
Feature gate untuk sesi. Ini digunakan untuk mengaktifkan atau menonaktifkan fitur untuk sesi.
| Representasi JSON |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| Kolom | |
|---|---|
menuResponseEnabled |
Opsional. Mengembalikan data menu ke klien dalam BidiProcessOrderResponse jika disetel. |
updatedOrderStateEnabled |
Opsional. Jika disetel, updatedOrderState akan ditampilkan, bukan legacyOrderStateResponse. |
enableOrderStatusRetrieval |
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 |
Opsional. Model perangkat klien (misalnya, "iPhone 13", "Pixel 7", "Kiosk v2"). |
osVersion |
Opsional. Versi sistem operasi klien (misalnya, "iOS 16.1", "Android 13"). |
sdkVersion |
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 |
| Kolom | |
|---|---|
Kolom union response. Respons dari agen. response hanya ada berupa salah satu diantara berikut: |
|
agentAudio |
Respons audio dari agen. |
speechRecognition |
Hasil pengenalan ucapan dari agen. |
legacyOrderStateResponse |
Respons status pesanan lama untuk sesi. |
interruptionSignal |
Sinyal interupsi terdeteksi dari input audio. |
agentEvent |
Acara dari agen. |
clientExecutionRequest |
Permintaan diteruskan ke klien untuk dieksekusi. Ini digunakan untuk eksekusi sisi klien, seperti menambahkan kode ke pesanan. |
updatedOrderState |
Menunjukkan pembaruan pada status pesanan. Mencakup status lengkap pesanan. |
agentText |
Respons teks dari agen. |
suggestedOptions |
Opsi yang dapat disarankan kepada pelanggan. |
sentimentMeasurement |
Skor sentimen real-time yang diukur untuk giliran ini. |
turnCompleted |
Pesan Turn Completed. |
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:
|
AgentAudio
Respons audio dari agen.
| Representasi JSON |
|---|
{ "agentAudio": string } |
| Kolom | |
|---|---|
agentAudio |
Data audio dari agen. String berenkode base64. |
SpeechRecognition
Hasil pengenalan ucapan dari agen.
| Representasi JSON |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| Kolom | |
|---|---|
transcript |
Teks yang ditranskripsikan dari input audio dalam bahasa yang terdeteksi. |
languageCode |
Kode bahasa transkrip. Kode bahasa harus dalam format BCP-47, seperti "en-US". |
isFinal |
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 |
| Kolom | |
|---|---|
Kolom union event. Acara dari agen. event hanya ada berupa salah satu diantara berikut: |
|
restartOrder |
Pelanggan meminta untuk memulai ulang pesanan. |
RestartOrder
Pelanggan meminta untuk memulai ulang pesanan.
| Representasi JSON |
|---|
{ "confirmationStep": boolean } |
| Kolom | |
|---|---|
confirmationStep |
Agen meminta pelanggan untuk mengonfirmasi permintaan memulai ulang. |
ClientExecutionRequest
Permintaan agar sisi klien menjalankan perintah.
| Representasi JSON |
|---|
{ "executionId": string, // Union field |
| Kolom | |
|---|---|
executionId |
Wajib. ID unik untuk permintaan eksekusi ini. |
Kolom union request. Permintaan spesifik yang akan dieksekusi. request hanya ada berupa salah satu diantara berikut: |
|
finalizeOrderRequest |
Permintaan untuk menyelesaikan pesanan. |
submitOrderRequest |
Permintaan untuk mengirimkan pesanan. |
orderPricesRequest |
Permintaan untuk mendapatkan harga pesanan. |
validateDeliveryAddressRequest |
Permintaan untuk memvalidasi alamat pengiriman. |
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 ( |
| Kolom | |
|---|---|
paymentInfo |
Wajib. Informasi pembayaran untuk pesanan. |
loyaltyInfo |
Opsional. Loyalitas yang digunakan untuk pesanan. |
tipAmount |
Opsional. Jumlah tip untuk pesanan. |
LoyaltyInfo
Menampilkan informasi loyalitas pelanggan.
| Representasi JSON |
|---|
{
"loyaltyAmount": {
object ( |
| Kolom | |
|---|---|
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 |
Wajib. Poin loyalitas. |
OrderPricesRequest
Permintaan untuk mendapatkan harga pesanan.
| Representasi JSON |
|---|
{
"order": {
object ( |
| Kolom | |
|---|---|
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 ( |
| Kolom | |
|---|---|
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 ( |
| Kolom | |
|---|---|
order |
Status Pesanan yang diperbarui yang terkait dengan sesi ini. |
changed |
Hanya output. Apakah status pesanan memiliki pembaruan. |
AgentText
Respons teks dari agen.
| Representasi JSON |
|---|
{ "text": string } |
| Kolom | |
|---|---|
text |
Respons teks dari agen. |
SuggestedOptions
Opsi yang dapat disarankan kepada pelanggan.
| Representasi JSON |
|---|
{ "suggestedModifierGroups": { object ( |
| Kolom | |
|---|---|
suggestedModifierGroups |
Grup pengubah yang disarankan. |
Kolom union suggested_options. Opsi yang disarankan. suggested_options hanya ada berupa salah satu diantara berikut: |
|
suggestedItems |
Daftar item untuk disarankan kepada pelanggan. |
suggestedModifiers |
Daftar pengubah yang akan disarankan kepada pelanggan. |
SuggestedItems
Daftar item untuk disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"items": [
{
object ( |
| Kolom | |
|---|---|
items[] |
Item yang disarankan kepada pelanggan. |
SuggestedItem
Item yang disarankan kepada pelanggan.
| Representasi JSON |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| Kolom | |
|---|---|
itemId |
ID item dalam menu. |
displayName |
Nama yang dapat dibaca manusia untuk item ini yang akan ditampilkan di antarmuka pengguna. |
image |
Gambar yang akan ditampilkan untuk item ini di UI. |
basePrice |
Harga dasar item. Hal ini dapat dipengaruhi oleh pengubah yang dipilih. Ini adalah harga per unit item. |
integrationAttributes |
Metadata yang terkait dengan entity ini digunakan untuk integrasi hilir. |
SuggestedModifiers
Daftar pengubah yang akan disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"modifiers": [
{
object ( |
| Kolom | |
|---|---|
modifiers[] |
Pengubah yang akan disarankan kepada pelanggan. |
parentUid |
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 ( |
| Kolom | |
|---|---|
modifierId |
ID pengubah di menu. |
modifierGroupId |
ID grup pengubah yang akan ditambahkan pengubah ini jika saran diterima. |
modifierGroupDisplayName |
Nama tampilan grup pengubah tempat pengubah ini berada. |
displayName |
Nama yang dapat dibaca manusia untuk item ini yang akan ditampilkan di antarmuka pengguna. |
image |
Gambar yang akan ditampilkan untuk item ini di UI. |
priceAdjustment |
Penyesuaian harga yang terkait dengan pengubah ini, jika ada. Ini adalah harga per unit pengubah. |
integrationAttributes |
Metadata yang terkait dengan entity ini digunakan untuk integrasi hilir. |
alreadyIncluded |
Apakah pengubah ini sudah disertakan dalam pesanan. |
SuggestedModifierGroups
Daftar grup pengubah untuk disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Kolom | |
|---|---|
modifierGroups[] |
Grup pengubah yang disarankan kepada pelanggan. |
SuggestedModGroup
Grup pengubah untuk disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| Kolom | |
|---|---|
modifierGroupId |
ID grup pengubah di menu. |
displayName |
Nama tampilan grup pengubah. |
modifiers[] |
Pengubah dalam grup ini. |
maxSelectionCount |
Jumlah maksimum pengubah yang dapat dipilih dari grup ini. |
minSelectionCount |
Jumlah minimum pengubah yang harus dipilih dari grup ini. |
maxSelectionCountPerModifier |
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 |
Opsional. Skor sentimen antara -1,0 (sentimen negatif) dan 1,0 (sentimen positif). |
magnitude |
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 ( |
| Kolom | |
|---|---|
type |
Jenis peristiwa akhir sesi. |
reason |
Alasan mengakhiri sesi. |
posResponse |
Opsional. Respons POS dari check-in pesanan (opsional). Ini adalah payload string buram yang merepresentasikan status transaksi POS. |
agentResponse |
Opsional. Pesan respons agen akhir yang akan diucapkan/ditampilkan kepada pengguna (opsional). |
storeSchedule |
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. |