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

In dieser Anleitung erfahren Sie, wie Sie eine Google Chat-App erstellen, die Fragen basierend auf Unterhaltungen in Chatbereichen mit generativer KI auf Basis von Vertex AI und Gemini beantwortet. Die Chat-App verwendet die Google Workspace Events API und Pub/Sub, um in Chatbereichen gepostete Fragen zu erkennen und in Echtzeit zu beantworten, auch 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 frei. Wenn keine Antwort gefunden wird, wird gesagt, dass keine Antwort möglich ist. Bei jeder Antwort können Nutzer auf eine Zubehör-Aktionsschaltfläche klicken, um den Administrator des Gruppenbereichs @erwähnen und um eine Antwort zu bitten. Mithilfe von Gemini-KI passt sich die Wissensdatenbank der Google Chat App an und erweitert sie, während sie kontinuierlich für Unterhaltungen in Gruppenbereichen trainiert wird, denen sie hinzugefügt wird.

So funktioniert die Chat-App im Onboarding- und Supportbereich für Mitarbeiter:

  • Erwähnen Sie die App für den KI-Wissensassistenten, um sie einem Gruppenbereich hinzuzufügen.
    Abbildung 1. Charlie fügt die Chat-App des KI-Wissensassistenten einem Chatbereich hinzu.
  • Dana stellt eine Frage.
    Abbildung 2: Dana fragt, ob das Unternehmen Schulungen für Vorträge anbietet.
  • Der KI-Wissensassistent in Chat beantwortet die Frage.
    Abbildung 3: Die Chat-App des KI-Wissensassistenten fordert Vertex AI mit Gemini auf, Danas Frage basierend auf dem Unterhaltungsverlauf des Chatbereichs zu beantworten und die Antwort dann zu teilen.

Voraussetzungen

Zielsetzungen

  • Erstellen Sie eine Chat-App, die generative KI nutzt, um Fragen basierend auf dem Wissen zu beantworten, das in Unterhaltungen in Chatbereichen geteilt wird.
  • Mit generativer KI:
    • Erkennen und beantworten Sie die Fragen Ihrer Mitarbeitenden.
    • Lernen Sie kontinuierlich aus laufenden Unterhaltungen in einem Chatbereich.
  • Nachrichten in einem Chatbereich in Echtzeit abhören und beantworten, auch wenn die Chat-App nicht direkt Nachrichten gesendet hat.
  • Nachrichten durch Schreiben in und Lesen aus einer Firestore-Datenbank beibehalten.
  • Erleichtern Sie die Zusammenarbeit in einem Chatbereich, indem Sie die Administratoren des Gruppenbereichs erwähnen, wenn keine Antwort auf eine Frage gefunden wird.

Architektur

Das folgende Diagramm zeigt die Architektur der Google Workspace- und Google Cloud-Ressourcen, die von der Chat-App des KI-Wissensassistenten verwendet werden.

Architekturdiagramm für die Chat-App des KI-Wissensassistenten

Die Chat-App des KI-Wissensassistenten funktioniert so:

  • Ein Nutzer fügt die Chat-App des KI-Wissensassistenten einem Chatbereich hinzu:

    1. Die Chat-App fordert den Nutzer, der sie dem Chatbereich hinzugefügt hat, zur Konfiguration der Authentifizierung und Autorisierung auf.

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

    3. Die Chat-App ruft die Methode subscriptions.create in der Google Workspace Events API auf, um auf Ereignisse wie Nachrichten im Gruppenbereich zu warten. 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 im Chatbereich postet eine Nachricht:

    1. Die Chat-App empfängt die Nachricht in Echtzeit vom 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 mit Gemini an Vertex AI:

      1. Der Prompt weist Vertex AI mit Gemini an, zu prüfen, ob die Nachricht eine Frage enthält. In diesem Fall beantwortet Gemini die Frage anhand des in Firestore gespeicherten Nachrichtenverlaufs des Chatbereichs und die Google Chat App sendet die Nachricht dann an den Chatbereich. Falls nicht, antworte nicht.

      2. Wenn Vertex AI mit Gemini die Frage beantwortet, sendet die Chat-App die Antwort durch Aufrufen der Methode spaces.messages.create in der Chat API mithilfe der Anwendungsauthentifizierung.

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

        Nachrichten enthalten immer eine zusätzliche Aktionsschaltfläche, auf die Nutzer klicken können. Dadurch wird in der Chat-App ein Administrator des Gruppenbereichs @erwähnt, der ihn um eine Antwort bittet.

  • Die Chat-App erhält von der Google Workspace Events API eine Lebenszyklusbenachrichtigung darüber, dass das Chatbereichsabo bald abläuft:

    1. Die Chat-App sendet eine Anfrage zur Verlängerung des Abos. Dazu ruft sie in der Google Workspace Events API die Methode subscriptions.patch auf.
  • Die Chat-App wird aus einem Chatbereich entfernt:

    1. Die Chat-App löscht das Abo. Dazu wird die Methode subscriptions.delete in der Google Workspace Events API aufgerufen.

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

