Mit einer Gemini AI-Chat-App Fragen basierend auf Chat-Unterhaltungen beantworten

In diesem Tutorial erstellen Sie eine Google Chat-App, die Fragen auf der Grundlage von Unterhaltungen in Chatbereichen mit generativer KI beantwortet, die von Vertex AI mit Gemini betrieben wird. Die Chat-App verwendet die Google Workspace Events API und Pub/Sub, um in Chatbereichen gepostete Fragen in Echtzeit zu erkennen und zu beantworten, selbst wenn sie nicht erwähnt wird.

Die Chat-App verwendet alle im Gruppenbereich gesendeten Nachrichten als Datenquelle und Wissensdatenbank. Wenn jemand eine Frage stellt, sucht die Chat-App nach zuvor geteilten Antworten und gibt dann eine Antwort aus. Wenn keine Antwort gefunden wird, wird angezeigt, dass die Frage nicht beantwortet werden kann. Bei jeder Antwort können Nutzer auf eine Schaltfläche für eine Zubehöraktion klicken, um einen Gruppenbereichsmanager zu erwähnen und um eine Antwort zu bitten. Durch die Verwendung von Gemini AI passt sich die Google Chat App an und erweitert ihre Wissensdatenbank, da sie kontinuierlich anhand von Unterhaltungen in Gruppenbereichen trainiert wird, denen sie hinzugefügt wurde.

So funktioniert die Chat-App in einem Bereich für das Onboarding und den Support von Mitarbeitern:

  • Wenn Sie die App für den KI-Wissensassistenten erwähnen, wird sie einem Gruppenbereich hinzugefügt.
    Abbildung 1: Charlie fügt dem Chatbereich die Chat-App „KI-Wissensassistent“ hinzu.
  • Dana stellt eine Frage.
    Abbildung 2: Dana fragt, ob das Unternehmen Rhetorikschulungen anbietet.
  • Die KI-Wissensassistent-Chat-App beantwortet die Frage.
    Abbildung 3: Die KI-Wissensassistent-Chat-App fordert Vertex AI mit Gemini auf, Danas Frage basierend auf dem Unterhaltungsverlauf des Chatbereichs zu beantworten, und gibt dann die Antwort weiter.

Vorbereitung

Lernziele

  • Erstellen Sie eine Chat-App, die generative KI verwendet, um Fragen auf der Grundlage von Wissen zu beantworten, das in Unterhaltungen in Chatbereichen geteilt wird.
  • Mit generativer KI:
    • Mitarbeiterfragen erkennen und beantworten
    • Kontinuierliches Lernen aus laufenden Unterhaltungen in einem Chatbereich.
  • Nachrichten in einem Chat-Bereich in Echtzeit erkennen und darauf reagieren, auch wenn die Chat-App nicht direkt angesprochen wird.
  • Nachrichten dauerhaft speichern, indem Sie in eine Firestore-Datenbank schreiben und daraus lesen.
  • Die Zusammenarbeit in einem Chatbereich wird erleichtert, indem Bereichsmanager erwähnt werden, wenn keine Antwort auf eine Frage gefunden wird.

Architektur

Das folgende Diagramm zeigt die Architektur der von der Chat-App für den KI-Wissensassistenten verwendeten Google Workspace- und Google Cloud-Ressourcen.

Architekturdiagramm für die Chat-App „KI-Wissensassistent“

So funktioniert die Chat-App mit dem KI-Wissensassistenten:

  • Ein Nutzer fügt die Chat-App „KI-Wissensassistent“ einem Chatbereich hinzu:

    1. Die Chat-App fordert den Nutzer, der sie dem Chat-Gruppenbereich hinzugefügt hat, auf, Authentifizierung und Autorisierung zu konfigurieren.

    2. Die Chat-App ruft die Nachrichten des Bereichs ab, indem sie die Methode spaces.messages.list in der Chat API aufruft, und speichert die abgerufenen Nachrichten dann in einer Firestore-Datenbank.

    3. Die Chat-App ruft die Methode subscriptions.create in der Google Workspace Events API auf, um mit dem Abhören von Ereignissen wie Nachrichten im Gruppenbereich zu beginnen. Der Benachrichtigungsendpunkt des Abos ist ein Pub/Sub-Thema, das Eventarc verwendet, um das Ereignis an die Chat-App weiterzuleiten.

    4. Die Chat App postet eine Einführungsnachricht im Gruppenbereich.

  • Ein Nutzer in einem Chatbereich postet eine Nachricht:

    1. Die Chat-App empfängt die Nachricht in Echtzeit aus dem Pub/Sub-Thema.

    2. Die Chat-App fügt die Nachricht der Firestore-Datenbank hinzu.

      Wenn ein Nutzer die Nachricht später bearbeitet oder löscht, empfängt die Chat-App das aktualisierte oder gelöschte Ereignis in Echtzeit und aktualisiert oder löscht die Nachricht dann in der Firestore-Datenbank.

    3. Die Chat App sendet die Nachricht an Vertex AI mit Gemini:

      1. Der Prompt weist Vertex AI mit Gemini an, zu prüfen, ob die Nachricht eine Frage enthält. Wenn ja, beantwortet Gemini die Frage auf Grundlage des in Firestore gespeicherten Nachrichtenverlaufs des Chatbereichs und die Google Chat-App sendet die Nachricht dann an den Chatbereich. Wenn nicht, reagieren Sie nicht.

      2. Wenn Vertex AI mit Gemini die Frage beantwortet, postet die Chat-App die Antwort, indem sie die Methode spaces.messages.create in der Chat API mit App-Authentifizierung aufruft.

        Wenn Vertex AI mit Gemini die Frage nicht beantworten kann, postet die Chat-App eine Nachricht, in der steht, dass sie im Verlauf des Chatbereichs keine Antwort auf die Frage finden kann.

        Nachrichten enthalten immer eine Schaltfläche für eine zusätzliche Aktion, auf die Nutzer klicken können. Dadurch wird in der Chat-App ein Administrator des Gruppenbereichs mit @ erwähnt und aufgefordert, zu antworten.

  • Die Chat-App erhält über die Google Workspace Events API eine Benachrichtigung zum Lebenszyklus, dass das Abo für den Chatbereich bald abläuft:

    1. Die Chat-App sendet eine Anfrage zum Verlängern des Abos, indem sie die Methode subscriptions.patch in der Google Workspace Events API aufruft.
  • Die Chat-App wird aus einem Chat-Gruppenbereich entfernt:

    1. Die Chat App löscht das Abo durch Aufrufen der subscriptions.delete-Methode in der Google Workspace Events API.

    2. Die Chat App löscht die Daten des Chat-Gruppenbereichs aus Firestore.

