Konsep Food Ordering AI Agent

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).

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 Item atau Modifier lain, 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 berisi ModifierGroup bertingkat 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 BidiProcessOrderRequest yang 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 BidiProcessOrderResponse yang 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 resource Store tempat pesanan ditempatkan (misalnya, projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). Sesi mengambil konfigurasi yang ditentukan dalam resource Store yang dirujuk dan resource Brand induk toko tersebut. Jika terjadi konflik konfigurasi di Brand dan Store, konfigurasi Store akan lebih diutamakan.
  • session: ID sesi unik dalam format projects/PROJECT/locations/LOCATION/sessions/SESSION. session_id adalah ID yang dibuat klien yang secara unik mengidentifikasi satu interaksi atau percakapan pelanggan.