Build a Smart Shopping Assistant with AlloyDB und Vertex AI Agent Builder – Part 2

1. Übersicht

In der schnelllebigen Einzelhandelslandschaft von heute ist es von entscheidender Bedeutung, einen hervorragenden Kundenservice zu bieten und gleichzeitig personalisierte Einkaufserlebnisse zu ermöglichen. Wir zeigen Ihnen, wie Sie eine wissensbasierte Chatanwendung erstellen, die Kundenfragen beantwortet, die Produktfindung unterstützt und Suchergebnisse anpasst. Diese innovative Lösung kombiniert die Leistungsfähigkeit von AlloyDB für die Datenspeicherung, eine interne Analyse-Engine für das kontextbezogene Verständnis, Gemini (Large Language Model) für die Relevanzvalidierung und den Agent Builder von Google für das schnelle Bootstrapping eines intelligenten konversationellen Assistenten.

Die Herausforderung:Kunden im Einzelhandel erwarten sofortige Antworten und Produktempfehlungen, die ihren individuellen Vorlieben entsprechen. Mit herkömmlichen Suchmethoden lässt sich dieses Maß an Personalisierung oft nicht erreichen.

Die Lösung:Unsere wissensbasierte Chatanwendung geht diese Herausforderung direkt an. Dabei wird eine umfangreiche Wissensdatenbank genutzt, die aus Ihren Einzelhandelsdaten abgeleitet wird, um die Intentionen der Kunden zu verstehen, intelligent zu reagieren und hochrelevante Ergebnisse zu liefern.

Aufgaben

In diesem Lab (Teil 2) werden Sie:

  1. Einen Agent in Vertex AI Agent Builder erstellen
  2. AlloyDB-Tool in den Agent einbinden

Voraussetzungen

  • Ein Browser, z. B. Chrome oder Firefox
  • Google Cloud-Projekt mit aktivierter Abrechnungsfunktion.

2. Architektur

Datenfluss: Sehen wir uns genauer an, wie Daten durch unser System fließen:

Aufnahme:

Einzelhandelsdaten (Inventar, Produktbeschreibungen, Kundeninteraktionen) werden kontinuierlich in AlloyDB geladen.

Analytics Engine:

Wir verwenden AlloyDB als Analyse-Engine, um Folgendes auszuführen:

  1. Kontext-Extraktion: Die Engine analysiert die in AlloyDB gespeicherten Daten, um Beziehungen zwischen Produkten, Kategorien, Kundenverhalten usw. zu erkennen.
  2. Erstellung von Einbettungen: Für die Nutzeranfrage und die in AlloyDB gespeicherten Informationen werden Einbettungen (mathematische Darstellungen von Text) generiert.
  3. Vektorsuche: Die Engine führt eine Ähnlichkeitssuche durch und vergleicht die Abfrageeinbettung mit den Einbettungen von Produktbeschreibungen, Rezensionen und anderen relevanten Daten. Dadurch werden die 25 relevantesten „nächsten Nachbarn“ ermittelt.

Gemini-Validierung:

Diese potenziellen Antworten werden zur Bewertung an Gemini gesendet. Gemini prüft, ob sie wirklich relevant und sicher genug sind, um sie mit dem Nutzer zu teilen.

Antwortgenerierung:

Die validierten Antworten werden in einem JSON-Array strukturiert und die gesamte Engine wird in einer serverlosen Cloud Run-Funktion verpackt, die über den Agent Builder aufgerufen wird.

Die oben genannten Schritte werden bereits in Teil 1 des Labs behandelt.

Wir haben die technischen Details der Entwicklung einer wissensbasierten Analyse-Engine besprochen, die unseren smarten Shopping-Assistenten unterstützt. Sehen wir uns nun an, wie wir die Magie von Agent Builder nutzen, um diese Engine in einer dialogorientierten Schnittstelle zum Leben zu erwecken. Halten Sie die Endpunkt-URL bereit, bevor Sie mit Teil 2 beginnen. Dieser nächste Schritt wird in diesem Lab behandelt:

Dialogorientierte Interaktion:

Agent Builder präsentiert die Antworten in einem Format in natürlicher Sprache, was einen Dialog ermöglicht.

3. Hinweis

Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist .
  3. Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird und in der bq vorinstalliert ist. Klicken Sie oben in der Google Cloud Console auf „Cloud Shell aktivieren“.

Bild der Schaltfläche „Cloud Shell aktivieren“

  1. Sobald die Verbindung mit der Cloud Shell hergestellt ist, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist:
gcloud auth list
  1. Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
  1. Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
  1. Aktivieren Sie die erforderlichen APIs. Alternativ zum gcloud-Befehl können Sie in der Konsole nach den einzelnen Produkten 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 TEIL 1 des Labs abgeschlossen haben, um dieses Lab zu absolvieren.

4. Agent-Erstellung

Einführung von Agent Builder

Agent Builder ist ein leistungsstarkes Low-Code-Tool, mit dem wir schnell und effizient konversationelle Agenten erstellen können. Es vereinfacht das Entwerfen von Dialogabläufen, das Einbinden 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 Einzelhandels-Wissensdatenbank zugreifen und intelligent auf Kundenanfragen reagieren.

Agent erstellen

Wir beginnen mit der Erstellung dieses neuen KI-Agenten, der Nutzerfragen zu den Bekleidungsprodukten beantworten soll.

  1. Melden Sie sich zuerst in der Agent Builder-Plattform an. Wenn Sie aufgefordert werden, die API zu aktivieren, klicken Sie auf „FORTFAHREN UND API AKTIVIEREN“.
  2. Klicken Sie auf „APP ERSTELLEN“ und geben Sie Ihrem Agenten einen aussagekräftigen Namen, z.B. „Retail Shopping Assistant“ (Einzelhandels-Shopping-Assistent).
  3. Klicken Sie auf den App-Typ „Agent“.

