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 teilt eine davon. Wenn keine Antwort gefunden wird, wird angezeigt, dass keine Antwort möglich ist. Nutzer können bei jeder Antwort auf eine zusätzliche Aktionsschaltfläche klicken, um einen Gruppenbereichsadministrator zu @erwähnen und um eine Antwort zu bitten. Durch die Verwendung von Gemini-KI passt die Google Chat App ihre Wissensdatenbank an und erweitert sie, da sie kontinuierlich an Unterhaltungen in Gruppenbereichen trainiert wird, zu denen sie hinzugefügt wird.
So funktioniert die Chat-App in einem Onboarding- und Supportbereich für Mitarbeiter:
-
Abbildung 1 Charlie fügt der Chat-App für den KI-Wissensassistenten einen Chatbereich hinzu. -
Abbildung 2: Dana fragt, ob das Unternehmen Schulungen zum öffentlichen Sprechen anbietet. -
Abbildung 3 Die KI-Chat-App mit Wissensassistenten bittet Vertex AI mit Gemini, Danas Frage anhand des Unterhaltungsverlaufs des Chatbereichs zu beantworten, und gibt dann die Antwort weiter.
Vorbereitung
Ein Google Workspace-Konto für Unternehmen oder Organisationen mit Zugriff auf Google Chat.
Zugriff auf Google Cloud-Dienste für Folgendes:
- Google Cloud-Projekt erstellen.
- Verknüpfen Sie ein Google Cloud-Rechnungskonto mit dem Cloud-Projekt. Ob Sie Zugriff haben, erfahren Sie unter Berechtigungen zum Aktivieren der Abrechnung.
- Verwenden Sie nicht authentifizierte Aufrufe von Google Cloud-Funktionen. Sie können prüfen, ob Ihre Google Cloud-Organisation die eingeschränkte Domainfreigabe verwendet.
Wenden Sie sich bei Bedarf an Ihren Google Cloud-Administrator, um Zugriff oder Berechtigung zu erhalten.
Wenn Sie die Google Cloud CLI verwenden, eine Node.js-Entwicklungsumgebung, die für die Verwendung mit der gcloud CLI konfiguriert ist. Weitere Informationen finden Sie unter Node.js-Entwicklungsumgebung einrichten.
Lernziele
- Erstellen Sie eine Chat-App, die mithilfe von generativer KI Fragen beantwortet, die auf dem in Chatbereichen geteilten Wissen basieren.
- Mit generativer KI:
- Mitarbeiterfragen erkennen und beantworten
- Sie können kontinuierlich aus laufenden Unterhaltungen in einem Chatbereich lernen.
- Sie können in Echtzeit auf Nachrichten in einem Chatbereich reagieren, auch wenn die Chat-App nicht direkt kontaktiert wird.
- Nachrichten dauerhaft speichern, indem Sie Daten in eine Firestore-Datenbank schreiben und daraus lesen.
- Sie können die Zusammenarbeit in einem Chatbereich erleichtern, 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 vom KI-Wissensassistenten in der Chat-App verwendet werden.
So funktioniert die Chat-App mit KI-Wissensassistent:
Ein Nutzer fügt der Chat-App für den KI-Wissensassistenten einen Chatbereich hinzu:
In der Chat-App wird der Nutzer, der die App dem Chat-Gruppenbereich hinzugefügt hat, aufgefordert, die Authentifizierung und Autorisierung zu konfigurieren.
Die Chat-App ruft die Nachrichten des Gruppenbereichs ab, indem sie die Methode
spaces.messages.list
in der Chat API aufruft, und speichert die abgerufenen Nachrichten dann in einer Firestore-Datenbank.Die Chat-App ruft die Methode
subscriptions.create
in der Google Workspace Events API auf, um nach Ereignissen wie Nachrichten im Gruppenbereich zu suchen. Der Benachrichtigungsendpunkt des Abos ist ein Pub/Sub-Thema, das das Ereignis über Eventarc an die Chat-App weiterleitet.Die Chat-App postet eine Einführungsnachricht im Gruppenbereich.
Ein Nutzer im Chatbereich postet eine Nachricht:
Die Chat-App empfängt die Nachricht in Echtzeit vom Pub/Sub-Thema.
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.
Die Chat-App sendet die Nachricht über Gemini an Vertex AI:
Der Prompt weist Vertex AI mit Gemini an, zu prüfen, ob die Nachricht eine Frage enthält. Ist das der Fall, beantwortet Gemini die Frage anhand des Nachrichtenverlaufs des Chatbereichs, der in Firestore gespeichert ist. Die Google Chat App sendet die Nachricht dann an den Chatbereich. Andernfalls antworten Sie nicht.
Wenn Vertex AI mit Gemini die Frage beantwortet, postet die Chat-App die Antwort, indem sie die
spaces.messages.create
-Methode in der Chat API mithilfe der App-Authentifizierung aufruft.Wenn Vertex AI mit Gemini die Frage nicht beantworten kann, wird in der Chat-App eine Nachricht gepostet, dass im Chatbereich keine Antwort auf diese Frage gefunden werden konnte.
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, um ihn um eine Antwort zu bitten.
Die Chat-App erhält eine Lebenszykluseinbenachrichtigung von der Google Workspace Events API, dass das Abo für den Chatbereich bald abläuft:
- Die Chat-App sendet eine Anfrage zur Verlängerung des Abos, indem sie die Methode
subscriptions.patch
in der Google Workspace Events API aufruft.
- Die Chat-App sendet eine Anfrage zur Verlängerung des Abos, indem sie die Methode
Die Chat-App wird aus einem Chat-Gruppenbereich entfernt:
Die Chat-App löscht das Abo, indem sie die Methode
subscriptions.delete
in der Google Workspace Events API aufruft.Die Chat App löscht die Daten des Chatbereichs aus Firestore.
Von der Chat-App des KI-Wissensassistenten verwendeten Produkte ansehen
Für die Chat-App des KI-Wissensassistenten werden die folgenden Google Workspace- und Google Cloud-Produkte verwendet:
- Vertex AI API mit Gemini: Eine generative KI-Plattform, die auf Gemini basiert. Der KI-Wissensassistent der Chat-App verwendet die Vertex AI API mit Gemini, um Fragen von Mitarbeitern zu erkennen, zu verstehen und zu beantworten.
-
Chat API: API zum Entwickeln von Google Chat-Apps, die Chat-Interaktionsereignisse wie Nachrichten empfangen und darauf reagieren. Die Chat-App des KI-Wissensassistenten verwendet die Chat API für Folgendes:
- Von Google Chat gesendete Interaktionsereignisse empfangen und darauf reagieren
- Liste der in einem Gruppenbereich gesendeten Nachrichten.
- Antworten auf Fragen von Nutzern in einem Gruppenbereich posten
- Konfigurieren Sie Attribute, die festlegen, wie das Profil in Google 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 mit KI-Wissensassistent verwendet die Google Workspace Events API, um auf in einem Chatbereich gepostete Nachrichten zu hören, damit sie Fragen erkennen und beantworten kann, auch wenn sie nicht erwähnt wird.
- Firestore: Eine serverlose Dokumentendatenbank. Der KI-Wissensassistent der Chat-App verwendet Firestore, um Daten zu Nachrichten zu speichern, die in einem Chatbereich gesendet wurden.
- 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 des KI-Wissensassistenten verwendet Pub/Sub, um Aboereignisse aus Chatbereichen zu empfangen.
- Eventarc: Mit Eventarc können Sie ereignisgesteuerte Architekturen erstellen, ohne die zugrunde liegende Infrastruktur implementieren, anpassen oder verwalten zu müssen. Die Chat-App mit KI-gestütztem Wissensassistenten verwendet Eventarc, um Ereignisse von Pub/Sub an einen Chatbereich und die Cloud Function 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-Interaktions- und Aboereignisse reagieren, ohne dass Sie eine Server- oder Laufzeitumgebung verwalten müssen. Die Chat-App für den KI-Wissensassistenten verwendet zwei Cloud Functions mit den Namen:
-
app
: Hostet den HTTP-Endpunkt, an den Chat-Interaktionsereignisse gesendet werden, und dient als Compute-Plattform zum Ausführen der Logik, die diese Ereignisse verarbeitet und darauf reagiert. -
eventsApp
: Hier werden Chatbereichsereignisse wie Nachrichten aus einem Pub/Sub-Abo empfangen und verarbeitet.
- Cloud Build: Vollständig verwaltete Plattform für Continuous Integration, Delivery und Deployment, auf der automatisierte Builds ausgeführt werden.
- Cloud Run: 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
- Klicken Sie in der Google Cloud Console auf das Dreipunkt-Menü > IAM und Verwaltung > Projekt erstellen.
-
Geben Sie im Feld Projektname einen aussagekräftigen Namen für Ihr Projekt ein.
Optional: Klicken Sie auf Bearbeiten, um die Projekt-ID zu 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.
- Klicken Sie im Feld Standort auf Durchsuchen, um mögliche Standorte für Ihr Projekt zu sehen. Klicken Sie danach auf Auswählen.
- Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite „Dashboard“ geöffnet und Ihr Projekt wird innerhalb weniger Minuten erstellt.
gcloud-CLI
Rufen Sie in einer der folgenden Entwicklungsumgebungen die Google Cloud CLI (gcloud
) auf:
-
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 den Befehlgcloud projects create
, um ein Cloud-Projekt zu erstellen: Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie erstellen möchten.gcloud projects create PROJECT_ID
Abrechnung für das Cloud-Projekt aktivieren
Google Cloud Console
- Klicken Sie in der Google Cloud Console auf Abrechnung. Klicken Sie auf das Dreistrich-Menü > Abrechnung > Meine Projekte.
- Wählen Sie unter Organisation auswählen die Organisation aus, die mit Ihrem Google Cloud-Projekt verknüpft ist.
- Öffnen Sie in der Projektzeile das Menü Aktionen ( ), klicken Sie auf Abrechnung ändern und wählen Sie das Cloud Billing-Konto aus.
- Klicken Sie auf Konto festlegen.
gcloud-CLI
- Führen Sie folgenden Befehl aus, um eine Liste der verfügbaren Rechnungskonten aufzurufen:
gcloud billing accounts list
- So verknüpfen Sie ein Abrechnungskonto mit einem Google Cloud-Projekt:
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
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.
Prüfen Sie, ob Sie die APIs im richtigen Cloud-Projekt aktivieren, und klicken Sie dann auf Weiter.
Prüfen Sie, ob Sie die richtigen APIs aktivieren, und klicken Sie dann auf Aktivieren.
gcloud-CLI
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.
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, ersetzen Sie die Platzhalterinformationen auf dem Einwilligungsbildschirm durch echte Informationen.
OAuth-Zustimmungsbildschirm konfigurieren, Bereiche angeben und Anwendung registrieren
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > > Branding.
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:
- Geben Sie unter App-Informationen in das Feld App-Name den Code
AI knowledge assistant
ein. - Wählen Sie unter E-Mail-Adresse für den Nutzersupport Ihre E-Mail-Adresse oder eine geeignete Google-Gruppe aus.
- Klicken Sie auf Weiter.
- Wählen Sie unter Zielgruppe die Option Intern aus. Wenn Sie Intern nicht auswählen können, wählen Sie Extern aus.
- Klicken Sie auf Weiter.
- Geben Sie unter Kontaktdaten eine E-Mail-Adresse ein, unter der Sie über Änderungen an Ihrem Projekt informiert werden können.
- Klicken Sie auf Weiter.
- Lesen Sie unter Fertigstellen die Nutzerdatenrichtlinie für Google API-Dienste und wählen Sie dann Ich akzeptiere die Richtlinie zu Nutzerdaten für Google API-Dienste aus, wenn Sie zustimmen.
- Klicken Sie auf Weiter.
- Klicken Sie auf Erstellen.
- Wenn Sie als Nutzertyp Extern ausgewählt haben, fügen Sie Testnutzer hinzu:
- Klicken Sie auf Zielgruppe.
- Klicken Sie unter Testnutzer auf Nutzer hinzufügen.
- Geben Sie Ihre E-Mail-Adresse und die E-Mail-Adressen aller anderen autorisierten Testnutzer ein und klicken Sie auf Speichern.
- Geben Sie unter App-Informationen in das Feld App-Name den Code
Klicken Sie auf Datenzugriff > Umfang hinzufügen oder entfernen. Ein Bereich mit einer Liste der Bereiche für jede API wird angezeigt, die Sie in Ihrem Google Cloud-Projekt aktiviert haben.
Fügen Sie unter Bereiche manuell hinzufügen den folgenden Bereich ein:
https://www.googleapis.com/auth/chat.messages
Klicken Sie auf Zur Tabelle hinzufügen.
Klicken Sie auf Aktualisieren.
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
Gehen Sie in der Google Cloud Console zu Menü > APIs und Dienste > Anmeldedaten.
Klicken Sie auf Anmeldedaten erstellen > OAuth-Client-ID.
Klicken Sie auf Anwendungstyp > Webanwendung.
Geben Sie im Feld Name einen Namen für die Anmeldedaten ein. Dieser Name wird nur in der Google Cloud Console angezeigt.
Klicken Sie unter Autorisierte Weiterleitungs-URIs auf URI hinzufügen.
Geben Sie unter URIs 1 Folgendes ein:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
Ersetzen Sie Folgendes:
- REGION: Die Region der Cloud-Funktion, z. B.
us-central1
. Wenn Sie später die beiden Cloud Functions erstellen, müssen Sie deren Region auf diesen Wert festlegen. - PROJECT_ID: Die Projekt-ID des von Ihnen erstellten Cloud-Projekts.
- REGION: Die Region der Cloud-Funktion, z. B.
Klicken Sie auf Erstellen.
Klicken Sie im Fenster OAuth-Client erstellt auf JSON herunterladen.
Speichern Sie die heruntergeladene Datei als
client_secrets.json
. Wenn Sie später die beiden Cloud Functions erstellen, fügen Sie die Dateiclient_secrets.json
in jedes Deployment ein.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
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Pub/Sub.
Klicken Sie auf Thema erstellen.
Geben Sie unter Themen-ID
events-api
ein.Entfernen Sie das Häkchen bei Standardabo hinzufügen.
Wählen Sie unter Verschlüsselung die Option Von Google verwalteter Verschlüsselungsschlüssel aus.
Klicken Sie auf Erstellen. Das Pub/Sub-Thema wird angezeigt.
Damit dieses Pub/Sub-Thema und die Google Workspace Events API zusammenarbeiten, müssen Sie dem IAM-Nutzer von Google Chat die Berechtigung zum Posten im Pub/Sub-Thema erteilen:
Klicken Sie im Bereich events-api unter PERMISSIONS auf Add Principal (Hauptkonto hinzufügen).
Geben Sie unter Hauptkonten hinzufügen in Neue Hauptkonten
chat-api-push@system.gserviceaccount.com
ein.Wählen Sie unter Rollen zuweisen unter Rolle auswählen die Option Pub/Sub > Pub/Sub-Publisher aus.
Klicken Sie auf Speichern.
gcloud-CLI
Erstellen Sie ein Pub/Sub-Thema mit der Themen-ID
events-api
:gcloud pubsub topics create events-api
Gewähren Sie dem IAM-Nutzer von Google Chat die Berechtigung, 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 speichert und ruft Daten aus Chatbereichen ab, z. B. Nachrichten. Sie müssen das Datenmodell nicht definieren, da es im Beispielcode implizit durch die Dateien model/message.js
und services/firestore-service.js
festgelegt wird.
Die Datenbank der Chat-App für den KI-Wissensassistenten verwendet ein NoSQL-Datenmodell, das auf Firestore-Datenmodell.
Dokumenten basiert, die in Sammlungen organisiert sind. Weitere Informationen finden Sie unterDas folgende Diagramm gibt einen Überblick über das Datenmodell der Chat-App mit KI-Wissensassistent:
Die Wurzel enthält zwei Sammlungen:
spaces
, wobei jedes Dokument einen Chatbereich darstellt, dem die Chat App hinzugefügt wird. Jede Nachricht wird durch ein Dokument in der Untersammlungmessages
dargestellt.users
, wobei jedes Dokument einen Nutzer darstellt, der der Chat-App einen Chatbereich hinzugefügt hat.
Sammlungs-, Dokument- und Felddefinitionen aufrufen
spaces
Ein Chatbereich, der die Chat-App mit KI-Wissensassistenten enthält.
Felder | |
---|---|
Document ID | String Die eindeutige ID eines bestimmten Gruppenbereichs. Ein Teil des Ressourcennamens des Gruppenbereichs in der Chat API. |
messages | Subcollection of Documents ( Nachrichten, die im Chatbereich gesendet wurden. Entspricht dem Document ID eines message in Firebase. |
spaceName | String 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 ID | String Die eindeutige ID einer bestimmten Nachricht. |
name | String Der eindeutige Name einer Nachricht in der Chat API. Entspricht dem Ressourcennamen der Nachricht in der Chat API. |
text | String Der Textkörper der Nachricht. |
time | String (Timestamp format) Die Uhrzeit, zu der die Nachricht erstellt wurde. |
users
Nutzer, die der Chat-App „KI-Wissensassistent“ einen Chatbereich hinzugefügt haben
Felder | |
---|---|
Document ID | String Die eindeutige ID eines bestimmten Nutzers. |
accessToken | String Das während der OAuth 2.0-Nutzerautorisierung gewährte Zugriffstoken, das zum Aufrufen von Google Workspace APIs verwendet wird. |
refreshToken | String Das Aktualisierungstoken, das während der OAuth 2.0-Nutzerautorisierung gewährt wurde. |
So erstellen Sie die Firestore-Datenbank:
Google Cloud Console
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Firestore.
Klicken Sie auf Datenbank erstellen.
Klicken Sie unter Firestore-Modus auswählen auf Nativer Modus.
Klicken Sie auf Weiter.
Konfigurieren Sie die Datenbank:
Lassen Sie unter Datenbank benennen die Datenbank-ID bei
(default)
.Wählen Sie unter Standorttyp die Option Region aus.
Geben Sie unter Region eine Region für Ihre Datenbank an, z. B.
us-central1
. Für eine optimale Leistung sollten Sie denselben Speicherort oder einen Speicherort in der Nähe der Cloud Functions der Chat-App auswählen.
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 Speicherort oder einen Speicherort in der Nähe der Cloud Functions der Chat-App auswählen.
Chat-App erstellen und bereitstellen
Ihr Google Cloud-Projekt ist jetzt erstellt und konfiguriert. Sie können also mit dem Erstellen und Bereitstellen der Chat-App beginnen. In diesem Abschnitt führen Sie die folgenden Schritte aus:
- Zwei Cloud Functions erstellen und bereitstellen Eine für Chatinteraktionsereignisse und eine für Pub/Sub-Ereignisse.
- Erstellen und stellen Sie eine Chat-App auf der Konfigurationsseite der Google Chat API bereit.
Cloud Functions-Funktionen erstellen und bereitstellen
In diesem Abschnitt erstellen und stellen Sie zwei Cloud Functions mit den folgenden Namen bereit:
app
: Hier wird der Code der Chat App gehostet und ausgeführt, der auf Ereignisse reagiert, die von Google Chat als HTTP-Anfragen empfangen werden.eventsApp
: Empfängt und verarbeitet Chatbereichsereignisse wie Nachrichten von Pub/Sub.
Zusammen bilden diese Cloud Functions die Anwendungslogik des KI-Wissensassistenten der Chat-App.
Sie können sich vor dem Erstellen der Cloud-Funktionen optional mit dem auf GitHub gehosteten Beispielcode vertraut machen.
app
erstellen und bereitstellen
Google Cloud Console
Laden Sie den Code als ZIP-Datei von GitHub herunter.
Extrahieren Sie die heruntergeladene ZIP-Datei.
Der extrahierte Ordner enthält das gesamte Google Workspace-Repository mit Beispielen.
Rufen Sie im extrahierten Ordner das Verzeichnis
google-chat-samples-main/node/ai-knowledge-assistant
auf.Fügen Sie im Verzeichnis
google-chat-samples/node/ai-knowledge-assistant
die Dateiclient_secrets.json
hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.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/
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Cloud Functions.
Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.
Klicken Sie auf
Funktion erstellen.Richten Sie die Funktion auf der Seite Funktion erstellen ein:
- Wählen Sie unter Umgebung die Option Cloud Run-Funktion aus.
- Geben Sie unter Funktionsname
app
ein. - 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. - Wählen Sie unter Triggertyp die Option HTTPS aus.
- Wählen Sie unter Authentifizierung die Option Nicht authentifizierte Aufrufe zulassen aus.
- Klicken Sie auf Weiter.
Wählen Sie unter Laufzeit die Option Node.js 20 aus.
Löschen Sie unter Einstiegspunkt den Standardtext und geben Sie
app
ein.Wählen Sie unter Quellcode die Option ZIP-Datei hochladen aus.
Wählen Sie unter Ziel-Bucket einen Bucket aus oder erstellen Sie einen:
- Klicken Sie auf Durchsuchen.
- Wählen Sie einen Bucket aus.
- Klicken Sie auf Auswählen.
Google Cloud lädt die ZIP-Datei in diesen Bucket hoch und extrahiert die Komponentendateien. Cloud Functions kopiert dann die Komponentendateien in die Cloud Function.
Laden Sie unter Zip-Datei die ZIP-Datei hoch, die Sie von GitHub heruntergeladen, extrahiert und neu komprimiert haben:
- Klicken Sie auf Durchsuchen.
- Wählen Sie die ZIP-Datei aus.
- Klicken Sie auf Öffnen.
Klicken Sie auf Bereitstellen.
Die Seite Cloud Functions-Details wird geöffnet. 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 die Funktion bereitgestellt und einsatzbereit.
Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:
- Klicken Sie auf der Seite Cloud Function-Details auf Bearbeiten.
- Klicken Sie auf Weiter.
- Wählen Sie unter Quellcode die Option Inline-Editor aus.
- Öffnen und bearbeiten Sie die Datei
env.js
im Inline-Editor:- Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
- Legen Sie für location die Region der Cloud-Funktion fest, z. B.
us-central1
.
Klicken Sie auf Bereitstellen.
gcloud-CLI
Klonen Sie den Code aus GitHub:
git clone https://github.com/googleworkspace/google-chat-samples.git
Wechseln Sie in das Verzeichnis, das den Code für diese Chat-App mit KI-Wissensassistent enthält:
cd google-chat-samples/node/ai-knowledge-assistant
Fügen Sie im Verzeichnis
google-chat-samples/node/ai-knowledge-assistant
die Dateiclient_secrets.json
hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.Bearbeiten Sie die Datei
env.js
, um Umgebungsvariablen festzulegen:- Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
- Legen Sie für location die Region der Cloud-Funktion fest, z. B.
us-central1
.
Stellen Sie die Cloud Function 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
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Cloud Functions.
Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.
Klicken Sie auf
Funktion erstellen.Richten Sie die Funktion auf der Seite Funktion erstellen ein:
- Wählen Sie unter Umgebung die Option Cloud Run-Funktion aus.
- Geben Sie unter Funktionsname
eventsApp
ein. - 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. - Wählen Sie unter Triggertyp die Option Cloud Pub/Sub aus.
- Wählen Sie unter Cloud Pub/Sub-Thema den Namen des von Ihnen erstellten Pub/Sub-Themas aus. Er hat das Format
projects/PROJECT/topics/events-api
, wobei PROJECT die ID Ihres Cloud-Projekts ist. - Wenn eine Meldung mit
Service account(s) might not have enough permissions to deploy the function with the selected trigger.
beginnt, klicken Sie auf Alle gewähren. - Klicken Sie auf Weiter.
Wählen Sie unter Laufzeit die Option Node.js 20 aus.
Löschen Sie unter Einstiegspunkt den Standardtext und geben Sie
eventsApp
ein.Wählen Sie unter Quellcode die Option Zip aus Cloud Storage aus.
Klicken Sie unter Cloud Storage-Speicherort auf Durchsuchen.
Wählen Sie den Bucket aus, in den Sie die ZIP-Datei hochgeladen haben, als Sie die Cloud Function
app
erstellt haben.Klicken Sie auf die von Ihnen hochgeladene ZIP-Datei.
Klicken Sie auf Auswählen.
Klicken Sie auf Bereitstellen.
Die Seite Cloud Functions-Details wird geöffnet. 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 die Funktion bereitgestellt und einsatzbereit.
Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:
- Klicken Sie auf der Seite Cloud Function-Details auf Bearbeiten.
- Klicken Sie auf Weiter.
- Wählen Sie unter Quellcode die Option Inline-Editor aus.
- Öffnen und bearbeiten Sie die Datei
env.js
im Inline-Editor:- Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
- Legen Sie für location die Region der Cloud-Funktion fest, z. B.
us-central1
.
Klicken Sie auf Bereitstellen.
gcloud-CLI
Wechseln Sie in der gcloud CLI, falls noch nicht geschehen, zum Verzeichnis mit dem Code für diese Chat-App mit KI-Wissensassistent, die Sie zuvor von GitHub geklont haben:
cd google-chat-samples/node/ai-knowledge-assistant
Fügen Sie im Verzeichnis
google-chat-samples/node/ai-knowledge-assistant
die Dateiclient_secrets.json
hinzu, die Sie beim Erstellen von OAuth-Client-ID-Anmeldedaten für die Authentifizierung und Autorisierung heruntergeladen haben.Bearbeiten Sie die Datei
env.js
, um Umgebungsvariablen festzulegen:- Legen Sie den Wert von project auf Ihre Cloud-Projekt-ID fest.
- Legen Sie für location die Region der Cloud-Funktion fest, z. B.
us-central1
.
Stellen Sie die Cloud Function 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
.
Trigger-URL der Cloud Functions-Funktion app
kopieren
Sie fügen die Trigger-URL der app
-Cloud-Funktion im nächsten Abschnitt ein, wenn Sie die Chat-App in der Google Cloud Console konfigurieren.
Google Cloud Console
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Cloud Functions.
Klicken Sie in der Liste der Cloud Functions in der Spalte Name auf
app
.Klickbasierter Trigger
Kopieren Sie die URL.
gcloud-CLI
Beschreiben Sie die Cloud Functions-Funktion
app
:gcloud functions describe app
Kopieren Sie die Property
url
.
Chat-App in der Google Cloud Console konfigurieren
In diesem Abschnitt erfahren Sie, 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 Chat-Interaktionsereignisse gesendet werden.
Klicken Sie in der Google Cloud Console auf das Dreistrich-Menü > Weitere Produkte > Google Workspace > Produktbibliothek > Google Chat API > Verwalten > Konfiguration.
und dann aufGeben Sie unter Anwendungsname
AI knowledge assistant
ein.Geben Sie unter Avatar-URL
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
ein.Geben Sie unter Beschreibung den Wert
Answers questions with AI
ein.Klicken Sie auf die Ein/Aus-Schaltfläche Interaktive Funktionen aktivieren, um die Position „Ein“ festzulegen.
Wählen Sie unter Funktionsweise die Option Gruppenbereichen und Gruppenunterhaltungen beitreten aus.
Wählen Sie unter Verbindungseinstellungen die Option HTTP-Endpunkt-URL aus.
Fügen Sie unter HTTP-Endpunkt-URL die Trigger-URL aus der
app
-Cloud-Funktion ein. Die URL muss folgendermaßen formatiert sein:https://
REGION-
PROJECT_ID.cloudfunctions.net/app
. Dabei ist REGION die Region der Cloud-Funktion, z. B.us-central1
, und PROJECT_ID die Projekt-ID des von Ihnen erstellten Cloud-Projekts.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.
Optional können Sie unter Protokolle die Option Fehler in Logging protokollieren auswählen.
Klicken Sie auf Speichern. Es wird eine Meldung angezeigt, dass die Konfiguration gespeichert wurde. Die Chat-App kann jetzt getestet werden.
Chat-App testen
Testen Sie die KI-Chat-App für den Wissensassistenten in einem Chatbereich mit Nachrichten, indem Sie Fragen stellen, die die KI-Chat-App für den Wissensassistenten beantworten kann.
So können Sie die KI-Chat-App testen:
- Fügen Sie der Chat-App „KI-Wissensassistent“ einen 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 mit einem Prompt wie
Answer 20 common onboarding questions employees ask their teams.
aus Gemini abgerufen werden. Sie können auch einige Absätze aus dem Leitfaden Mit Google Chat entwickeln einfügen und dann Fragen dazu stellen.
In dieser Anleitung erstellen wir einen Gruppenbereich in Google Chat und fügen einige Absätze aus dem Leitfaden Mit Google Chat entwickeln ein.
Öffnen Sie Google Chat.
So erstellen Sie einen Chatbereich:
Klicken Sie auf > Gruppenbereich erstellen.
Neuer ChatGeben Sie unter Name des Gruppenbereichs
Testing AI knowledge assistant app
ein.Wählen Sie unter Wofür soll dieser Gruppenbereich genutzt werden? die Option Zusammenarbeit aus.
Wählen Sie unter Zugriffseinstellungen aus, wer auf den Gruppenbereich zugreifen kann.
Klicken Sie auf Erstellen.
Fügen Sie Nachrichten hinzu, die als Datenquelle verwendet werden sollen:
Rufen Sie in einem Webbrowser den Leitfaden Entwickeln mit Google Chat auf.
Kopieren Sie den Inhalt des Leitfadens und fügen Sie ihn in den von Ihnen erstellten Google Chat-Gruppenbereich ein.
So fügen Sie die Chat-App mit KI-Wissensassistent hinzu:
Geben Sie in die Zeile zum Verfassen von Nachrichten die Taste
@AI knowledge assistant
ein. Wählen Sie dann im angezeigten Vorschlagsmenü die Chat-App mit KI-Wissensassistenten aus und drücken Sie die Tasteenter
.Sie werden gefragt, ob Sie dem Gruppenbereich die Chat-App mit dem KI-Wissensassistenten hinzufügen möchten. Klicken Sie auf Zu Gruppenbereich hinzufügen.
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:
- Klicken Sie auf Konfigurieren.
- 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 möchten.
- Prüfen Sie die Berechtigungen, die von der KI-Wissensassistenten-Chat-App angefordert werden. Klicken Sie auf Zulassen, um die Berechtigungen zu gewähren.
- 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.
Fragen stellen:
Geben Sie in die Eingabezeile für Nachrichten eine Frage wie
What are Google Chat apps?
ein.Die KI-Wissensassistenten-Chat-App antwortet.
Wenn die Antwort nicht korrekt oder nicht ausreichend ist, können Sie auf
Hilfe erhalten klicken, um den Konversationsverlauf der KI zu verbessern. Der KI-Wissensassistent in der Chat-App 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 Architekturoptionen und nächste Schritte
In diesem Abschnitt werden weitere Möglichkeiten zum Erstellen der Chat-App mit KI-Wissensassistenten beschrieben.
Firestore, Cloud Storage oder Aufruf von „List Messages“ in der Chat API
In diesem Tutorial wird empfohlen, Chatbereichsdaten wie Nachrichten in einer Firestore-Datenbank zu speichern, da dies die Leistung im Vergleich zum Aufrufen der list
-Methode auf der Message
-Ressource mit der Chat API jedes Mal verbessert, 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 überschreitet.
Wenn der Chatverlauf eines Chatbereichs jedoch zu lang wird, kann die Verwendung von Firestore kostspielig werden.
Cloud Storage ist eine Alternative zu Firestore. Jeder Gruppenbereich, in dem die Chat-App des KI-Wissensassistenten 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 gesamte Inhalt der Textdatei mit Gemini gleichzeitig an Vertex AI gesendet werden kann. Der Nachteil ist jedoch, dass das Aktualisieren des Unterhaltungsverlaufs mehr Aufwand erfordert, da ein Objekt in Cloud Storage nicht angehängt, sondern nur ersetzt werden kann. Dieser Ansatz ist nicht sinnvoll, wenn Sie den Nachrichtenverlauf regelmäßig aktualisieren. Er eignet sich jedoch gut, wenn Sie den Nachrichtenverlauf regelmäßig, z. B. einmal pro Woche, im Batch 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 verarbeitet werden“ Manchmal wird in der Chat-Benutzeroberfläche keine Fehlermeldung angezeigt, aber die Chat-App oder -Karte führt zu einem unerwarteten Ergebnis. Beispielsweise wird möglicherweise keine Kartennachricht angezeigt.
Auch wenn in der Chat-Benutzeroberfläche keine Fehlermeldung angezeigt wird, sind beschreibende Fehlermeldungen und Protokolldaten verfügbar, die Ihnen bei der Fehlerbehebung helfen, wenn die Fehlerprotokollierung für Chat-Apps aktiviert ist. Informationen zum Ansehen, Entfernen 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 Ihnen, das Cloud-Projekt zu löschen.
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten. Klicken Sie auf das Dreistrich-Menü > IAM & Verwaltung > Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.
Weitere Informationen
- Projekte mit Google Chat, Vertex AI und Firestore verwalten
- Auf Vorfälle mit Google Chat, Vertex AI und Apps Script reagieren