Von der Chat-App „KI-Wissensassistent“ verwendete Produkte ansehen

Die Chat-App für den KI-Wissensassistenten verwendet die folgenden Google Workspace- und Google Cloud-Produkte:

  • Vertex AI API mit Gemini: Eine auf Gemini basierende Plattform für generative KI. Der KI-Wissensassistent Die Chat-App verwendet die Vertex AI API mit Gemini, um Mitarbeiterfragen zu erkennen, zu verstehen und zu beantworten.
  • Chat API: Eine API zum Entwickeln von Google Chat-Apps, die Chat-Interaktionsereignisse wie Nachrichten empfangen und darauf reagieren. Die Chat-App mit KI-Wissensassistent verwendet die Chat API für folgende Zwecke:
    • Von Chat gesendete Interaktionsereignisse empfangen und darauf reagieren.
    • Nachrichten auflisten, die in einem Gruppenbereich gesendet wurden.
    • Antworten auf Nutzerfragen in einem Gruppenbereich posten
    • Konfigurieren Sie Attribute, die bestimmen, wie der Bot in Chat angezeigt wird, z. B. Name und Avatarbild.
  • Google Workspace Events API: Mit dieser API können Sie Ereignisse abonnieren und Änderungsbenachrichtigungen in Google Workspace-Anwendungen verwalten. Die Chat-App „KI-Wissensassistent“ verwendet die Google Workspace Events API, um auf Nachrichten zu achten, die in einem Chatbereich gepostet werden. So kann sie Fragen erkennen und beantworten, auch wenn sie nicht erwähnt wird.
  • Firestore: Eine serverlose Dokumentendatenbank. Die Chat-App „KI-Wissensassistent“ verwendet Firestore zum Speichern von Daten zu Nachrichten, die in einem Chat-Bereich gesendet werden.
  • Pub/Sub: Pub/Sub ist ein asynchroner, skalierbarer Messaging-Dienst, der Dienste entkoppelt, die Nachrichten von Diensten erzeugen, die diese Nachrichten verarbeiten. Die Chat-App „KI-Wissensassistent“ verwendet Pub/Sub, um Abo-Ereignisse aus Chat-Bereichen zu empfangen.
  • Eventarc: Mit Eventarc können Sie ereignisgesteuerte Architekturen erstellen, ohne die zugrunde liegende Infrastruktur implementieren, anpassen oder verwalten zu müssen. Die KI-Wissensassistent-Chat-App verwendet Eventarc, um Ereignisse von Pub/Sub an einen Chatbereich und die Cloud Functions-Funktion weiterzuleiten, die die Abo-Ereignisse empfängt und verarbeitet.
  • Cloud Functions: Ein einfacher, serverloser Computing-Dienst, mit dem Sie zweckgebundene, eigenständige Funktionen erstellen können, die auf Chat-Interaktions- und Aboereignisse reagieren, ohne dass Sie eine Server- oder Laufzeitumgebung verwalten müssen. Die KI-Wissensassistent-Chat-App verwendet zwei Cloud Functions-Funktionen mit den folgenden Namen:
    • app: Hosten Sie den HTTP-Endpunkt, an den Chat Interaktionsereignisse sendet, und verwenden Sie ihn als Compute-Plattform, um Logik auszuführen, die diese Ereignisse verarbeitet und darauf reagiert.
    • eventsApp: Empfängt und verarbeitet Chatbereichsereignisse wie Nachrichten aus einem Pub/Sub-Abo.
    Cloud Functions verwendet die folgenden Google Cloud-Produkte, um Computing-Ressourcen zu erstellen und zu hosten:
    • Cloud Build: Eine vollständig verwaltete Plattform für Continuous Integration, Delivery und Deployment, auf der automatisierte Builds ausgeführt werden.
    • Cloud Run: Eine vollständig verwaltete Umgebung zum Ausführen von Containeranwendungen.

Umgebung vorbereiten

In diesem Abschnitt wird beschrieben, wie Sie ein Google Cloud-Projekt für die Chat-App erstellen und konfigurieren.

Google Cloud-Projekt erstellen