Produkte ansehen, die von der Chat-App des KI-Wissensassistenten verwendet werden

Die Chat-App des KI-Wissensassistenten verwendet die folgenden Google Workspace- und Google Cloud-Produkte:

  • Vertex AI API mit Gemini: Eine auf generativer KI basierende Plattform auf Basis von Gemini. Der KI-Wissensassistent für Chat verwendet die Vertex AI API mit Gemini, um Fragen von Mitarbeitern 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 des KI-Wissensassistenten nutzt die Chat API für Folgendes:
    • Von Google Chat gesendete Interaktionsereignisse empfangen und darauf reagieren.
    • In einem Gruppenbereich gesendete Nachrichten auflisten.
    • Sie können in einem Gruppenbereich Antworten auf Nutzerfragen posten.
    • Konfiguriere Attribute wie Name und Avatar-Bild, die festlegen, wie sie in Google Chat angezeigt werden.
  • Google Workspace Events API: Mit dieser API können Sie Ereignisse abonnieren und Änderungsbenachrichtigungen für alle Google Workspace-Anwendungen verwalten. Die Chat-App des KI-Wissensassistenten nutzt die Google Workspace Events API, um auf Nachrichten zu warten, die in einem Chatbereich gepostet wurden. So kann sie Fragen erkennen und beantworten, auch wenn sie nicht erwähnt werden.
  • Firestore: Eine serverlose Dokumentendatenbank. Der KI-Wissensassistent in Chat verwendet Firestore, um Daten zu Nachrichten zu speichern, die in einem Chatbereich gesendet wurden.
  • Pub/Sub: Pub/Sub ist ein asynchroner und skalierbarer Messaging-Dienst, der Dienste, die Nachrichten erzeugen, von Diensten entkoppelt, die diese Nachrichten verarbeiten. Die Chat-App des KI-Wissensassistenten nutzt Pub/Sub, um Aboereignisse aus Chatbereichen zu empfangen.
  • Eventarc: Mit Eventarc können Sie ereignisgesteuerte Architekturen erstellen, ohne die vorhandene Infrastruktur implementieren, anpassen oder verwalten zu müssen. Die Chat-App des KI-Wissensassistenten verwendet Eventarc, um Ereignisse von Pub/Sub an einen Chatbereich und an die Cloud Functions-Funktion weiterzuleiten, die die Aboereignisse empfängt und verarbeitet.
  • Cloud Functions: Ein einfacher serverloser Computing-Dienst, mit dem Sie zweckgebundene, eigenständige Funktionen erstellen können, die auf Chat-Interaktionen und Aboereignisse reagieren können, ohne einen Server oder eine Laufzeitumgebung verwalten zu müssen. Die Chat-App des KI-Wissensassistenten verwendet zwei Cloud Functions-Funktionen:
    • app: Hosten Sie den HTTP-Endpunkt, an den Chat Interaktionsereignisse sendet, und stellen Sie ihn als Computing-Plattform zur Ausführung von Logik bereit, die diese Ereignisse verarbeitet und darauf reagiert.
    • eventsApp: Empfängt und verarbeitet Chatbereich-Ereignisse wie Nachrichten aus einem Pub/Sub-Abo.
    Cloud Functions verwendet die folgenden Google Cloud-Produkte, um Rechenressourcen zu erstellen und zu hosten:
    • Cloud Build: Eine vollständig verwaltete Plattform für Continuous Integration, Continuous Delivery und Continuous Deployment, die automatisierte Builds ausführt.
    • 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. Öffnen Sie in der Google Cloud Console das Dreistrich-Menü > IAM und Verwaltung > Projekt erstellen.

    Zur Seite „Projekt erstellen“

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

    Optional: Klicken Sie zum Bearbeiten der Projekt-ID auf Bearbeiten. Die Projekt-ID kann nach dem Erstellen des Projekts nicht mehr geändert werden. Wählen Sie daher eine ID aus, die Ihren Anforderungen während der gesamten Lebensdauer des Projekts entspricht.

  3. Klicken Sie im Feld Standort auf Durchsuchen, um sich potenzielle Standorte für Ihr Projekt anzeigen zu lassen. Klicken Sie danach auf Auswählen.
  4. Klicken Sie auf Erstellen. In der Google Cloud Console wird die Dashboard-Seite 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 zu verwenden, auf dem die gcloud CLI bereits eingerichtet ist.
    Cloud Shell aktivieren
  • Lokale Shell: Um eine lokale Entwicklungsumgebung zu verwenden, installieren und initialize Sie die gcloud CLI.
    Verwenden Sie zum Erstellen eines Cloud-Projekts den Befehl „gcloud projects create“:
    gcloud projects create PROJECT_ID
    Ersetzen Sie PROJECT_ID, indem Sie die ID des Projekts festlegen, das Sie erstellen möchten.

