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,
serta 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)
Penyimpanan
Resource Store merepresentasikan satu lokasi restoran fisik milik
Brand. Objek ini menentukan konfigurasi khusus untuk lokasi tersebut, seperti zona waktunya, 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
ItematauModifierlain, 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 multimodal real-time antara pelanggan dan agen AI. Setiap sesi
mewakili satu percakapan pemesanan makanan dan dikelola menggunakan metode RPC
FoodOrderingService.BidiProcessOrder.
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 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 tempat parkir yang terdeteksi hardware dari hardware restoran drive-thru). - Aliran Agent-to-Client: 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.
Siklus proses sesi
Setiap Sesi di Agen AI Pemesanan Makanan harus dimulai dengan konfigurasi yang disediakan klien
yang ditentukan menggunakan pesan BidiProcessOrderRequest yang berisi Config. Config harus menentukan dua kolom:
store: Nama lengkap resourceStoretempat pesanan ditempatkan (misalnya,projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). Sesi mengambil 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.