Google Cloud Console

  1. Klicken Sie in der Google Cloud Console auf das Menü  > IAM & Verwaltung > Projekt erstellen.

    Zur Seite „Projekt erstellen“

  2. Geben Sie im Feld Projektname einen aussagekräftigen Namen für Ihr Projekt ein.

    Optional: Wenn Sie die Projekt-ID bearbeiten möchten, klicken Sie auf Bearbeiten. Die Projekt-ID kann nach dem Erstellen des Projekts nicht mehr geändert werden. Wählen Sie also eine ID aus, die während der gesamten Dauer des Projekts den Anforderungen entspricht.

  3. Klicken Sie im Feld Speicherort auf Durchsuchen, um mögliche Speicherorte für Ihr Projekt aufzurufen. Klicken Sie danach auf Auswählen.
  4. Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite „Dashboard“ aufgerufen und Ihr Projekt wird innerhalb weniger Minuten erstellt.

gcloud-CLI

Greifen Sie in einer der folgenden Entwicklungsumgebungen auf die Google Cloud CLI (gcloud) zu:

  • Cloud Shell: Aktivieren Sie Cloud Shell, um ein Onlineterminal mit der bereits eingerichteten gcloud CLI zu verwenden.
    Cloud Shell aktivieren
  • Lokale Shell: Zur Verwendung einer lokalen Entwicklungsumgebung müssen Sie die gcloud CLI installieren und initialisieren.
    Verwenden Sie zum Erstellen eines Cloud-Projekts den Befehl gcloud projects create:
    gcloud projects create PROJECT_ID
    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie erstellen möchten.

Abrechnung für das Cloud-Projekt aktivieren

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Abrechnung auf. Klicken Sie auf das Menü > Abrechnung > Meine Projekte.

    Zur Abrechnung für meine Projekte

  2. Wählen Sie unter Organisation auswählen die Organisation aus, die mit Ihrem Google Cloud-Projekt verknüpft ist.
  3. Öffnen Sie in der Projektzeile das Menü Aktionen (), klicken Sie auf Abrechnung ändern und wählen Sie das Cloud Billing-Konto aus.
  4. Klicken Sie auf Konto festlegen.

gcloud-CLI

  1. Führen Sie folgenden Befehl aus, um verfügbare Rechnungskonten aufzulisten:
    gcloud billing accounts list
  2. Rechnungskonto mit einem Google Cloud-Projekt verknüpfen:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für das Cloud-Projekt, für das Sie die Abrechnung aktivieren möchten.
    • BILLING_ACCOUNT_ID ist die Rechnungskonto-ID, die mit dem Google Cloud-Projekt verknüpft werden soll.

APIs aktivieren

Google Cloud Console

  1. Aktivieren Sie in der Google Cloud Console die Google Chat API, die Vertex AI API, die Cloud Functions API, die Firestore API, die Cloud Build API, die Pub/Sub API, die Google Workspace Events API, die Eventarc API und die Cloud Run Admin API.

    APIs aktivieren

  2. Bestätigen Sie, dass Sie die APIs im richtigen Cloud-Projekt aktivieren, und klicken Sie dann auf Weiter.

  3. Prüfen Sie, ob Sie die richtigen APIs aktivieren, und klicken Sie dann auf Aktivieren.

gcloud-CLI

  1. Legen Sie gegebenenfalls das aktuelle Cloud-Projekt auf das von Ihnen erstellte Projekt fest:

    gcloud config set project PROJECT_ID

    Ersetzen Sie PROJECT_ID durch die Projekt-ID des von Ihnen erstellten Cloud-Projekts.

  2. Aktivieren Sie die Google Chat API, die Vertex AI API, die Cloud Functions API, die Firestore API, die Cloud Build API, die Pub/Sub API, die Google Workspace Events API, die Eventarc API und die Cloud Run Admin API:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

Authentifizierung und Autorisierung einrichten

Durch Authentifizierung und Autorisierung kann die Chat-App auf Ressourcen in Google Workspace und Google Cloud zugreifen.

In dieser Anleitung veröffentlichen Sie die Google Chat-App intern. Daher ist es in Ordnung, Platzhalterinformationen zu verwenden. Bevor Sie die Google Chat-App extern veröffentlichen, müssen Sie die Platzhalterinformationen auf dem Zustimmungsbildschirm durch echte Informationen ersetzen.

  1. Rufen Sie in der Google Cloud Console das Menü  > ;> Branding auf.

    Zu Branding

  2. Wenn Sie diebereits konfiguriert haben, können Sie die folgenden Einstellungen für den OAuth-Zustimmungsbildschirm unter Branding, Zielgruppe und Datenzugriff konfigurieren. Wenn Sie die Meldung noch nicht konfiguriert sehen, klicken Sie auf Jetzt starten:

    1. Geben Sie unter App-Informationen bei App-Name AI knowledge assistant ein.
    2. Wählen Sie unter E-Mail-Adresse für den Nutzer-Support Ihre E-Mail-Adresse oder eine geeignete Google-Gruppe aus.
    3. Klicken Sie auf Weiter.
    4. Wählen Sie unter Zielgruppe die Option Intern aus. Wenn Sie Intern nicht auswählen können, wählen Sie Extern aus.
    5. Klicken Sie auf Weiter.
    6. Geben Sie unter Kontaktdaten eine E-Mail-Adresse ein, unter der Sie über Änderungen an Ihrem Projekt benachrichtigt werden können.
    7. Klicken Sie auf Weiter.
    8. Sehen Sie sich unter Fertigstellen die Nutzerdatenrichtlinie für Google API-Dienste an und wählen Sie Ich stimme der Nutzerdatenrichtlinie für Google API-Dienste zu aus, wenn Sie damit einverstanden sind.
    9. Klicken Sie auf Weiter.
    10. Klicken Sie auf Erstellen.
    11. Wenn Sie Extern als Nutzertyp ausgewählt haben, fügen Sie Testnutzer hinzu:
      1. Klicken Sie auf Zielgruppe.
      2. Klicken Sie unter Testnutzer auf Nutzer hinzufügen.
      3. Geben Sie Ihre E‑Mail-Adresse und die E‑Mail-Adressen aller anderen autorisierten Testnutzer ein und klicken Sie auf Speichern.
  3. Klicken Sie auf Datenzugriff > Bereiche hinzufügen oder entfernen. Ein Bereich mit einer Liste der Bereiche für jede API, die Sie in Ihrem Google Cloud-Projekt aktiviert haben, wird angezeigt.

    1. Fügen Sie unter Bereiche manuell hinzufügen den folgenden Bereich ein:

      • https://www.googleapis.com/auth/chat.messages
    2. Klicken Sie auf Zur Tabelle hinzufügen.

    3. Klicken Sie auf Aktualisieren.

    4. Nachdem Sie die für Ihre App erforderlichen Bereiche ausgewählt haben, klicken Sie auf der Seite Datenzugriff auf Speichern.