Abrechnung für das Cloud-Projekt aktivieren

Google Cloud Console

  1. Gehen Sie in der Google Cloud Console zu Abrechnung. Klicken Sie auf 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-Rechnungskonto aus.
  4. Klicken Sie auf Konto festlegen.

gcloud-CLI

  1. Führen Sie folgenden Befehl aus, um die verfügbaren 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 des Cloud-Projekts, 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. Prüfen Sie, ob die APIs im richtigen Cloud-Projekt aktiviert sind, und klicken Sie dann auf Weiter.

  3. Aktivieren Sie die richtigen APIs 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, sodass Sie Platzhalterinformationen verwenden können. Bevor Sie die Google Chat App extern veröffentlichen, ersetzen Sie die Platzhalterinformationen für den Zustimmungsbildschirm durch echte Informationen.

  1. Öffnen Sie in der Google Cloud Console das Dreistrich-Menü > APIs und Dienste > OAuth-Zustimmungsbildschirm.

    Zum OAuth-Zustimmungsbildschirm

  2. Wählen Sie unter Nutzertyp die Option Intern aus und klicken Sie dann auf Erstellen.

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

  4. Wählen Sie unter Nutzersupport-E-Mail Ihre E-Mail-Adresse oder eine entsprechende Google-Gruppe aus.

  5. Geben Sie unter Kontaktdaten des Entwicklers Ihre E-Mail-Adresse ein.

  6. Klicken Sie auf Speichern und fortfahren.

  7. Klicken Sie auf Bereiche hinzufügen oder entfernen. Für jede API, die Sie in Ihrem Cloud-Projekt aktiviert haben, wird ein Feld mit einer Liste der Bereiche angezeigt.

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

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

  10. Klicken Sie auf Aktualisieren.

  11. Klicken Sie auf Speichern und fortfahren.

  12. Sehen Sie sich die Zusammenfassung der App-Registrierung an und klicken Sie dann auf Zurück zum Dashboard.

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 in das 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 unter URIs 1 Folgendes ein:

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

    Ersetzen Sie Folgendes:

    • REGION: Region der Cloud Functions-Funktion, z. B. us-central1 Wenn Sie später die beiden Cloud Functions-Funktionen erstellen, müssen Sie deren 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. Speichere die heruntergeladene Datei als client_secrets.json. Wenn Sie später die beiden Cloud Functions-Funktionen erstellen, fügen Sie die Datei client_secrets.json in jede Bereitstellung ein.

  10. Klicken Sie auf OK.

Pub/Sub-Thema erstellen