462bb48664e9a14e.png

  1. . Geben Sie Ihrem Agenten einen aussagekräftigen Namen wie „Retail Shopping Assistant“ und legen Sie die Region auf „us-central1“ fest.

10eceef44b1600d1.png

  1. Geben Sie die Details für den Agent ein:
  2. Ändern Sie den Namen des Agenten in „Retail Shopping Agent“.
  3. Fügen Sie das folgende Zielvorhaben 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.

537a87a842aae897.png

  1. Speichern Sie die Datei und lassen Sie die Anleitung vorerst leer.
  2. Klicken Sie dann im Navigationsmenü auf „Tools“ und auf „ERSTELLEN“.

2ffae953bbad38e5.png

Toolname eingeben:Retail 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 Backend-Endpunkt, um den Agent zu betreiben. Kopieren Sie die OpenAPI-Spezifikation unten 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.

Übernehmen Sie für die restlichen Einstellungen die Standardwerte und klicken Sie auf „Speichern“.

  1. Kehren Sie an dieser Stelle zum Agent zurück, da wir die Konfiguration „Tool“ den „Anweisungen“ des Agents hinzufügen möchten. Fügen Sie den Platzhalter für Anleitungen Folgendes hinzu. Die Einzüge sind wichtig, um den Ablauf zu definieren:
- 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.

Achten Sie darauf, dass das Tool „Retail Shopping Tool“ im Bereich „Verfügbare Tools“ ausgewählt ist, und speichern Sie den Agenten dann noch einmal.

5. Agent testen

Im rechten Bereich sollte der Abschnitt „KI-Agenten in der Vorschau testen“ angezeigt werden, in dem Sie Ihren KI-Agenten testen können.

Wie Sie im Screenshot unten sehen, habe ich mich als Nutzer vorgestellt und meinen Chat mit einer Anfrage nach einem weißen Hemd mit blauen Prints begonnen:

63ac3ef6d1f0f614.png

Das ist die JSON-Antwort:

acf3cb0e2be2ed91.png

Dies ist das Roh-JSON-Ergebnis der Cloud-Funktion, die die AlloyDB-Ähnlichkeitssuche verarbeitet. Geschafft! Wir sind jetzt mit dem Kundenservicemitarbeiter fertig.

6. Beispiel für einen Unterhaltungsablauf

Jetzt können Sie den Ablauf Ihres Dialog-Agenten (Konversations-Agenten) testen und optimieren:

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 Konversations-Agenten in einem bestimmten grafischen Format mit Bildern und Links sehen. Dazu verwenden wir Beispiele für Unterhaltungen, auch bekannt als „Few-Shot-Prompting“.

Das bedeutet, dass wir dem Agent Builder einige Beispiele hinzufügen möchten, um ein einheitliches Ergebnisformat zu erhalten.

In einem unserer vorherigen Screenshots im Abschnitt Agent testen sehen wir die Antwort des Agents: „I see. Du suchst ein weißes T‑Shirt mit blauen Prints…“ Rufen Sie die Antwort auf oder erstellen Sie im rechten Bereich des Agents eine neue Testunterhaltung:

  1. Geben Sie Folgendes im Bereich „Nutzer-Eingabe eingeben“ ein:

dc8c010c36400e64.png

Sie erhalten eine Antwort wie diese:

e31d9f53bf5564c8.png

Außerdem wird das JSON-Array angezeigt, das vom API-Endpunkt zurückgegeben wird.

  1. Klicken Sie nun im Rand des Vorschauabschnitts auf den Namen des KI-Agenten (siehe Abbildung unten, rot markiert). Alle Tabs im Chat-Vorschauabschnitt werden hervorgehoben. Klicken Sie nun rechts oben im Vorschauabschnitt auf „Save Example“ (Beispiel speichern). Diese sieht wie folgt aus:

1e0a9f6815f63bf9.png

  1. Speichern Sie die Konversation mit dem Anzeigenamen „Antwort mit Bildern“ oder einem ähnlichen Namen und klicken Sie auf „Erstellen“.
  2. Gehen Sie nun zum Antworttab, der im Bild oben mit einem schwarzen Häkchen markiert ist, und ersetzen Sie den Text „I see. Sie suchen nach gelben Sandalen. Ist das richtig?“ durch Folgendes:
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>
  1. Klicken Sie oben auf „Speichern“.

Wiederholen Sie den Vorgang für beliebig viele Beispiele mit unterschiedlichen Variationen und Gesprächsverläufen.

Testen Sie es jetzt mit einer Nutzereingabe:

450166a929645353.png

Weitere Arten von Antworten:

be8908c99cd33730.png

Das war's. Wir haben erfolgreich einen Konversations-KI-Agenten für unsere Einzelhandels-App erstellt und getestet.

7. Bereitstellung und Integration

Wenn Sie mit Ihrem Agent zufrieden sind, können Sie ihn mithilfe der Integrationen von Agent Builder ganz einfach auf verschiedenen Kanälen bereitstellen. Sie können ihn auf Ihrer Website einbetten, in beliebte Messaging-Plattformen einbinden oder sogar eine eigene mobile App erstellen. Wir können die Agent Builder API auch direkt in unseren Webclientanwendungen verwenden. Das haben wir in diesem Blog beschrieben.

8. Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Google Cloud Console zu Verwalten .
  2. Ressourcenseite
  3. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
  4. 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 geschaffen, 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 vorn gemacht, um kontextbezogene und Vektorsuchen zugänglich, effizient, wirklich bedeutungsorientiert und agentenbasiert zu machen.