OAuth-Client-ID-Anmeldedaten erstellen

  1. Rufen Sie in der Google Cloud Console das Menü > APIs und Dienste > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen > OAuth-Client-ID.

  3. Klicken Sie auf Anwendungstyp > Webanwendung.

  4. Geben Sie im Feld Name einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.

  5. Klicken Sie unter Autorisierte Weiterleitungs-URIs auf URI hinzufügen.

  6. Geben Sie in URIs 1 Folgendes ein:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Ersetzen Sie Folgendes:

    • REGION: die Region der Cloud Functions-Funktion, z. B. us-central1. Später, wenn Sie die beiden Cloud Functions-Funktionen erstellen, müssen Sie ihre Region auf diesen Wert festlegen.
    • PROJECT_ID: Die Projekt-ID des von Ihnen erstellten Cloud-Projekts.
  7. Klicken Sie auf Erstellen.

  8. Klicken Sie im Fenster OAuth-Client erstellt auf JSON herunterladen.

  9. Speichern Sie die heruntergeladene Datei als credentials.json. Später, wenn Sie die beiden Cloud Functions erstellen, fügen Sie die Datei credentials.json in jede Bereitstellung ein.

  10. Klicken Sie auf OK.

Pub/Sub-Thema erstellen

Das Pub/Sub-Thema funktioniert mit der Google Workspace Events API, um Ereignisse in einem Chatbereich wie Nachrichten zu abonnieren und die Chat-App in Echtzeit zu benachrichtigen.

So erstellen Sie das Pub/Sub-Thema:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console das Menü > Pub/Sub auf.

    Zu Pub/Sub

  2. Klicken Sie auf Thema erstellen.

  3. Geben Sie als Themen-ID events-api ein.

  4. Entfernen Sie das Häkchen bei Standardabo hinzufügen.

  5. Wählen Sie unter Verschlüsselung die Option Von Google verwalteter Verschlüsselungsschlüssel aus.

  6. Klicken Sie auf Erstellen. Das Pub/Sub-Thema wird angezeigt.

  7. Damit dieses Pub/Sub-Thema und die Google Workspace Events API zusammen funktionieren, müssen Sie dem Chat-IAM-Nutzer die Berechtigung zum Posten in das Pub/Sub-Thema erteilen:

    1. Klicken Sie im Bereich events-api unter BERECHTIGUNGEN auf Hauptkonto hinzufügen.

    2. Geben Sie unter Hauptkonten hinzufügen in Neue Hauptkonten chat-api-push@system.gserviceaccount.com ein.

    3. Wählen Sie unter Rollen zuweisen die Option Pub/Sub > Pub/Sub-Publisher aus.

    4. Klicken Sie auf Speichern.

gcloud-CLI

  1. Erstellen Sie ein Pub/Sub-Thema mit der Themen-ID events-api:

    gcloud pubsub topics create events-api
  2. Erteilen Sie dem Chat-IAM-Nutzer die Berechtigung, in das Pub/Sub-Thema zu posten:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Firestore-Datenbank erstellen

In der Firestore-Datenbank werden Daten aus Chat-Bereichen wie Nachrichten gespeichert und abgerufen. Sie definieren das Datenmodell nicht, da es im Beispielcode durch die Dateien model/message.js und services/firestore-service.js implizit festgelegt wird.

Die Datenbank der KI-Wissensassistenten-Chat-App verwendet ein NoSQL-Datenmodell, das auf Dokumenten basiert, die in Sammlungen organisiert sind. Weitere Informationen finden Sie unter Firestore-Datenmodell.

Das folgende Diagramm gibt einen Überblick über das Datenmodell der Chat-App für KI-Wissensassistenten:

Datenmodell der Firestore-Datenbank.

Der Stamm enthält zwei Sammlungen:

  1. spaces, wobei jedes Dokument einen Chatbereich darstellt, dem die Chat-App hinzugefügt wird. Jede Nachricht wird durch ein Dokument in der Untersammlung messages dargestellt.

  2. users, wobei jedes Dokument einen Nutzer darstellt, der die Chat-App einem Chatbereich hinzugefügt hat.