Das Pub/Sub-Thema arbeitet 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. Öffnen Sie in der Google Cloud Console das Menü > Pub/Sub.

    Zu Pub/Sub

  2. Klicken Sie auf Thema erstellen.

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

  4. Hebe die Auswahl von Standardabo hinzufügen auf.

  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 zusammenarbeiten, müssen Sie dem IAM-Nutzer von Chat die Berechtigung zum Posten im 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 den Wert chat-api-push@system.gserviceaccount.com ein.

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

    4. Klicke 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, Beiträge im 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

Die Firestore-Datenbank bleibt bestehen und ruft Daten aus Chatbereichen wie Nachrichten ab. Sie definieren das Datenmodell nicht, das implizit im Beispielcode durch die Dateien model/message.js und services/firestore-service.js festgelegt wird.

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

Das folgende Diagramm bietet einen Überblick über das Datenmodell der Chat-App des KI-Wissensassistenten:

Datenmodell der Firestore-Datenbank

Das Stammverzeichnis 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 mit der Chat-App des KI-Wissensassistenten.

Felder
Document IDString
Eindeutige ID eines bestimmten Gruppenbereichs. Ein Teil des Ressourcennamens des Gruppenbereichs in der Chat API.
messagesSubcollection of Documents (messages)
Im Chatbereich gesendete Nachrichten. Entspricht dem 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 wurden.

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
Text der Nachricht.
timeString (Timestamp format)
Der Zeitpunkt, zu dem die Nachricht erstellt wurde.

users

Nutzer, die die Chat-App des KI-Wissensassistenten einem Chatbereich hinzugefügt haben.

Felder
Document IDString
Eindeutige ID eines bestimmten Nutzers.
accessTokenString
Das Zugriffstoken, das während der OAuth 2.0-Nutzerautorisierung zum Aufrufen von Google Workspace APIs gewährt wurde.
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 Create database (Datenbank erstellen).

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

  4. Klicken Sie auf Weiter.

  5. Konfigurieren Sie die Datenbank:

    1. Behalten Sie unter Datenbank benennen als Datenbank-ID den Wert (default) bei.

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

    3. Geben Sie unter Region eine Region für die Datenbank an, z. B. us-central1. Wählen Sie für eine optimale Leistung denselben oder einen Standort in der Nähe wie die Cloud Functions-Funktionen der Chat-App aus.

  6. Klicken Sie auf Create database (Datenbank erstellen).

gcloud-CLI

  • 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. Wählen Sie für eine optimale Leistung denselben oder einen Standort in der Nähe wie die Cloud Functions-Funktionen der Chat-App aus.

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. Chat-App auf der Google Chat API-Konfigurationsseite erstellen und bereitstellen

Cloud Functions-Funktionen erstellen und bereitstellen

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

  • app: Hostt den Code der Chat-App und führt ihn aus, der auf Ereignisse reagiert, die von Google Chat als HTTP-Anfragen empfangen werden.
  • eventsApp: Empfängt und verarbeitet Ereignisse im Chatbereich wie Nachrichten von Pub/Sub.

Gemeinsam bilden diese Cloud Functions-Funktionen die Anwendungslogik der Chat-App des KI-Wissensassistenten.

