1. Übersicht
In der heutigen schnelllebigen Einzelhandelsbranche ist es von entscheidender Bedeutung, einen hervorragenden Kundenservice zu bieten und gleichzeitig personalisierte Einkaufserlebnisse zu ermöglichen. Wir führen Sie durch die technische Erstellung einer KI-gestützten Chat-Anwendung, die Kundenfragen beantworten, die Produktsuche unterstützen und Suchergebnisse anpassen soll. Diese innovative Lösung kombiniert die Leistungsfähigkeit von AlloyDB für die Datenspeicherung, eine interne Analyse-Engine für das Kontextverständnis, Gemini (Large Language Model) zur Relevanzvalidierung und Agent Builder von Google zum schnellen Bootstrapping eines intelligenten Konversationsassistenten.
Die Herausforderung: Heutige Einzelhändler erwarten sofortige Antworten und Produktvorschläge, die ihren individuellen Vorlieben entsprechen. Herkömmliche Suchmethoden bieten ein solches Maß an Personalisierung oft nicht.
Die Lösung: Unsere KI-gestützte Chat-Anwendung löst diese Herausforderung. Dabei wird eine umfassende Wissensdatenbank aus Ihren Einzelhandelsdaten genutzt, um Kundenabsichten zu verstehen, intelligent darauf zu reagieren und hochrelevante Ergebnisse zu liefern.
Aufgaben
Aufgaben in diesem Lab (Teil 2):
- Vertex AI Agent Builder-Agent erstellen
- AlloyDB-Tool in den Agent einbinden
Voraussetzungen
2. Architektur
Datenfluss: Sehen wir uns genauer an, wie Daten durch unser System fließen:
Datenaufnahme:
Einzelhandelsdaten (Inventar, Produktbeschreibungen, Kundeninteraktionen) werden kontinuierlich in AlloyDB geladen.
Analytics-Engine:
Wir verwenden AlloyDB als Analyse-Engine, um Folgendes auszuführen:
- Kontextextraktion: Die Engine analysiert die in AlloyDB gespeicherten Daten, um Beziehungen zwischen Produkten, Kategorien, Kundenverhalten usw. zu ermitteln.
- Erstellung von Einbettungen: Einbettungen (mathematische Darstellungen von Text) werden sowohl für die Abfrage des Nutzers als auch für die in AlloyDB gespeicherten Informationen generiert.
- Vektorsuche: Die Suchmaschine führt eine Ähnlichkeitssuche durch und vergleicht dabei die Einbettung der Suchanfrage mit den Einbettungen von Produktbeschreibungen, Erfahrungsberichten und anderen relevanten Daten. Damit werden die 25 relevantesten „nächsten Nachbarn“ ermittelt.
Gemini-Validierung:
Diese potenziellen Antworten werden zur Prüfung an Gemini gesendet. Gemini prüft, ob sie wirklich relevant und sicher für die Freigabe an den Nutzer sind.
Antworten generieren:
Die validierten Antworten werden in einem JSON-Array strukturiert und die gesamte Engine wird in einer serverlosen Cloud Run-Funktion verpackt, die vom Agent Builder aufgerufen wird.
Die oben genannten Schritte werden bereits in Teil 1 des Labs behandelt.
Wir haben die technischen Details zur Erstellung einer wissensbasierten Analyse-Engine besprochen, die unseren intelligenten Shopping-Assistenten antreibt. Sehen wir uns nun an, wie wir die Magie von Agent Builder nutzen können, um diese Engine in einer Konversationsschnittstelle zum Leben zu erwecken. Halten Sie die Endpunkt-URL bereit, bevor Sie mit Teil 2 beginnen. In diesem Lab geht es um den nächsten Schritt:
Conversational Interaction:
Agent Builder präsentiert die Antworten in natürlicher Sprache, was einen Dialog zwischen Nutzer und Bot ermöglicht.
3. Vorbereitung
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
- Sie verwenden Cloud Shell, eine in Google Cloud ausgeführte Befehlszeilenumgebung mit vorinstalliertem bq. Klicken Sie oben in der Google Cloud Console auf „Cloud Shell aktivieren“.
- Sobald Sie eine Verbindung zu Cloud Shell hergestellt haben, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und ob das Projekt auf Ihre Projekt-ID eingestellt ist:
gcloud auth list
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
- Wenn Ihr Projekt noch nicht eingerichtet ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
- Aktivieren Sie die erforderlichen APIs. Alternativ zum gcloud-Befehl können Sie in der Konsole nach jedem Produkt suchen oder diesen Link verwenden.
Wenn eine API fehlt, können Sie sie jederzeit während der Implementierung aktivieren.
Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.
Wichtiger Hinweis:Sie müssen außerdem TEIL 1 des Labs abgeschlossen haben.
4. Agent-Erstellung
Einführung in Agent Builder
Agent Builder ist ein leistungsstarkes Low-Code-Tool, mit dem wir Konversations-Agenten schnell und effizient erstellen können. Sie optimiert das Entwerfen von Dialogabläufen, das Integrieren von Wissensdatenbanken und das Herstellen einer Verbindung zu externen APIs. In unserem Fall verwenden wir Agent Builder, um eine nahtlose Verbindung zum Cloud Function-Endpunkt herzustellen, den wir in Teil 1 erstellt haben. So kann unser Shopping Assistant auf unsere Einzelhandels-Wissensdatenbank zugreifen und intelligent auf Kundenanfragen reagieren.
Agent erstellen
Wir beginnen mit der Erstellung dieses neuen Agents für die Beantwortung von Nutzerfragen zu Bekleidungsprodukten.
- Melden Sie sich zuerst auf der Agent Builder-Plattform an. Wenn Sie aufgefordert werden, die API zu aktivieren, klicken Sie auf WEITER UND DIE API AKTIVIEREN.
- Klicken Sie auf CREATE APP (APP ERSTELLEN). und geben Sie dem Agent einen aussagekräftigen Namen (z.B. „Shopping Assistant“ für den Einzelhandel).
- Klicken Sie auf den App-Typ „Agent“.
- . Geben Sie dem Agent einen aussagekräftigen Namen wie „Shopping Assistant für den Einzelhandel“ und lege die Region auf „us-central1“ fest.
- Geben Sie die Details für den Kundenservicemitarbeiter ein:
- Ändern Sie den Namen des Kundenservicemitarbeiters in „Retail Shopping Agent“.
- Fügen Sie das folgende „Ziel“ hinzu:
You are a shopping assistant agent! Your job is to help the customer search for their ideal apparels, allow them to add items to their cart, remove items from their cart, and review items in their cart. Once a user is done searching, open the search results in a user friendly html page.
- Speichern Sie die Seite und lassen Sie die Anleitung vorerst leer.
- Klicken Sie dann im Navigationsmenü auf „Tools“ und dann auf „ERSTELLEN“.
Toolnamen eingeben:Einzelhandels-Shopping-Tool
Tool-Beschreibung eingeben:
This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.
Schema eingeben – OpenAPI im YAML-Format:
Hier verwenden wir den Back-End-Endpunkt, um den Agenten zu betreiben. Kopieren Sie die folgende OpenAPI-Spezifikation und ersetzen Sie den URL-Platzhalter (in spitzen Klammern) durch den Endpunkt Ihrer Cloud Functions-Funktion:
openapi: 3.0.0
info:
title: AlloyDB Product Matcher
description: A Cloud Function to query AlloyDB for product matches based on user search text.
version: 1.0.0
servers:
- url: <<https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/alloy-gem>>
paths:
/:
post:
summary: Find matching products based on search text.
operationId: apparelSearch
requestBody:
description: JSON object containing the search text.
required: true
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: The user's search query for product matching.
responses:
'200':
description: Successful response with a JSON array of matching products.
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
description: Product ID.
category:
type: string
description: Product category.
sub_category:
type: string
description: Product sub-category.
uri:
type: string
description: Product URI or URL.
description:
type: string
description: Product description.
literature:
type: object
description: JSON object containing match information from the ML model.
properties:
MATCH:
type: string
description: Whether the product matches the search query (YES/NO).
PERCENTAGE:
type: string
description: Percentage of match.
DIFFERENCE:
type: string
description: Description of differences between the search and product.
'500':
description: Internal server error.
Lassen Sie bei allen anderen Konfigurationen die Standardwerte unverändert und klicken Sie auf „Speichern“.
- Kehren Sie nun zum Agent zurück, da wir das „Tool“ hinzufügen möchten. Konfiguration in die Anweisungen des Agents. Fügen Sie dem Platzhalter für die Anleitung Folgendes hinzu (Einzüge sind wichtig für die Definition des Ablaufs):
- Greet the user and answer their question to the best of your knowledge.
- Summarize the user's request and ask them to confirm that you understood correctly.
- Check if the request has details like gender, color, material, style and other key apparel details already.
- If not, seek clarifying details.
- If the search request is very broad, then ask the user to narrow down the request with specific details that you believe could be personal preferences.
- Once all the necessary details are met, summarize your final understanding of the request with the user.
- Use ${TOOL: Retail Shopping Tool} to help the user with their task.
- If the request has unrelated input text, gracefully convey that you don't have information on that topic.
- Do not give product availability information outside the source that is provided to you in ${TOOL: Retail Shopping Tool}.
- Do not assist with any information unless you are certain that you know the answer and it is grounded in the source of truth.
- Thank the user for their business and say goodbye.
Das Tool „Retail Shopping Tool“ muss unter „Verfügbare Tools“ ausgewählt ist, und speichern Sie den Agent noch einmal.
5. Agent testen
Im rechten Bereich sollte der Bereich „Preview Agent“ (Vorschau-Kundenservicemitarbeiter) angezeigt werden, in dem Sie Ihren Kundenservicemitarbeiter testen können.
Wie Sie im Screenshot unten sehen, habe ich mich als Nutzer gegrüßt und meinen Chat mit einer Anfrage nach einem weißen Hemd mit blauen Drucken begonnen:
Dies ist die JSON-Antwort:
Das ist das Roh-JSON-Ergebnis der Cloud-Funktion, die die AlloyDB-Ähnlichkeitssuche verarbeitet. Fertig! Wir sind jetzt mit dem Kundenservicemitarbeiter verbunden.
6. Beispiel für einen Unterhaltungsablauf
Jetzt können Sie den Ablauf Ihres Dialog-Agenten testen und iterieren:
User: I'm looking for women's boots for winter.
Agent: (OpenAPI call to Cloud Function that works with AlloyDB Similarity Search)
Cloud Function: (Processes query, returns JSON array)
Agent: Based on your preferences, here are some options: [Product 1, Product 2, Product 3]. Would you like to see more details about any of these?
User: No, That is all. Bye!
Agent: Have a good day!
Few-Shot-Prompts
Angenommen, Sie möchten das Ergebnis im Konversationsagenten in einem bestimmten Grafikformat mit Bildern und Links sehen. Dazu verwenden wir Beispiele für Unterhaltungen, auch als Few-Shot-Prompts bezeichnet.
Daher möchten wir dem Agent Builder einige Beispiele hinzufügen, um ein einheitliches Ergebnisformat zu erhalten.
In einem unserer vorherigen Screenshots im Abschnitt Agent testen sehen wir die Antwort des Kundenservicemitarbeiters: „Verstehe. Sie suchen nach einem weißen Hemd mit blauen Drucken…" Gehen Sie zu dieser Antwort oder erstellen Sie im rechten Bereich des Agents eine neue Testunterhaltung:
- Geben Sie im Abschnitt „Nutzerinput eingeben“ Folgendes ein:
Die Antwort sieht in etwa so aus:
Außerdem wird das JSON-Array angezeigt, das vom API-Endpunkt zurückgegeben wird.
- Klicken Sie jetzt im Bereich „Vorschau“ am Rand auf den Namen des Kundenservicemitarbeiters (wie in der Abbildung unten mit einem roten Häkchen markiert). Alle Tabs im Bereich „Chatvorschau“ werden dann hervorgehoben. Klicken Sie auf „Beispiel speichern“ oben rechts im Vorschaubereich. Diese sieht wie folgt aus:
- Speichern Sie die Unterhaltung mit dem Anzeigenamen „Antwort mit Bildern“ oder ähnlich und klicken Sie auf „Erstellen“.
- Rufen Sie nun den Tab „Antwort“ auf, der im obigen Bild mit einem schwarzen Häkchen markiert ist, und ersetzen Sie den Text „Verstehe. Sie suchen nach gelben Sandalen. Ist das richtig?“ Dabei gilt:
I see you are looking for yellow sandals. Here are a few options for you:
<!DOCTYPE html>
<html>
<body>
<h2>Featured Sandals</h2>
<table style="overflow-x: auto; white-space: nowrap;">
<tr>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/d27dbd8e9666b9af2d72fbfde315f76d_images.jpg" alt="Yellow sandals from Estd. 1977" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/b7a479fe5f56457e930541a789c5df68_images.jpg" alt="Yellow sandals from Gliders" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/b6c813734b29b89d1055fd000ea50743_images.jpg" alt="Yellow sandals from Rocia" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/ee0e918c229e76e0e7e61712e9d2ecb3_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
</td>
<td>
<img src="https://assets.myntassets.com/v1/images/style/properties/5bdd4c9e739205e28ee134ff7849bc60_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
</td>
</tr>
</table>
</body>
</html>
- Klicken Sie auf „Speichern“. ganz oben.
Wiederholen Sie den Vorgang für beliebig viele Beispiele mit verschiedenen Varianten und Abläufen der Unterhaltung.
Testen Sie es nun mit einer Nutzereingabe:
Weitere Arten von Antworten:
Das war's. Wir haben erfolgreich einen Konversations-Agent für unsere Einzelhandels-App erstellt und getestet.
7. Bereitstellung und Integration
Wenn Sie mit dem Agent zufrieden sind, können Sie ihn mithilfe der Integrationen von Agent Builder ganz einfach in verschiedenen Kanälen bereitstellen. Sie können sie in Ihre Website einbetten, in gängige Messaging-Plattformen einbinden oder sogar eine eigene mobile App erstellen. Außerdem können wir die Agent Builder API direkt in unseren Webanwendungs-Clients verwenden, wie in diesem Blogpost beschrieben.
8. Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:
- Gehen Sie in der Google Cloud Console zur Seite Verwalten .
- Ressourcen.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.
9. Glückwunsch
Glückwunsch! Durch die Integration der Leistungsfähigkeit unserer benutzerdefinierten Analyse-Engine in die intuitive Benutzeroberfläche von Agent Builder haben wir einen intelligenten Shopping-Assistenten für den Einzelhandel entwickelt, der personalisierte Erfahrungen liefert, genau beantwortete Fragen beantwortet und letztendlich die Kundenzufriedenheit und den Umsatz steigert. Durch die Kombination der Funktionen von AlloyDB, Vertex AI und Vektorsuche haben wir einen großen Schritt nach vorn gemacht, um kontextbezogene und Vektorsuchen zugänglich, effizient, wirklich sinnvoll und handlungsorientiert zu machen.