Sammlungs-, Dokument- und Felddefinitionen ansehen

spaces

Ein Chatbereich, der die Chat-App für den KI-Wissensassistenten enthält.

Felder
Document IDString
Eindeutige ID eines bestimmten Bereichs. Ein Teil des Ressourcennamens des Gruppenbereichs in der Chat API.
messagesSubcollection of Documents (messages)
Nachrichten, die im Chatbereich gesendet werden. Entspricht der Document ID einer message in Firebase.
spaceNameString
Der eindeutige Name des Gruppenbereichs in der Chat API. Entspricht dem Ressourcennamen des Gruppenbereichs in der Chat API.

messages

Nachrichten, die im Chatbereich gesendet werden.

Felder
Document IDString
Eindeutige ID einer bestimmten Nachricht.
nameString
Der eindeutige Name einer Nachricht in der Chat API. Entspricht dem Ressourcennamen der Nachricht in der Chat API.
textString
Der Text der Nachricht.
timeString (Timestamp format)
Der Zeitpunkt, zu dem die Nachricht erstellt wurde.

users

Nutzer, die die Chat-App „KI-Wissensassistent“ einem Chatbereich hinzugefügt haben.

Felder
Document IDString
Eindeutige ID eines bestimmten Nutzers.
accessTokenString
Das Zugriffstoken, das während der OAuth 2.0-Nutzerautorisierung gewährt wird und zum Aufrufen von Google Workspace APIs verwendet wird.
refreshTokenString
Das Aktualisierungstoken, das während der OAuth 2.0-Nutzerautorisierung gewährt wurde.

So erstellen Sie die Firestore-Datenbank:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console das Menü > Firestore auf.

    Firestore aufrufen

  2. Klicken Sie auf Datenbank erstellen.

  3. Klicken Sie unter Firestore-Modus auswählen auf Nativer Modus.

  4. Klicken Sie auf Weiter.

  5. Konfigurieren Sie die Datenbank:

    1. Lassen Sie unter Datenbank benennen die Datenbank-ID auf (default) eingestellt.

    2. Wählen Sie unter Standorttyp die Option Region aus.

    3. Geben Sie unter Region eine Region für Ihre Datenbank an, z. B. us-central1. Für eine optimale Leistung sollten Sie denselben oder einen nahegelegenen Standort wie die Cloud Functions der Chat App auswählen.

  6. Klicken Sie auf Datenbank erstellen.

gcloud-CLI

  • So erstellen Sie eine Firestore-Datenbank im nativen Modus:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Ersetzen Sie LOCATION durch den Namen einer Firestore-Region, z. B. us-central1. Für eine optimale Leistung sollten Sie denselben oder einen ähnlichen Standort wie die Cloud Functions der Chat-App auswählen.

Chat-App erstellen und bereitstellen

Nachdem Sie Ihr Google Cloud-Projekt erstellt und konfiguriert haben, können Sie die Chat-App erstellen und bereitstellen. In diesem Abschnitt gehen Sie so vor:

  1. Zwei Cloud Functions-Funktionen erstellen und bereitstellen Einer zum Reagieren auf Chat-Interaktionsereignisse und einer zum Reagieren auf Pub/Sub-Ereignisse.
  2. Erstellen und stellen Sie eine Chat-App auf der Seite zur Google Chat API-Konfiguration bereit.

Cloud Functions-Funktionen erstellen und bereitstellen

In diesem Abschnitt erstellen und stellen Sie zwei Cloud Functions-Funktionen mit den folgenden Namen bereit:

  • app: Hier wird der Code der Chat App gehostet und ausgeführt, der auf Ereignisse reagiert, die als HTTP-Anfragen von Chat empfangen werden.
  • eventsApp: Empfängt und verarbeitet Chatbereichsereignisse wie Nachrichten aus Pub/Sub.

Zusammen bilden diese Cloud Functions die Anwendungslogik der Chat-App mit KI-Wissensassistent.

Bevor Sie die Cloud-Funktionen erstellen, können Sie sich optional den Beispielcode auf GitHub ansehen.

Auf GitHub ansehen

app erstellen und bereitstellen