Bevor Sie Cloud Functions-Funktionen erstellen, sollten Sie sich optional den auf GitHub gehosteten Beispielcode ansehen und sich damit vertraut machen.

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. Rufen Sie im extrahierten Ordner das Verzeichnis google-chat-samples-main/node/ai-knowledge-assistant auf.

  4. Fügen Sie im Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei client_secrets.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.

    Das Stammverzeichnis der 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
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Rufen Sie in der Google Cloud Console das Dreistrich-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 auf der Seite Funktion erstellen Ihre Funktion ein:

    1. Wählen Sie unter Umgebung die Option 2. Generation aus.
    2. Geben Sie unter Funktionsname 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 beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung festgelegt 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-Upload aus.

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

    1. Klicke auf Entdecken.
    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 extrahiert diese. Cloud Functions kopiert dann die Komponentendateien in die Cloud Functions-Funktion.

  13. Laden Sie in der ZIP-Datei die ZIP-Datei hoch, die Sie von GitHub heruntergeladen, extrahiert und wieder komprimiert haben:

    1. Klicke auf Entdecken.
    2. Gehen Sie zur ZIP-Datei und wählen Sie sie 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: einer für den Build und einer für den Dienst. Wenn beide Fortschrittsanzeigen verschwinden und durch ein Häkchen ersetzt werden, ist die Funktion bereitgestellt und bereit.

  15. Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:

    1. Klicken Sie auf der Seite Cloud Functions-Details auf Bearbeiten.
    2. Klicken Sie auf Weiter.
    3. Wählen Sie unter Quellcode den Inline-Editor aus.
    4. Öffnen und bearbeiten Sie die Datei env.js im Inline-Editor:
      1. Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
      2. Legen Sie den Wert von location auf die Region der Cloud Functions-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 Chat-App für KI-Wissensassistenten enthält:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. Fügen Sie im Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei client_secrets.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 den Wert von location auf die Region der Cloud Functions-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 Functions-Funktion, die mit der in der Datei env.js festgelegten Region übereinstimmt, z. B. us-central1.

eventsApp erstellen und bereitstellen

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console das Dreistrich-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 auf der Seite Funktion erstellen Ihre Funktion ein:

    1. Wählen Sie unter Umgebung die Option 2. Generation aus.
    2. Geben Sie unter Funktionsname 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 beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung festgelegt 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 im Format projects/PROJECT/topics/events-api aus, wobei PROJECT Ihre Cloud-Projekt-ID ist.
    6. Wenn eine Nachricht angezeigt wird, 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 beim Erstellen der Cloud Functions-Funktion app hochgeladen 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: einer für den Build, einer für den Dienst und einer für den Trigger. Wenn alle drei Fortschrittsanzeigen ausgeblendet und durch ein Häkchen ersetzt sind, ist die Funktion bereitgestellt und einsatzbereit.

  12. Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:

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

gcloud-CLI

  1. Wechseln Sie in der gcloud CLI zu dem Verzeichnis, das den Code für diese KI-Wissensassistent-Chatanwendung enthält, die Sie zuvor aus GitHub geklont haben:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. Fügen Sie im Verzeichnis google-chat-samples/node/ai-knowledge-assistant die Datei client_secrets.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 den Wert von location auf die Region der Cloud Functions-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 Functions-Funktion, die mit der in der Datei env.js festgelegten Region übereinstimmt, z. B. us-central1.

Trigger-URL der Cloud Functions-Funktion app kopieren

Sie fügen die Trigger-URL der Cloud Functions-Funktion app 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 Dreistrich-Menü > Cloud Functions auf.

    Zu Cloud Functions

  2. Klicken Sie in der Liste der Cloud Functions-Funktionen in der Spalte Name 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 das Attribut 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. Dazu gehören der Name der Chat-App und die Trigger-URL der Cloud Functions-Funktion der Chat-App, an die Chat-Interaktionsereignisse gesendet werden.

  1. Klicken Sie in der Google Cloud Console auf 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 https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg ein.

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

  5. Stellen Sie die Ein/Aus-Schaltfläche Interaktive Funktionen aktivieren auf „Ein“.

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

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

  8. Fügen Sie unter App-URL die Trigger-URL aus der Cloud Functions-Funktion app im Format https://REGION-PROJECT_ID.cloudfunctions.net/app ein, wobei REGION die Region der Cloud Functions-Funktion ist, 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 für bestimmte Personen und Gruppen in Ihrer Workspace-Domain verfügbar machen aus und geben Sie Ihre E-Mail-Adresse ein.

  10. Wählen Sie optional unter Logs die Option Fehler in Logging protokollieren aus.

  11. Klicke auf Speichern. Eine Meldung, dass die Konfiguration gespeichert wurde, zeigt an, dass die Chat-App zum Testen bereit ist.

Chat App testen

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

So kannst du den KI-Wissensassistent in der Chat-App testen:

  • Fügen Sie die Chat-App des KI-Wissensassistenten 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 verwendet werden sollen. Nachrichten können durch einen Prompt wie Answer 20 common onboarding questions employees ask their teams. aus Gemini stammen. Du kannst auch ein paar Absätze aus dem Leitfaden Mit Chat entwickeln einfügen und dann Fragen dazu stellen.

