Konzepte für den KI-Agenten für Food Ordering

Dieses Dokument bietet einen allgemeinen Überblick über die wichtigsten Konzepte der Food Ordering AI Agent API.

Agent-Konfiguration

Das Verhalten des KI-Agents für die Essensbestellung wird durch die Konfiguration mehrerer API-Ressourcen beeinflusst: Brand, Store und Menu. Diese Ressourcen definieren die Identität des Restaurants, seine physischen Standorte und die angebotenen Produkte und liefern so den notwendigen Kontext für den KI-Agenten, um Bestellungen zu bearbeiten.

Marke

Ein Brand ist die Ressource der obersten Ebene, die eine Restaurantmarke repräsentiert, die einem oder mehreren Standorten dieser Restaurantmarke entspricht. Sie enthält Konfigurationen, die für alle Standorte dieses Restaurants gelten. Brand kann die Konfiguration vieler Funktionen der Agent-Persona umfassen, z. B. das Begrüßungsverhalten und die Stimmeigenschaften. Viele dieser Funktionen können durch Werte überschrieben werden, die in der Store-Ressource oder sogar in der Konfiguration pro Sitzung konfiguriert sind (siehe Sitzungslebenszyklus).

Speicherung

Eine Store-Ressource stellt einen einzelnen physischen Restaurantstandort dar, der zu einem Brand gehört. Sie definiert die Konfiguration für diesen Standort, z. B. die Zeitzone und den Status (z. B. ACTIVE, DISABLED), Öffnungszeiten und Tageszeiten (z.B. Zeiträume wie „Frühstück“ oder „Mittagessen“, in denen bestimmte Menüpunkte verfügbar sind).

Eine Menu-Ressource definiert alle Produkte, die von einem Restaurant angeboten werden, einschließlich aller möglichen Optionen und Anpassungen für jedes verkaufsfähige Produkt. Ein Menu muss mit einem Store verknüpft sein. Das Menü ist flexibel gestaltet und kann verschiedene Menüstrukturen aufnehmen, von kleinen Listen mit einzelnen Artikeln bis hin zu komplexen Bäumen mit Kombinationsgerichten und verschachtelten Modifikatoren.

Zu den wichtigsten Komponenten eines Menu gehören:

  • Artikel: Verkaufbare Produkte der obersten Ebene wie À-la-carte-Vorspeisen, Getränke, Beilagen oder Kombinationsmenüs.
  • ModifierGroups: Sammlungen von Optionen, die für ein Item oder ein anderes Modifier gelten, z. B. „Beilage auswählen“ oder „Belag hinzufügen“.
  • Modifikatoren: Einzelne Optionen innerhalb eines ModifierGroup, z. B. „Pommes“, „Extra Käse“ oder „Cola“. Mit Modifikatoren kann der Artikelpreis angepasst werden. Sie können verschachtelte ModifierGroups für weitere Anpassungen enthalten.
  • MenuCategories: Organisationseinheiten wie „Vorspeisen“ oder „Getränke“.

Eine Menu-Ressource wird durch einen Namen im folgenden Format identifiziert: projects/{project}/locations/{location}/menus/{menu}.

Weitere Informationen zum Strukturieren von Menüdaten finden Sie unter Menüdaten einbinden.

Sitzungen für Essensbestellungen

Bestellsitzungen sind das Herzstück des Food Ordering-KI-Agenten und ermöglichen multimodale Echtzeitinteraktionen zwischen einem Kunden und dem KI-Agenten. Jede Sitzung steht für eine einzelne Unterhaltung zur Essensbestellung und wird mit der RPC-Methode FoodOrderingService.BidiProcessOrder verwaltet.

RPC-Methode „BidiProcessOrder“

Dies ist ein bidirektionaler Streaming-RPC: Die Clientanwendung streamt Eingaben an den Agent und der Agent streamt gleichzeitig Antworten zurück an den Client. Dies ermöglicht Interaktionen in Echtzeit mit geringer Latenz.

  • Client-to-Agent Stream (Client-zu-Agent-Stream): Der Client sendet einen Stream von BidiProcessOrderRequest-Nachrichten mit Audioeingabe (Kundenrede), Texteingabe oder Ereigniseingaben (z. B. eine clientseitige Aktualisierung des Einkaufswagens, die von einem Kunden über eine Tippoberfläche ausgeführt wird, oder ein von der Hardware eines Drive-in-Restaurants erkanntes Ereignis, bei dem das Auto wegfährt).
  • Agent-to-Client-Stream: Der Agent gibt einen Stream von BidiProcessOrderResponse-Nachrichten zurück, die Audioausgabe (synthetisierte Agent-Sprache), Textausgabe, Transkripte der erkannten Sprache, Aktualisierungen des Bestellstatus des Kunden oder andere Signale wie erkannte Unterbrechungen enthalten.

Sitzungslebenszyklus

Jede Sitzung im KI-Agent für die Essensbestellung muss mit einer vom Kunden bereitgestellten Konfiguration beginnen, die mit einer BidiProcessOrderRequest-Nachricht mit einem Config angegeben wird. Im Config müssen zwei Felder angegeben werden:

  • store: Der vollständige Ressourcenname des Store, für den die Bestellung aufgegeben wird (z.B. projects/PROJECT/locations/LOCATION/brands/BRAND/stores/STORE). Die Sitzung übernimmt die Konfiguration, die in der referenzierten Store-Ressource und der übergeordneten Brand-Ressource dieses Geschäfts angegeben ist. Bei Konfigurationskonflikten zwischen Brand und Store hat die Store-Konfiguration Vorrang.
  • session: Eine eindeutige Sitzungs-ID im Format projects/PROJECT/locations/LOCATION/sessions/SESSION. Die session_id ist eine vom Client generierte ID, die eine Kundeninteraktion oder einen Kundenchat eindeutig identifiziert.