Google Cloud Console

  1. Laden Sie den Code von GitHub als ZIP-Datei herunter.

    ZIP-Datei herunterladen

  2. Extrahieren Sie die heruntergeladene ZIP-Datei.

    Der extrahierte Ordner enthält das gesamte Google Workspace-Beispiel-Repository.

  3. Wechseln Sie im extrahierten Ordner zum Verzeichnis google-chat-samples-main/node/ai-knowledge-assistant.

  4. Fügen Sie dem Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei credentials.json hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.

  5. Komprimieren Sie den Inhalt des Ordners ai-knowledge-assistant in eine ZIP-Datei.

    Die ZIP-Datei muss die folgenden Dateien und Ordner enthalten:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Rufen Sie in der Google Cloud Console das Menü > Cloud Functions auf.

    Zu Cloud Functions

    Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.

  7. Klicken Sie auf  Funktion erstellen.

  8. Richten Sie Ihre Funktion auf der Seite Funktion erstellen ein:

    1. Wählen Sie unter Umgebung die Option Cloud Run Function aus.
    2. Geben Sie unter Funktionsname den Wert app ein.
    3. Wählen Sie unter Region eine Region aus, z. B. us-central1. Diese Region muss mit der Region übereinstimmen, die Sie im autorisierten Weiterleitungs-URI festgelegt haben, als Sie OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung erstellt haben.
    4. Wählen Sie unter Triggertyp die Option HTTPS aus.
    5. Wählen Sie unter Authentifizierung die Option Nicht authentifizierte Aufrufe zulassen aus.
    6. Klicken Sie auf Weiter.
  9. Wählen Sie unter Laufzeit die Option Node.js 20 aus.

  10. Löschen Sie unter Einstiegspunkt den Standardtext und geben Sie app ein.

  11. Wählen Sie unter Quellcode die Option ZIP-Datei hochladen aus.

  12. Erstellen Sie einen Bucket oder wählen Sie einen Bucket unter Ziel-Bucket aus:

    1. Klicken Sie auf Durchsuchen.
    2. Wählen Sie einen Bucket aus.
    3. Klicken Sie auf Auswählen.

    Google Cloud lädt die ZIP-Datei in diesen Bucket hoch und entpackt die Komponentendateien. Cloud Functions kopiert die Komponentendateien dann in die Cloud-Funktion.

  13. Laden Sie unter ZIP-Datei die ZIP-Datei hoch, die Sie von GitHub heruntergeladen, entpackt und neu komprimiert haben:

    1. Klicken Sie auf Durchsuchen.
    2. Wählen Sie die ZIP-Datei aus.
    3. Klicken Sie auf Öffnen.
  14. Klicken Sie auf Bereitstellen.

    Die Seite Cloud Functions-Details wird geöffnet und Ihre Funktion wird mit zwei Fortschrittsanzeigen angezeigt: eine für den Build und eine für den Dienst. Wenn beide Fortschrittsanzeigen verschwinden und durch ein Häkchen ersetzt werden, ist Ihre Funktion bereitgestellt und einsatzbereit.

  15. Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:

    1. Klicken Sie auf der Seite Cloud-Funktionsdetails auf Bearbeiten.
    2. Klicken Sie auf Weiter.
    3. Wählen Sie unter Quellcode die Option Inline-Editor aus.
    4. Öffnen Sie die Datei env.js im Inline-Editor und bearbeiten Sie sie:
      1. Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
      2. Legen Sie für location den Wert der Region der Cloud-Funktion fest, z. B. us-central1.
  16. Klicken Sie auf Bereitstellen.

gcloud-CLI

  1. Klonen Sie den Code aus GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Wechseln Sie in das Verzeichnis, das den Code für diese KI-Wissensassistenten-Chat-App enthält:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. Fügen Sie dem Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei credentials.json hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.

  4. Bearbeiten Sie die Datei env.js, um Umgebungsvariablen festzulegen:

    1. Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
    2. Legen Sie für location den Wert der Region der Cloud-Funktion fest, z. B. us-central1.
  5. Stellen Sie die Cloud Functions-Funktion in Google Cloud bereit:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    Ersetzen Sie REGION durch den Wert der Region der Cloud-Funktion, damit er mit dem in der Datei env.js festgelegten Wert übereinstimmt, z. B. us-central1.

eventsApp erstellen und bereitstellen

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console das Menü > Cloud Functions auf.

    Zu Cloud Functions

    Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.

  2. Klicken Sie auf  Funktion erstellen.

  3. Richten Sie Ihre Funktion auf der Seite Funktion erstellen ein:

    1. Wählen Sie unter Umgebung die Option Cloud Run Function aus.
    2. Geben Sie unter Funktionsname den Wert eventsApp ein.
    3. Wählen Sie unter Region eine Region aus, z. B. us-central1. Diese Region muss mit der Region übereinstimmen, die Sie im autorisierten Weiterleitungs-URI festgelegt haben, als Sie OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung erstellt haben.
    4. Wählen Sie unter Triggertyp die Option Cloud Pub/Sub aus.
    5. Wählen Sie unter Cloud Pub/Sub-Thema den Namen des von Ihnen erstellten Pub/Sub-Themas aus, das das Format projects/PROJECT/topics/events-api hat, wobei PROJECT Ihre Cloud-Projekt-ID ist.
    6. Wenn Sie eine Meldung sehen, die mit Service account(s) might not have enough permissions to deploy the function with the selected trigger. beginnt, klicken Sie auf Alle gewähren.
    7. Klicken Sie auf Weiter.
  4. Wählen Sie unter Laufzeit die Option Node.js 20 aus.

  5. Löschen Sie unter Einstiegspunkt den Standardtext und geben Sie eventsApp ein.

  6. Wählen Sie unter Quellcode die Option ZIP aus Cloud Storage aus.

  7. Klicken Sie unter Cloud Storage-Speicherort auf Durchsuchen.

  8. Wählen Sie den Bucket aus, in den Sie die ZIP-Datei hochgeladen haben, als Sie die Cloud Functions-Funktion app erstellt haben.

  9. Klicken Sie auf die hochgeladene ZIP-Datei.

  10. Klicken Sie auf Auswählen.

  11. Klicken Sie auf Bereitstellen.

    Die Seite Cloud Functions-Details wird geöffnet und Ihre Funktion wird mit drei Fortschrittsanzeigen angezeigt: eine für den Build, eine für den Dienst und eine für den Trigger. Wenn alle drei Fortschrittsanzeigen verschwinden und durch ein Häkchen ersetzt werden, ist Ihre Funktion bereitgestellt und einsatzbereit.

  12. Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:

    1. Klicken Sie auf der Seite Cloud-Funktionsdetails auf Bearbeiten.
    2. Klicken Sie auf Weiter.
    3. Wählen Sie unter Quellcode die Option Inline-Editor aus.
    4. Öffnen Sie die Datei env.js im Inline-Editor und bearbeiten Sie sie:
      1. Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
      2. Legen Sie für location den Wert der Region der Cloud-Funktion fest, z. B. us-central1.
  13. Klicken Sie auf Bereitstellen.

