- Permintaan HTTP
- Parameter jalur
- 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
Menjalankan logika satu giliran 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 dibuat. Format: |
config.laneId |
Opsional. ID jalur drive-thru tertentu. |
config.enableEchoCancellation |
Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus memberikan customerAudio dan crewAudio di AudioInput. |
config.daypartId |
Opsional. Bagian hari dari menu makanan, termasuk sarapan, makan siang, makan malam, dll. Informasi 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, yang 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 dimasukkan. |
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 umum. Mencerminkan http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
Isi respons
Pesan respons untuk FoodOrderingService.ProcessOrder. Secara fungsional berisi kolom dari BidiProcessOrderResponse tanpa 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, yang 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 ganti audio, klien dapat mengirimkan input teks ke agen. 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 dapat 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 sampel 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 lajur 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 kendaraan melaju. |
crewInterjectionEvent |
Peristiwa interupsi kru. |
updateOrderStateEvent |
Pembaruan sisi klien untuk status pesanan. |
clientEscalationEvent |
Peristiwa eskalasi sisi klien. |
callerHangupEvent |
Opsional. Peristiwa penelepon menutup telepon. |
posErrorInput |
Opsional. Peristiwa error POS. |
DriveOffEvent
Peristiwa kendaraan melaju. Hal ini menunjukkan bahwa pelanggan telah pergi. Sesi akan ditutup setelah peristiwa ini.
| Representasi JSON |
|---|
{ "reason": string } |
| Kolom | |
|---|---|
reason |
Opsional. Alasan kendaraan pergi, misalnya "pesanan selesai", "kendaraan pergi tanpa diduga". |
CrewInterjectionEvent
Peristiwa interupsi kru. Hal ini menunjukkan bahwa anggota kru menyela dalam sesi. Sesi akan ditutup setelah acara ini.
| Representasi JSON |
|---|
{ "mode": string } |
| Kolom | |
|---|---|
mode |
Opsional. Mode yang digunakan anggota kru untuk 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 mengeskalasi sesi ke agen manusia.
| Representasi JSON |
|---|
{ "reason": string } |
| Kolom | |
|---|---|
reason |
Opsional. Alasan eskalasi klien, misalnya "payment-declined", "pos-error", "integration-error", dll. |
CallerHangupEvent
Jenis ini tidak memiliki kolom.
Menunjukkan bahwa pelanggan menutup panggilan sebelum waktunya (misalnya, penolakan terhadap AI).
PosErrorEvent
Kegagalan khusus Point-of-Sale (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 logging. |
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 representasi 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 error atau kategori 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 dari permintaan ini. |
Kolom union response. Hasil spesifik dari eksekusi. response hanya ada berupa salah satu diantara berikut: |
|
finalizeOrderResponse |
Hasil penyelesaian pesanan. |
orderPricesResponse |
Hasil dari mendapatkan harga pesanan. |
validateDeliveryAddressResponse |
Hasil validasi alamat pengiriman. |
orderStatusResponse |
Hasil dari 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 bernilai salah (false). |
totalAmountDue |
Opsional. Jumlah total yang harus dibayar untuk pesanan. |
orderPriceInfo |
Opsional. Informasi harga mendetail pesanan. |
PaymentInfo
Informasi pembayaran pengguna.
| Representasi JSON |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| Kolom | |
|---|---|
creditCardLastFourDigits |
Opsional. Empat digit terakhir kartu kredit. Hal 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 yang tidak ditentukan. |
PAYMENT_METHOD_CREDIT_CARD |
Kartu kredit. |
PAYMENT_METHOD_CASH |
Tunai. |
OrderPricesResponse
Hasil dari mendapatkan 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 atau tidak. |
validationStatus |
Wajib. Status validasi alamat pengiriman. |
OrderStatusResponse
Hasil dari mendapatkan status pesanan.
| Representasi JSON |
|---|
{ "success": boolean } |
| Kolom | |
|---|---|
success |
Wajib. Apakah status pesanan berhasil diambil. |
Blob
Merepresentasikan 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. Pada awal setiap koneksi, klien harus mengirim pesan konfigurasi terlebih dahulu. Hal ini harus terjadi sebelum permintaan lain untuk memulai sesi. Jika koneksi 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 dibuat. Format: |
laneId |
Opsional. ID jalur drive-thru tertentu. |
enableEchoCancellation |
Opsional. Apakah akan mengaktifkan peredam gema untuk sesi. Jika diaktifkan, klien harus memberikan customerAudio dan crewAudio di AudioInput. |
daypartId |
Opsional. Bagian hari dari menu makanan, termasuk sarapan, makan siang, makan malam, dll. Informasi 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, yang 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. Menampilkan data menu ke klien di BidiProcessOrderResponse jika ditetapkan. |
updatedOrderStateEnabled |
Opsional. Jika ditetapkan, updatedOrderState akan ditampilkan, bukan legacyOrderStateResponse. |
enableOrderStatusRetrieval |
Opsional. Jika ditetapkan, agen akan mendukung pengambilan status pesanan. |
ClientAppInfo
Informasi tentang aplikasi klien dan lingkungan perangkat. ID 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 |
Menunjukkan secara eksplisit bahwa permintaan ini menginisialisasi sesi dalam mode unary. Jika ditetapkan, variabel sesi awal (misalnya, metadata dan menu toko) akan dimasukkan ke CES. |
SUBSEQUENT |
Menunjukkan giliran percakapan berikutnya atau pembaruan di tengah sesi secara eksplisit. Jika ditetapkan, 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 |
Peristiwa 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 untuk disarankan kepada pelanggan. |
sentimentMeasurement |
Skor sentimen real-time yang diukur untuk giliran ini. |
turnCompleted |
Pesan Belokan Selesai. |
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 giliran 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. |
InterruptionSignal
Jenis ini tidak memiliki kolom.
Menunjukkan bahwa respons audio agen telah terganggu (misalnya, karena interupsi pengguna akhir). Klien harus segera menghentikan pemutaran.
AgentEvent
Acara spesial dari agen yang memerlukan tindakan dari klien.
| Representasi JSON |
|---|
{ // Union field |
| Kolom | |
|---|---|
Kolom union event. Peristiwa 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 ke sisi klien untuk 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 yang 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. Ini dapat berupa saldo loyalitas atau loyalitas yang digunakan. |
LoyaltyAmount
Menampilkan 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. Pesanan yang harganya ingin didapatkan. Jika tidak ditentukan, kita dapat mengasumsikan bahwa permintaan tersebut ditujukan 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 mewakili 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 untuk 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 yang akan disarankan kepada pelanggan. |
suggestedModifiers |
Daftar pengubah yang akan disarankan kepada pelanggan. |
SuggestedItems
Daftar item yang akan disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"items": [
{
object ( |
| Kolom | |
|---|---|
items[] |
Item yang akan disarankan kepada pelanggan. |
SuggestedItem
Item yang akan 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 mungkin dipengaruhi oleh pengubah yang dipilih. Ini adalah harga per unit item. |
integrationAttributes |
Metadata yang terkait dengan entity ini yang digunakan untuk integrasi downstream. |
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 yang akan diterapkan pengubah. |
SuggestedModifier
Pengubah yang akan 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 harus ditambahi 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 yang digunakan untuk integrasi downstream. |
alreadyIncluded |
Apakah pengubah ini sudah disertakan dalam pesanan. |
SuggestedModifierGroups
Daftar grup pengubah yang akan disarankan kepada pelanggan.
| Representasi JSON |
|---|
{
"modifierGroups": [
{
object ( |
| Kolom | |
|---|---|
modifierGroups[] |
Kelompok pengubah yang akan disarankan kepada pelanggan. |
SuggestedModGroup
Grup pengubah yang akan 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 frekuensi setiap pengubah dapat diterapkan 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 menghentikan sesi, baik karena penyelesaian yang berhasil (misalnya, pengguna mengucapkan "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 mewakili status transaksi POS. |
agentResponse |
Opsional. Pesan respons agen akhir yang akan diucapkan/ditampilkan kepada pengguna (opsional). |
storeSchedule |
Opsional. Jadwal toko. 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 |
Seorang anggota kru menyela sesi. |
ORDER_COMPLETED |
Pesanan berhasil diselesaikan dan tidak perlu melakukan tindakan lebih lanjut. |
PAYMENT_FLOW_SUCCESS |
Alur pembayaran berhasil dan tidak perlu tindakan lebih lanjut. |
PAYMENT_FLOW_FAILURE |
Alur pembayaran gagal. |
CLIENT_ESCALATION |
Klien mengeskalasi sesi ke agen manusia. |
CALLER_HANGUP |
Pelanggan menutup panggilan sebelum waktunya. |
REQUESTED_CHECKOUT |
Pelanggan meminta untuk check out. |
REQUESTED_ORDER_STATUS |
Pelanggan menanyakan status pesanannya. |
STORE_CLOSED |
Toko tutup. |