1. Übersicht
Im heutigen schnelllebigen Einzelhandel ist es von größter Bedeutung, einen außergewöhnlichen Kundenservice zu bieten und gleichzeitig ein personalisiertes Einkaufserlebnis zu ermöglichen. Wir nehmen Sie mit auf eine technisch orientierte Reise durch die Entwicklung einer wissensorientierten Chatanwendung, die Kundenfragen beantworten, die Produktsuche anleiten und die 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: Moderne Einzelhandelskunden erwarten sofortige Antworten und Produktempfehlungen, die ihren individuellen Vorlieben entsprechen. Herkömmliche Suchmethoden bieten ein solches Maß an Personalisierung oft nicht.
Die Lösung:Unsere wissensbasierte Chatanwendung meistert diese Herausforderung von Anfang an. 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 sich durch unser System bewegen:
Datenaufnahme:
Einzelhandelsdaten (Inventar, Produktbeschreibungen, Kundeninteraktionen) werden kontinuierlich in AlloyDB geladen.
Analyse-Engine:
Wir verwenden AlloyDB als Analyse-Engine, um Folgendes auszuführen:
- Kontextextraktion: Die Engine analysiert die in AlloyDB gespeicherten Daten, um die Beziehungen zwischen Produkten, Kategorien, Kundenverhalten usw. nachzuvollziehen.
- Einbettungen erstellen: Einbettungen (mathematische Darstellungen von Text) werden sowohl für die Nutzeranfrage 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 ermittelt, ob die Inhalte wirklich relevant und sicher sind und mit dem Nutzer geteilt werden können.
Antworten generieren:
Die validierten Antworten sind in einem JSON-Array strukturiert und die gesamte Engine ist in eine serverlose Cloud Run Functions-Funktion verpackt, die vom Agent Builder aufgerufen wird.
Die oben genannten Schritte werden bereits in Teil 1 des Labs behandelt.
Wir haben über die technischen Details zur Entwicklung einer wissensorientierten Analyse-Engine gesprochen, die unseren intelligenten Shopping-Assistenten unterstützt. 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 werden folgende Schritte behandelt:
Conversational Interaction:
Agent Builder präsentiert dem Nutzer die Antworten in einem Format in natürlicher Sprache, um einen wechselseitigen Dialog zu ermöglichen.
3. Hinweis
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Hier erfahren Sie, wie Sie prüfen, 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 nicht verfügbar ist, 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
Jetzt neu: Agent Builder
Agent Builder ist ein leistungsstarkes Low-Code-Tool, mit dem wir schnell und effizient dialogorientierte Kundenservicemitarbeiter 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 Functions-Endpunkt herzustellen, den wir in Teil 1 erstellt haben. So kann unser Shopping-Assistent auf unsere Wissensdatenbank für den Einzelhandel zugreifen und Kundenanfragen intelligent beantworten.
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 Agent ein:
- Ändere den Namen des Agenten 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 sie an dieser Stelle 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:
In diesem Teil verwenden wir den Back-End-Endpunkt zur Unterstützung des Agents. Kopieren Sie die folgende OpenAPI-Spezifikation und ersetzen Sie den URL-Platzhalter (in spitzen Klammern) durch Ihren Cloud Functions-Endpunkt:
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 sollten Sie den Bereich „Preview Agent“ sehen, in dem Sie den Agent testen können.
Wie Sie im Screenshot unten sehen können, habe ich mich als Nutzer begrüßt und meinen Chat mit einer Bitte um weißes Hemd mit Bauplänen begonnen:
Dies ist die JSON-Antwort:
Dies ist das JSON-Rohergebnis der Cloud Functions-Funktion, die die AlloyDB-Ähnlichkeitssuche verarbeitet. Fertig! Wir sind jetzt mit dem Agenten fertig.
6. Beispiel für einen Unterhaltungsablauf
An dieser Stelle können Sie den Ablauf des Dialogs (Unterhaltungs-Agents) 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!
Wenige Aufnahmeaufforderungen
Nehmen wir nun an, Sie möchten das Ergebnis im Konversations-Agent in einem bestimmten Grafikformat mit Bildern und Links sehen. Dazu verwenden wir Beispiele für Unterhaltungen, die auch als Few Shot Prompting bezeichnet werden.
Das bedeutet, dass wir dem Agent-Builder einige Beispiele hinzufügen möchten, um ein einheitliches Ergebnisformat zu erhalten.
In einem der vorherigen Screenshots aus dem Video Test the Agent sehen wir die Antwort des Agents wie folgt: „I see. Du suchst nach einem weißen Hemd mit Blaudrucken...". Gehen Sie zu dieser Antwort oder erstellen Sie im rechten Bereich des Agents eine neue Testunterhaltung:
- Geben Sie unten im Feld „Benutzereingabe eingeben“ Folgendes ein: Abschnitt:
Die Antwort sieht in etwa so aus:
Außerdem sehen Sie das vom API-Endpunkt zurückgegebene JSON-Array.
- Klicke jetzt am Rand des Vorschaubereichs auf den Agent-Namen (siehe Abbildung unten, der mit einem roten Häkchen markiert ist). Daraufhin werden alle Tabs in der Chatvorschau hervorgehoben. Klicken Sie auf „Beispiel speichern“ oben rechts im Vorschaubereich. Diese sieht wie folgt aus:
- Unterhaltung mit einem Anzeigenamen speichern: „Antwort mit Bildern“ und klicken Sie auf „Erstellen“.
- Gehen Sie nun zum Tab „Antworten“, der im obigen Bild mit einem schwarzen Häkchen markiert ist, und ersetzen Sie den Text „Ich sehe. 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 Prozess für beliebig viele Beispiele mit verschiedenen Varianten und Abläufen der Konversation.
Testen Sie es nun mit einer Nutzereingabe:
Andere 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 beliebte Kommunikationsplattformen integrieren oder sogar eine dedizierte mobile App erstellen. Wir können die Agent Builder API auch direkt in unseren Webclient-Anwendungen verwenden. Weitere Informationen dazu finden Sie in diesem Blog.
8. Bereinigen
So 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 Erlebnisse bietet, Fragen genau 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 vorne gemacht, wenn es darum geht, Kontext- und Vektorsuchen barrierefrei, effizient, bedeutungsgesteuert und agentisch zu gestalten.