gcloud-CLI

  1. Wechseln Sie in der gcloud CLI, falls noch nicht geschehen, zu dem Verzeichnis, das den Code für diese KI-Wissensassistenten-Chat-App enthält, die Sie zuvor von GitHub geklont haben:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. Fügen Sie dem Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei credentials.json hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.

  3. Bearbeiten Sie die Datei env.js, um Umgebungsvariablen festzulegen:

    1. Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
    2. Legen Sie für location den Wert der Region der Cloud-Funktion fest, z. B. us-central1.
  4. Stellen Sie die Cloud Functions-Funktion in Google Cloud bereit:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    Ersetzen Sie REGION durch den Wert der Region der Cloud-Funktion, damit er mit dem in der Datei env.js festgelegten Wert übereinstimmt, z. B. us-central1.

Kopieren Sie die Trigger-URL der app Cloud Functions-Funktion.

Die Trigger-URL der app Cloud-Funktion fügen Sie im nächsten Abschnitt ein, wenn Sie die Chat-App in der Google Cloud Console konfigurieren.

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console das Menü > Cloud Functions auf.

    Zu Cloud Functions

  2. Klicken Sie in der Spalte Name der Liste der Cloud Functions auf app.

  3. Klickbasierter Trigger

  4. Kopieren Sie die URL.

gcloud-CLI

  1. Beschreiben Sie die Cloud Functions-Funktion app:

    gcloud functions describe app
  2. Kopieren Sie die Property url.

Chat-App in der Google Cloud Console konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie die Chat API in der Google Cloud Console mit Informationen zu Ihrer Chat-App konfigurieren, einschließlich des Namens der Chat-App und der Trigger-URL der Cloud-Funktion der Chat-App, an die sie Chat-Interaktionsereignisse sendet.

  1. Klicken Sie in der Google Cloud Console auf das Menü > Weitere Produkte > Google Workspace > Produktbibliothek > Google Chat API > Verwalten > Konfiguration.

    Zur Chat API-Konfiguration

  2. Geben Sie unter App-Name AI knowledge assistant ein.

  3. Geben Sie unter Avatar URL (Avatar-URL) https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg ein.

  4. Geben Sie unter Beschreibung den Wert Answers questions with AI ein.

  5. Klicke auf die Ein/Aus-Schaltfläche Interaktive Funktionen aktivieren, um die Position „Ein“ festzulegen.

  6. Wählen Sie unter Funktionsweise die Option Gruppenbereichen und Gruppenunterhaltungen beitreten aus.

  7. Wählen Sie unter Verbindungseinstellungen die Option HTTP-Endpunkt-URL aus.

  8. Fügen Sie unter HTTP-Endpunkt-URL die Trigger-URL aus der app-Cloud Functions-Funktion im Format https://REGION-PROJECT_ID.cloudfunctions.net/app ein. Dabei ist REGION die Region der Cloud Functions-Funktion, z. B. us-central1, und PROJECT_ID die Projekt-ID des von Ihnen erstellten Cloud-Projekts.

  9. Wählen Sie unter Sichtbarkeit die Option Diese Chat-App bestimmten Personen und Gruppen in Ihrer Workspace-Domain zur Verfügung stellen aus und geben Sie Ihre E-Mail-Adresse ein.

  10. Optional können Sie unter Logs die Option Fehler in Logging protokollieren auswählen.

  11. Klicken Sie auf Speichern. Es wird eine Meldung angezeigt, dass die Konfiguration gespeichert wurde. Das bedeutet, dass die Chat-App bereit für Tests ist.

Chat App testen

Testen Sie die KI-Wissensassistent-Chat-App in einem Chatbereich mit Nachrichten, indem Sie Fragen stellen, die die KI-Wissensassistent-Chat-App beantworten kann.

Hier sind einige Möglichkeiten, die Chat-App mit KI-Wissensassistent zu testen:

  • Fügen Sie die Chat-App „AI Knowledge Assistant“ einem vorhandenen Chatbereich hinzu und stellen Sie Fragen, die für diesen Bereich relevant sind.
  • Erstellen Sie einen Chatbereich und posten Sie einige Nachrichten, die als Datenquelle dienen sollen. Nachrichten können aus Gemini mit einem Prompt wie Answer 20 common onboarding questions employees ask their teams. stammen. Alternativ können Sie einige Absätze aus dem Leitfaden Mit Chat entwickeln – Übersicht einfügen und dann Fragen dazu stellen.