Erstellen Sie für diese Anleitung einen Chatbereich und fügen Sie einige Absätze aus der Übersicht zum Entwickeln mit Chat ein.

  1. Öffnen Sie Google Chat.

    Zu Google Chat

  2. So erstellen Sie einen Chatbereich:

    1. Klicken Sie auf Neuer Chat > Gruppenbereich erstellen.

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

    3. Wählen Sie unter Wofür ist dieser Gruppenbereich gedacht? die Option Zusammenarbeit aus.

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

    5. Klicken Sie auf Erstellen.

  3. Nachrichten hinzufügen, die als Datenquelle verwendet werden sollen:

    1. Rufen Sie in einem Webbrowser die Übersicht zum Entwickeln mit Chat auf.

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

  4. Fügen Sie die Chat-App des KI-Wissensassistenten hinzu:

    1. Geben Sie in der Eingabezeile @AI knowledge assistant ein, wählen Sie im angezeigten Vorschlagsmenü die Chat-App „AI Knowledge Assistant“ aus und drücken Sie enter.

    2. Sie werden in einer Meldung gefragt, ob Sie den KI-Wissensassistenten in der 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 Gruppenbereich 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, in dem Sie aufgefordert werden, ein Google-Konto auszuwählen. Wählen Sie das Konto aus, mit dem Sie testen möchten.
      3. Prüfen Sie die Berechtigungen, die der KI-Wissensassistent in der Chat-App anfordert. 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. Der KI-Wissensassistent in der Chat App antwortet.

    3. Wenn die Antwort nicht richtig oder unzureichend ist, klicken Sie auf Hilfe, um den Unterhaltungsverlauf der KI zu verbessern. Die Chat-App des KI-Wissensassistenten erwähnt einen Administrator des Gruppenbereichs und bittet ihn, die Frage zu beantworten. Beim nächsten Mal weiß der KI-Wissensassistent die Antwort.

Überlegungen, alternative Architekturoptionen und nächste Schritte

In diesem Abschnitt werden weitere Möglichkeiten der Chat-App für KI-Wissensassistent beschrieben.

Firestore, Cloud Storage oder das Aufrufen von List Messages in der Chat API

In dieser Anleitung wird empfohlen, Daten von Chatbereich wie Nachrichten in einer Firestore-Datenbank zu speichern, da dies die Leistung verbessert, als wenn die Methode list für die Ressource Message mit der Chat API jedes Mal aufgerufen wird, wenn die Chat-App eine Frage beantwortet. Außerdem kann das wiederholte Aufrufen von list messages dazu führen, dass die Chat-App die API-Kontingentlimits erreicht.

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

Cloud Storage ist eine Alternative zu Firestore. Jeder Bereich, in dem die Chat-App des KI-Assistenten aktiv ist, erhält ein eigenes Objekt. Jedes Objekt ist eine Textdatei, die alle Nachrichten im Gruppenbereich enthält. Der Vorteil dieses Ansatzes besteht darin, dass der vollständige Inhalt der Textdatei mit Gemini auf einmal in Vertex AI eingespeist werden kann. Der Nachteil ist jedoch, dass das Aktualisieren des Unterhaltungsverlaufs mehr Arbeit erfordert, da Sie kein Objekt in Cloud Storage anhängen können, sondern nur ersetzen. Dieser Ansatz ist nicht sinnvoll, wenn Sie den Nachrichtenverlauf regelmäßig aktualisieren. Er wäre jedoch eine gute Wahl, wenn Sie den Nachrichtenverlauf regelmäßig im Batch aktualisieren, beispielsweise einmal pro Woche.

Fehlerbehebung

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

Obwohl eine Fehlermeldung möglicherweise nicht in der Chat-UI angezeigt wird, sind beschreibende Fehlermeldungen und Protokolldaten verfügbar, um Sie beim Beheben von Fehlern zu unterstützen, wenn das Fehler-Logging für Chat-Apps aktiviert ist. Informationen zum Ansehen, 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, sollten Sie das Cloud-Projekt löschen.

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

    Zu Resource Manager

  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.