Dokumen ini memberikan ringkasan umum tentang konsep utama dalam Food Ordering AI Agent API.
Konfigurasi agen
Perilaku Agen AI Pemesanan Makanan dipengaruhi oleh konfigurasi
beberapa resource API: Brand, Store, dan Menu. Resource ini menentukan identitas restoran, lokasi fisiknya, dan produk yang ditawarkannya, sehingga memberikan konteks yang diperlukan bagi agen AI untuk menangani pesanan.
Merek
Brand adalah resource tingkat teratas, yang merepresentasikan merek restoran yang sesuai dengan satu atau beberapa lokasi merek restoran tersebut.
Objek ini berisi konfigurasi yang dibagikan di semua lokasi restoran tersebut.
Brand dapat mencakup konfigurasi banyak fitur persona agen, seperti perilaku sapaan dan karakteristik suara. Banyak fitur tersebut dapat diganti oleh nilai yang dikonfigurasi di resource Store
atau bahkan dalam konfigurasi per sesi (lihat Siklus proses sesi)
Menyimpan
Resource Store merepresentasikan satu lokasi restoran fisik milik
Brand. File ini menentukan konfigurasi khusus untuk lokasi tersebut, seperti zona waktu, status (misalnya, ACTIVE, DISABLED), jam buka, dan bagian hari (misalnya, periode seperti "Sarapan" atau "Makan Siang" saat item menu tertentu tersedia).
Menu
Resource Menu menentukan semua produk yang ditawarkan oleh restoran, termasuk semua pilihan dan penyesuaian yang memungkinkan untuk setiap produk yang dapat dijual. Menu
harus dikaitkan dengan Store.
Menu dirancang agar fleksibel dan dapat mengakomodasi berbagai struktur menu, mulai dari
daftar kecil item mandiri hingga pohon kompleks makanan kombinasi dengan pengubah bertingkat.
Komponen utama Menu meliputi:
- Item: Produk tingkat atas yang dapat dijual seperti hidangan utama a la carte, minuman, lauk, atau makanan kombinasi.
- ModifierGroups: Kumpulan pilihan yang berlaku untuk
ItematauModifierlainnya, seperti "Pilih Sisi" atau "Tambahkan Topping". - Pengubah: Opsi individual dalam
ModifierGroup, seperti "Kentang Goreng", "Keju Ekstra", atau "Cola". Pengubah dapat menyesuaikan harga item dan dapat berisiModifierGroupbertingkat untuk penyesuaian lebih lanjut. - MenuCategories: Unit organisasi seperti "Makanan Pembuka" atau "Minuman".
Resource Menu diidentifikasi berdasarkan nama dalam format berikut:
projects/{project}/locations/{location}/menus/{menu}.
Untuk mengetahui detail selengkapnya tentang menyusun data menu, lihat Mengintegrasikan data menu.
Sesi pemesanan makanan
Sesi pemesanan makanan adalah inti dari Food Ordering AI Agent, yang memungkinkan interaksi percakapan antara pelanggan dan agen AI. Setiap sesi
mewakili satu percakapan pemesanan makanan dan dikelola menggunakan
metode streaming dua arah real-time
(FoodOrderingService.BidiProcessOrder)
atau metode permintaan-respons unary berbasis giliran
(FoodOrderingService.ProcessOrder).
Metode RPC BidiProcessOrder
Ini adalah RPC streaming dua arah: aplikasi klien melakukan streaming input ke agen, dan agen secara bersamaan melakukan streaming respons kembali ke klien. Hal ini memungkinkan interaksi multimodal (suara dan teks) real-time dengan latensi rendah.
- Aliran Klien ke Agen: Klien mengirimkan aliran pesan
BidiProcessOrderRequestyang berisi input audio (ucapan pelanggan), input teks, atau input peristiwa (seperti update keranjang sisi klien yang dilakukan oleh pelanggan menggunakan antarmuka ketuk, atau peristiwa keluar dari jalur yang terdeteksi hardware dari hardware restoran drive-thru). - Aliran Agen ke Klien: Agen menampilkan aliran pesan
BidiProcessOrderResponseyang berisi output audio (ucapan agen yang disintesis), output teks, transkrip ucapan yang dikenali, pembaruan status pesanan pelanggan, atau sinyal lain seperti gangguan yang terdeteksi.
Metode ProcessOrder RPC dan REST
ProcessOrder adalah metode permintaan-respons unary yang dirancang untuk integrasi pemesanan makanan berbasis teks, turn-by-turn (seperti widget chat, formulir web, dan klien REST). API ini dapat diakses melalui gRPC dan REST (POST /v1/{config.session=projects/*/locations/*/sessions/*}:processOrder).
Tidak seperti BidiProcessOrder, ProcessOrder beroperasi pada pergantian permintaan-respons yang terpisah dan hanya berupa teks:
- Persyaratan Mode:
config.modeharus ditetapkan secara eksplisit keTEXT(atau2dalam JSON). - Turn Lifecycle:
turn_typeharus disetel keINITIALIZEpada giliran awal untuk menyuntikkan variabel sesi (seperti menu dan metadata toko), danSUBSEQUENTpada giliran berikutnya.
Siklus proses sesi
Setiap Sesi di Agen AI Pemesanan Makanan harus dimulai dengan konfigurasi yang disediakan klien
yang ditentukan menggunakan pesan Config. Config menentukan:
store: Nama lengkap resourceStoretempat pesanan ditempatkan (misalnya,projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). Sesi menggunakan konfigurasi yang ditentukan dalam resourceStoreyang dirujuk dan resourceBrandinduk toko tersebut. Jika terjadi konflik konfigurasi diBranddanStore, konfigurasiStoreakan lebih diutamakan.session: ID sesi unik dalam formatprojects/PROJECT/locations/LOCATION/sessions/SESSION.session_idadalah ID yang dibuat klien yang secara unik mengidentifikasi satu interaksi atau percakapan pelanggan.mode: Mode sesi (HYBRIDatauTEXT). UntukBidiProcessOrder,modebersifat opsional dan defaultnya adalahHYBRID(suara dan teks). UntukProcessOrder(unary / REST),modeharus ditetapkan secara eksplisit keTEXT.