In dieser Anleitung erstellen wir einen Chatbereich und fügen einige Absätze aus dem Leitfaden „Mit Google Chat entwickeln“ ein.

  1. Öffnen Sie Google Chat.

    Zu Google Chat wechseln

  2. So erstellen Sie einen Chatbereich:

    1. Klicken Sie auf  Neuer Chat > Bereich erstellen.

    2. Geben Sie unter Name des Projektbereichs Testing AI knowledge assistant app ein.

    3. Wählen Sie unter Wofür soll dieser Gruppenbereich genutzt werden? die Option Zusammenarbeit aus.

    4. Wählen Sie unter Zugriffseinstellungen aus, wer auf den Gruppenbereich zugreifen kann.

    5. Klicken Sie auf Erstellen.

  3. Fügen Sie Nachrichten hinzu, die als Datenquelle verwendet werden sollen:

    1. Rufen Sie in einem Webbrowser den Leitfaden Mit Chat entwickeln – Übersicht auf.

    2. Kopieren Sie den Inhalt des Leitfadens und fügen Sie ihn in den von Ihnen erstellten Chat-Gruppenbereich ein.

  4. So fügen Sie die Chat-App „KI-Wissensassistent“ hinzu:

    1. Geben Sie in der Leiste zum Verfassen von Nachrichten @AI knowledge assistant ein. Wählen Sie im angezeigten Vorschlagsmenü die Chat-App mit dem KI-Wissensassistenten aus und drücken Sie enter.

    2. Es wird eine Meldung angezeigt, in der Sie gefragt werden, ob Sie die KI-Wissensassistenten-Chat-App dem Gruppenbereich hinzufügen möchten. Klicken Sie auf Zu Gruppenbereich hinzufügen.

    3. Wenn Sie die Chat-App zum ersten Mal einem Bereich hinzufügen, müssen Sie die Authentifizierung und Autorisierung für die Chat-App konfigurieren:

      1. Klicken Sie auf Konfigurieren.
      2. Ein neues Browserfenster oder ein neuer Tab wird geöffnet und Sie werden aufgefordert, ein Google-Konto auszuwählen. Wählen Sie das Konto aus, mit dem Sie testen.
      3. Prüfen Sie die Berechtigungen, die von der KI-Wissensassistenten-Chat-App angefordert werden. Klicken Sie auf Zulassen, um sie zu gewähren.
      4. Die Meldung You may close this page now. wird angezeigt. Schließen Sie das Browserfenster oder den Tab und kehren Sie zum Chatbereich zurück.
  5. Fragen stellen:

    1. Geben Sie in der Eingabezeile eine Frage wie What are Google Chat apps? ein.

    2. Die KI-Wissensassistenten-Chat-App beantwortet Fragen.

    3. Wenn die Antwort nicht zutreffend oder ausreichend ist, können Sie optional auf  Hilfe erhalten klicken, um den Konversationsverlauf der KI zu verbessern. Die Chat-App mit KI-Wissensassistenten erwähnt einen Gruppenbereichsmanager und bittet ihn, die Frage zu beantworten. Beim nächsten Mal weiß der KI-Wissensassistent in der Chat-App die Antwort.

Überlegungen, alternative Architekturen und nächste Schritte

In diesem Abschnitt werden andere Möglichkeiten zum Erstellen der Chat-App für den KI-Wissensassistenten beschrieben.

Firestore, Cloud Storage oder Aufrufen von „List Messages in Chat API“

In diesem Tutorial wird empfohlen, Daten aus Chatbereichen wie Nachrichten in einer Firestore-Datenbank zu speichern, da dies die Leistung im Vergleich zum Aufrufen der Methode list für die Ressource Message mit der Chat API jedes Mal verbessert, wenn die Chat-App eine Frage beantwortet. Wenn Sie list messages wiederholt aufrufen, kann es außerdem passieren, dass das API-Kontingent der Chat-App überschritten wird.

Wenn der Unterhaltungsverlauf eines Chatbereichs jedoch zu lang wird, kann die Verwendung von Firestore kostspielig werden.

Cloud Storage ist eine Alternative zu Firestore. Für jeden Bereich, in dem die KI-Wissensassistenten-Chat-App aktiv ist, wird ein eigenes Objekt erstellt. Jedes Objekt ist eine Textdatei, die alle Nachrichten im Bereich enthält. Der Vorteil dieses Ansatzes ist, dass der gesamte Inhalt der Textdatei auf einmal an Vertex AI mit Gemini übergeben werden kann. Der Nachteil ist jedoch, dass es mehr Aufwand erfordert, den Konversationsverlauf zu aktualisieren, da Sie ein Objekt in Cloud Storage nicht anhängen, sondern nur ersetzen können. Dieser Ansatz ist nicht sinnvoll, wenn Sie den Nachrichtenverlauf regelmäßig aktualisieren. Er ist jedoch eine gute Wahl, wenn Sie den Nachrichtenverlauf regelmäßig, z. B. einmal pro Woche, in Batches aktualisieren.

Fehlerbehebung

Wenn eine Google Chat-App oder Karte einen Fehler zurückgibt, wird in der Chat-Benutzeroberfläche die Meldung „Ein Fehler ist aufgetreten“ angezeigt. oder „Ihre Anfrage kann nicht bearbeitet werden.“ Manchmal wird in der Chat-Benutzeroberfläche keine Fehlermeldung angezeigt, aber die Chat-App oder ‑Karte liefert ein unerwartetes Ergebnis, z. B. wird eine Kartennachricht nicht angezeigt.

Auch wenn in der Chat-Benutzeroberfläche keine Fehlermeldung angezeigt wird, sind aussagekräftige Fehlermeldungen und Protokolldaten verfügbar, die Ihnen helfen, Fehler zu beheben, wenn die Fehlerprotokollierung für Chat-Apps aktiviert ist. Informationen zum Aufrufen, Debuggen und Beheben von Fehlern finden Sie unter Google Chat-Fehler beheben.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, empfehlen wir, das Cloud-Projekt zu löschen.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten. Klicken Sie auf das Menü > IAM & Verwaltung > Ressourcen verwalten.

    Zum Ressourcenmanager

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.