In dieser Anleitung wird gezeigt, wie Sie mit generativer KI auf Basis von Vertex AI mit Gemini eine Google Chat-App erstellen, die Fragen basierend auf Unterhaltungen in Chatbereichen beantwortet. Die Chat-App verwendet die Google Workspace Events API sowie Pub/Sub, um in Chatbereichen gepostete Fragen in Echtzeit zu erkennen und zu beantworten, auch wenn sie nicht erwähnt werden.
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 eine weiter. Wird keine Antwort gefunden, ist keine Antwort möglich. Bei jeder Antwort können Nutzer auf eine Zubehör-Aktionsschaltfläche klicken, um einen Administrator des Gruppenbereichs mit @Erwähnung zu erwähnen und um eine Antwort zu bitten. Durch den Einsatz von Gemini AI passt die Google Chat-App ihre Wissensdatenbank an und erweitert sie, während sie kontinuierlich anhand von Unterhaltungen in Gruppenbereichen trainiert, denen sie hinzugefügt wurde.
So funktioniert die Chat-App in einem Onboarding- und Supportbereich für Mitarbeiter:
-
Abbildung 2: Dana fragt, ob das Unternehmen Schulungen für Vorträge anbietet. -
Abbildung 3: Die Chat-App des KI-Wissensassistenten fordert Vertex AI mit Gemini auf, Danas Frage basierend auf dem Unterhaltungsverlauf des Chatbereichs zu beantworten.
Voraussetzungen
Ein Google Workspace-Konto mit Zugriff auf Google Chat.
Zugriff auf Google Cloud-Dienste für folgende Aufgaben:
- Google Cloud-Projekt erstellen.
- Verknüpfen Sie ein Google Cloud-Rechnungskonto mit dem Cloud-Projekt. Unter Erforderliche Berechtigungen zum Aktivieren der Abrechnung können Sie nachlesen, ob Sie Zugriff haben.
- Verwenden Sie nicht authentifizierte Aufrufe von Google Cloud Functions-Funktionen, die Sie überprüfen können, indem Sie ermitteln, ob Ihre Google Cloud-Organisation die Freigabe mit Domaineinschränkung verwendet.
Bitten Sie gegebenenfalls Ihren Google Cloud-Administrator um Zugriff oder Berechtigungen.
Bei Verwendung der Google Cloud CLI: eine Node.js-Entwicklungsumgebung, die für die gcloud CLI konfiguriert ist Weitere Informationen finden Sie unter Node.js-Entwicklungsumgebung einrichten.
Zielsetzungen
- Erstellen Sie eine Chat-Anwendung, die Generative AI verwendet, um Fragen anhand des Wissens zu beantworten, das in Chatbereich-Unterhaltungen geteilt wird.
- Mit generativer KI:
- Fragen von Mitarbeitern erkennen und beantworten.
- Lernen Sie kontinuierlich aus laufenden Unterhaltungen in einem Chatbereich.
- Sie können in Echtzeit Nachrichten in einem Chatbereich abhören und beantworten, auch wenn die Chat-App nicht direkt an die Chat-App gesendet wird.
- Nachrichten durch Schreiben und Lesen aus einer Firestore-Datenbank dauerhaft speichern.
- Erleichtern Sie die Zusammenarbeit in einem Chatbereich, indem Sie Gruppenbereichsmanager 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.
Die Chat-App des KI-Wissensassistenten funktioniert so:
Ein Nutzer fügt die Chat-App des KI-Wissensassistenten einem Chatbereich hinzu:
Die Chat-App fordert den Nutzer, der sie dem Chatbereich hinzugefügt hat, auf, die Authentifizierung und Autorisierung zu konfigurieren.
Die Chat-App ruft die Nachrichten des Gruppenbereichs ab, indem sie in der Chat API die Methode
spaces.messages.list
aufruft. Die abgerufenen Nachrichten werden dann in einer Firestore-Datenbank gespeichert.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.Die Chat-App postet eine Einführungsnachricht im Gruppenbereich.
Ein Nutzer im Chatbereich postet eine Nachricht:
Die Chat-Anwendung 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-Anwendung sendet die Nachricht mit Gemini an Vertex AI:
Die Aufforderung weist Vertex AI mit Gemini an, zu prüfen, ob die Nachricht eine Frage enthält. Ist dies der 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. Wenn dies nicht der Fall ist, antworten Sie nicht.
Wenn Vertex AI mit Gemini die Frage beantwortet, veröffentlicht die Chat-App die Antwort durch Aufrufen der Methode
spaces.messages.create
in der Chat API über die App-Authentifizierung.Wenn Vertex AI mit Gemini die Frage nicht beantworten kann, wird in der Chat-App eine Nachricht gepostet, dass im Verlauf des Chatbereichs keine Antwort auf diese Frage gefunden wird.
Nachrichten enthalten immer eine zusätzliche Aktionsschaltfläche, auf die Nutzer klicken können. Dadurch wird die Chat-App einen Administrator des Gruppenbereichs @erwähnen und ihn bitten, zu antworten.
Die Chat-App erhält eine Lebenszyklusbenachrichtigung von der Google Workspace Events API, dass das Abo für den Chatbereich bald abläuft:
- Die Chat-App sendet durch Aufrufen der Methode
subscriptions.patch
in der Google Workspace Events API eine Anfrage zur Verlängerung des Abos.
- Die Chat-App sendet durch Aufrufen der Methode
Die Chat-App wird aus einem Chatbereich entfernt:
Die Chat-App löscht das Abo durch Aufrufen der Methode
subscriptions.delete
in der Google Workspace Events API.Die Chat-App löscht die Daten des Chatbereichs aus Firestore.
Überprüfen Sie die von der Chat-App des KI-Wissensassistenten verwendeten Produkte
Die Chat-App des KI-Wissensassistenten verwendet die folgenden Google Workspace- und Google Cloud-Produkte:
- Vertex AI API mit Gemini: Eine auf Gemini basierende Generative AI-Plattform. Die Chat-App mit dem KI-Wissensassistenten nutzt 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:
- Sie können Interaktionsereignisse empfangen und beantworten, die über Google Chat gesendet werden.
- Nachrichten ansehen, die in einem Gruppenbereich gesendet wurden
- Antworten auf Fragen von Nutzern in einem Gruppenbereich posten.
- Konfigurieren Sie Attribute, die festlegen, wie sie in Google Chat angezeigt werden, z. B. Name und Avatarbild.
- Google Workspace Events API: Mit dieser API können Sie in allen Google Workspace-Anwendungen Ereignisse abonnieren und Änderungsbenachrichtigungen 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 können Fragen auch dann erkannt und beantwortet werden, wenn sie nicht erwähnt werden.
- Firestore: Eine serverlose Dokumentendatenbank Die Chat-App des KI-Wissensassistenten 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 generieren, von Diensten entkoppelt, 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 unerledigte Infrastruktur implementieren, anpassen oder warten zu müssen. Die Chat-App des KI-Wissensassistenten verwendet Eventarc, um Ereignisse von Pub/Sub an einen Chatbereich und die Cloud Functions-Funktion weiterzuleiten, die die Aboereignisse empfängt und verarbeitet.
-
Cloud Functions: Ein einfacher serverloser Compute-Dienst, mit dem Sie zweckgebundene, eigenständige Funktionen erstellen können, die auf Chat-Interaktions- 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 namens:
-
app
: Hosten Sie den HTTP-Endpunkt, an den Chat Interaktionsereignisse an diesen und als Computing-Plattform sendet, um Logik auszuführen, die diese Ereignisse verarbeitet und auf sie reagiert. -
eventsApp
: Empfängt und verarbeitet Ereignisse in Chatbereichen wie Nachrichten von einem Pub/Sub-Abo.
- 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
- Öffnen Sie in der Google Cloud Console das Dreistrich-Menü > IAM und Verwaltung > Projekt erstellen.
-
Geben Sie im Feld Projektname einen aussagekräftigen Namen für das 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 daher eine ID aus, die Ihren Anforderungen für die gesamte Lebensdauer des Projekts entspricht.
- Klicken Sie im Feld Standort auf Durchsuchen, um potenzielle Standorte für Ihr Projekt aufzurufen. Klicken Sie danach auf Auswählen.
- Klicken Sie auf Erstellen. Die Google Cloud Console ruft die Dashboard-Seite auf 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 Online-Terminal zu verwenden, bei dem die gcloud CLI bereits eingerichtet ist.
Cloud Shell aktivieren -
Lokale Shell: Um eine lokale Entwicklungsumgebung zu verwenden, müssen Sie die gcloud CLI installieren und initialize.
Verwenden Sie den Befehl „gcloud projects create“, um ein Cloud-Projekt zu erstellen:gcloud projects create PROJECT_ID
Abrechnung für das Cloud-Projekt aktivieren
Google Cloud Console
- Rufen Sie in der Google Cloud Console Abrechnung auf. Klicken Sie auf das Dreipunkt-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-Rechnungskonto aus.
- Klicken Sie auf Konto festlegen.
gcloud-CLI
- Führen Sie folgenden Befehl aus, um verfügbare Rechnungskonten aufzulisten:
gcloud billing accounts list
- 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
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 die APIs im richtigen Cloud-Projekt aktiviert sind. Klicken Sie dann auf Weiter.
Prüfen Sie, ob die richtigen APIs aktiviert sind, und klicken Sie dann auf Aktivieren.
gcloud-CLI
Legen Sie gegebenenfalls das von Ihnen erstellte Cloud-Projekt für das aktuelle Cloud-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 die Authentifizierung und Autorisierung kann die Chat-Anwendung 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 Platzhalterinformationen durch echte Informationen für den Zustimmungsbildschirm.
OAuth-Zustimmungsbildschirm konfigurieren, Bereiche angeben und Anwendung registrieren
Gehen Sie in der Google Cloud Console zu Menü > APIs und Dienste > OAuth-Zustimmungsbildschirm.
Wählen Sie unter Nutzertyp die Option Intern aus und klicken Sie dann auf Erstellen.
Geben Sie unter App-Name
AI knowledge assistant
ein.Wählen Sie unter E-Mail-Adresse des Nutzersupports Ihre E-Mail-Adresse oder eine entsprechende Google-Gruppe aus.
Geben Sie unter Kontaktdaten des Entwicklers Ihre E-Mail-Adresse ein.
Klicken Sie auf Speichern und fortfahren.
Klicken Sie auf Bereiche hinzufügen oder entfernen. Für jede API, die Sie in Ihrem Cloud-Projekt aktiviert haben, wird ein Bereich mit einer Liste der Bereiche angezeigt.
Fügen Sie unter Bereiche manuell hinzufügen den folgenden Bereich ein:
https://www.googleapis.com/auth/chat.messages
Klicken Sie auf Zu Tabelle hinzufügen.
Klicken Sie auf Aktualisieren.
Klicken Sie auf Speichern und fortfahren.
Prüfen Sie die Zusammenfassung der App-Registrierung und klicken Sie dann auf Zurück zum Dashboard.
Anmeldedaten für OAuth-Client-ID 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 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 deren Region auf diesen Wert festlegen. - PROJECT_ID: die Projekt-ID des von Ihnen erstellten Cloud-Projekts.
- REGION: Die Region der Cloud Functions-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-Funktionen erstellen, fügen Sie die Dateiclient_secrets.json
in jede Bereitstellung ein.Klicken Sie auf OK.
Pub/Sub-Thema erstellen
Das Pub/Sub-Thema arbeitet mit der Google Workspace Events API zusammen, 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
Rufen Sie in der Google Cloud Console das Dreistrich-Menü > Pub/Sub auf.
Klicken Sie auf Thema erstellen.
Geben Sie unter Themen-ID den String
events-api
ein.Heben Sie die Auswahl von Standardabo hinzufügen auf.
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 zusammen funktionieren, müssen Sie dem IAM-Nutzer von Chat die Berechtigung zum Posten im Pub/Sub-Thema erteilen:
Klicken Sie im Bereich events-api unter BERECHTIGUNGEN auf Hauptkonto hinzufügen.
Geben Sie unter Hauptkonten hinzufügen unter Neue Hauptkonten den Wert
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 Chat die Berechtigung zum Posten im Pub/Sub-Thema:
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 besteht aus Chatbereichen und ruft Daten wie Nachrichten ab. Das Datenmodell wird nicht von Ihnen definiert. Es wird im Beispielcode durch die Dateien model/message.js
und services/firestore-service.js
implizit festgelegt.
Die Datenbank der Chat-Anwendung des KI-Wissensassistenten verwendet ein NoSQL-Datenmodell, das auf Firestore-Datenmodell.
-Dokumenten basiert, die in -Sammlungen organisiert sind. Weitere Informationen finden Sie unterDas folgende Diagramm bietet einen Überblick über das Datenmodell der Chat-App „AI Knowledge Assistant“:
Der Stamm 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 untergeordneten Sammlungmessages
dargestellt.users
, wobei jedes Dokument einen Nutzer darstellt, der die Chat-App einem Chatbereich hinzugefügt hat.
Definitionen für Sammlungen, Dokumente und Felder ansehen
spaces
Ein Chatbereich mit der Chat-App „KI Knowledge Assistant“.
Felder | |
---|---|
Document ID | String Eindeutige ID eines bestimmten Bereichs. Ein Teil des Ressourcennamens des Gruppenbereichs in der Chat API. |
messages | Subcollection of Documents ( Im Chatbereich gesendete Nachrichten. Entspricht dem Document ID einer 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 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 Text der Nachricht. |
time | String (Timestamp format) Der Zeitpunkt, zu dem die Mitteilung erstellt wurde. |
users
Nutzer, die die Chat-App des KI-Wissensassistenten einem Chatbereich hinzugefügt haben.
Felder | |
---|---|
Document ID | String Eindeutige ID eines bestimmten Nutzers. |
accessToken | String Das während der OAuth 2.0-Nutzerautorisierung gewährte Zugriffstoken zum Aufrufen von Google Workspace APIs. |
refreshToken | String Das Aktualisierungstoken, das während der OAuth 2.0-Nutzerautorisierung erteilt wurde. |
So erstellen Sie die Firestore-Datenbank:
Google Cloud Console
Rufen Sie in der Google Cloud Console das Menü > Firestore auf.
Klicken Sie auf Create database (Datenbank erstellen).
Klicken Sie unter Firestore-Modus auswählen auf Nativer Modus.
Klicken Sie auf Weiter.
Konfigurieren Sie die Datenbank:
Behalten Sie im Feld Datenbank benennen als Datenbank-ID
(default)
bei.Wählen Sie unter Standorttyp die Option Region aus.
Geben Sie unter Region eine Region für die Datenbank an, z. B.
us-central1
. Wählen Sie für die beste Leistung den gleichen oder einen nahe gelegenen Standort wie die Cloud Functions-Funktionen der Chat-Anwendung aus.
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 die beste Leistung denselben oder einen nahe gelegenen Standort wie die Cloud Functions-Funktionen der Chat-Anwendung 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:
- Zwei Cloud Functions-Funktionen erstellen und bereitstellen eine, um auf Chat-Interaktionsereignisse zu reagieren, und eine, um auf Pub/Sub-Ereignisse zu reagieren.
- Erstellen Sie auf der Konfigurationsseite der Google Chat API eine Chat-Anwendung und stellen Sie sie bereit.
Cloud Functions-Funktionen erstellen und bereitstellen
In diesem Abschnitt erstellen und stellen Sie zwei Cloud Functions-Funktionen mit dem Namen bereit:
app
: Zum Hosten und Ausführen des Codes der Chat-App, der auf Ereignisse reagiert, die von Chat als HTTP-Anfragen empfangen werden.eventsApp
: Empfängt und verarbeitet Ereignisse in Chatbereichen wie Nachrichten von Pub/Sub.
Zusammen bilden diese Cloud Functions-Funktionen die Anwendungslogik der Chat-Anwendung des KI-Wissensassistenten.
Optional können Sie sich vor dem Erstellen der Cloud Functions-Funktionen den auf GitHub gehosteten Beispielcode ansehen und sich damit vertraut machen.
app
erstellen und bereitstellen
Google Cloud Console
Laden Sie den Code von GitHub als ZIP-Datei herunter.
Extrahieren Sie die heruntergeladene ZIP-Datei.
Der extrahierte Ordner enthält das gesamte Google Workspace-Beispiel-Repository.
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 der OAuth-Client-ID-Anmeldedaten zur 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/
Rufen Sie in der Google Cloud Console das Dreistrich-Menü > Cloud Functions auf.
Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.
Klicken Sie auf
Funktion erstellen.Richten Sie auf der Seite Funktion erstellen Ihre Funktion ein:
- Wählen Sie unter Umgebung die Option 2nd gen 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 beim Erstellen der OAuth-Client-ID-Anmeldedaten zur Authentifizierung und Autorisierung festgelegt haben. - Wählen Sie unter Triggertyp die Option HTTPS aus.
- Wählen Sie unter Authentifizierung die Option Nicht authentifizierte Aufrufe zulassen aus.
- Klicke 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-Upload aus.
Erstellen Sie unter Ziel-Bucket einen Bucket oder wählen Sie einen aus:
- Klicke auf Entdecken.
- 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. Anschließend kopiert Cloud Functions die Komponentendateien in die Cloud Functions-Funktion.
Laden Sie in ZIP-Datei die ZIP-Datei hoch, die Sie von GitHub heruntergeladen, extrahiert und neu komprimiert haben:
- Klicke auf Entdecken.
- Gehen Sie zur gewünschten ZIP-Datei und wählen Sie sie aus.
- Klicken Sie auf Öffnen.
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.
Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:
- Klicken Sie auf der Seite Cloud Functions-Details auf Bearbeiten.
- Klicke auf Weiter.
- Wählen Sie unter Quellcode den 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 den Wert von location auf die Region der Cloud Functions-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 für den KI-Wissensassistenten 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 der OAuth-Client-ID-Anmeldedaten zur 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 den Wert von location auf die Region der Cloud Functions-Funktion fest, z. B.
us-central1
.
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, der mit dem Wert in der Datei
env.js
übereinstimmt, z. B.us-central1
.
eventsApp
erstellen und bereitstellen
Google Cloud Console
Rufen Sie in der Google Cloud Console das Dreistrich-Menü > Cloud Functions auf.
Achten Sie darauf, dass das Google Cloud-Projekt für Ihre Chat-App ausgewählt ist.
Klicken Sie auf
Funktion erstellen.Richten Sie auf der Seite Funktion erstellen Ihre Funktion ein:
- Wählen Sie unter Umgebung die Option 2nd gen 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 beim Erstellen der OAuth-Client-ID-Anmeldedaten zur Authentifizierung und Autorisierung festgelegt 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 im Format
projects/PROJECT/topics/events-api
aus, wobei PROJECT Ihre Cloud-Projekt-ID ist. - 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. - Klicke 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 from Cloud Storage aus.
Klicken Sie unter Cloud Storage-Speicherort auf Durchsuchen.
Wählen Sie den Bucket aus, in den Sie die ZIP-Datei beim Erstellen der Cloud Functions-Funktion
app
hochgeladen haben.Klicken Sie auf die hochgeladene ZIP-Datei.
Klicken Sie auf Auswählen.
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 verschwinden und durch ein Häkchen ersetzt werden, ist die Funktion bereitgestellt und bereit.
Bearbeiten Sie den Beispielcode, um Konstanten festzulegen:
- Klicken Sie auf der Seite Cloud Functions-Details auf Bearbeiten.
- Klicke auf Weiter.
- Wählen Sie unter Quellcode den 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 den Wert von location auf die Region der Cloud Functions-Funktion fest, z. B.
us-central1
.
Klicken Sie auf Bereitstellen.
gcloud-CLI
Wechseln Sie in der gcloud CLI in das Verzeichnis, das den Code für diese Chat-Anwendung des KI-Wissensassistenten enthält, die Sie zuvor aus 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 der OAuth-Client-ID-Anmeldedaten zur 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 den Wert von location auf die Region der Cloud Functions-Funktion fest, z. B.
us-central1
.
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, der mit dem Wert in der Datei
env.js
übereinstimmt, z. B.us-central1
.
Kopieren Sie die Trigger-URL der Cloud Functions-Funktion app
Im nächsten Abschnitt fügen Sie die Trigger-URL der Cloud Functions-Funktion app
ein, wenn Sie die Chat-App in der Google Cloud Console konfigurieren.
Google Cloud Console
Rufen Sie in der Google Cloud Console das Dreistrich-Menü > Cloud Functions auf.
Klicken Sie in der Spalte Name der Liste von Cloud Functions auf
app
.Klickbasierter Trigger
Kopieren Sie die URL.
gcloud-CLI
Beschreiben Sie die Cloud Functions-Funktion
app
:gcloud functions describe app
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, einschließlich des Namens der Chat-App und der Trigger-URL der Cloud Functions-Funktion der Chat-App, an die Chat-Interaktionsereignisse gesendet werden.
Klicken Sie in der Google Cloud Console auf Menü > Weitere Produkte > Google Workspace > Produktbibliothek > Google Chat API > Verwalten > Konfiguration.
Geben Sie unter App-Name
AI knowledge assistant
ein.Geben Sie im Feld Avatar-URL den String
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
ein.Geben Sie unter Beschreibung den Text
Answers questions with AI
ein.Stellen Sie den Schalter Interaktive Funktionen aktivieren auf „Ein“.
Wählen Sie unter Funktionen die Option Gruppenbereichen und Gruppenunterhaltungen beitreten aus.
Wählen Sie unter Verbindungseinstellungen die Option App-URL aus.
Fügen Sie unter App-URL die Trigger-URL aus der Cloud Functions-Funktion
app
im Formathttps://
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.Wählen Sie unter Sichtbarkeit die Option Diese Chat-App bestimmten Personen und Gruppen in Ihrer Workspace-Domain verfügbar machen aus und geben Sie Ihre E-Mail-Adresse ein.
Wählen Sie optional unter Logs die Option Fehler in Logging protokollieren aus.
Klicken Sie auf Speichern. Eine Nachricht zur gespeicherten Konfiguration wird angezeigt, was bedeutet, dass die Chat-Anwendung zum Testen bereit ist.
Chat App testen
Testen Sie die Chat-App des KI-Wissensassistenten in einem Chatbereich mit Nachrichten. Stellen Sie dazu Fragen, die die Chat-App des KI-Wissensassistenten beantworten kann.
So können Sie die Chat-App des KI-Wissensassistenten 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 mit einem Prompt wie
Answer 20 common onboarding questions employees ask their teams.
aus Gemini stammen. Sie können auch einige Absätze aus der Anleitung Mit Chat entwickeln einfügen und dann Fragen dazu stellen.
Erstellen Sie im Rahmen dieser Anleitung einen Chatbereich und fügen Sie einige Absätze aus der Anleitung Mit 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 Wozu dient dieser Gruppenbereich? die Option Gruppenarbeit aus.
Wählen Sie unter Zugriffseinstellungen aus, wer auf den Gruppenbereich zugreifen darf.
Klicken Sie auf Erstellen.
So fügen Sie Nachrichten hinzu, die als Datenquelle verwendet werden sollen:
Rufen Sie in einem Webbrowser die Anleitung Mit Chat entwickeln auf.
Kopieren Sie den Inhalt des Leitfadens und fügen Sie ihn in den von Ihnen erstellten Chatbereich ein.
Fügen Sie die Chat-App für den KI-Wissensassistenten hinzu:
Geben Sie in der Leiste zum Schreiben von Nachrichten
@AI knowledge assistant
ein und wählen Sie im angezeigten Vorschlagsmenü die Chat-App des KI-Wissensassistenten aus. Drücken Sie dannenter
.Es wird eine Nachricht angezeigt, in der Sie gefragt werden, ob Sie die Chat-App des KI-Wissensassistenten dem Gruppenbereich hinzufügen möchten. Klicken Sie auf Zu Gruppenbereich hinzufügen.
Wenn Sie die Chat-Anwendung zum ersten Mal einem Gruppenbereich hinzufügen, müssen Sie die Authentifizierung und Autorisierung für die Chat-Anwendung 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 die Chat-App des KI-Wissensassistenten anfordert. Klicken Sie auf Zulassen, um sie 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 der Eingabezeile eine Frage wie
What are Google Chat apps?
ein.Die Chat-App des KI-Wissensassistenten antwortet.
Wenn die Antwort nicht korrekt oder nicht ausreicht, können Sie auf
Hilfe klicken, 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. Nächstes Mal wird die Chat-App der KI-Wissensassistenten die Antwort kennen.
Überlegungen, alternative Architekturoptionen und nächste Schritte
In diesem Abschnitt werden weitere Möglichkeiten beschrieben, wie die Chat-App des KI-Wissensassistenten entwickelt werden kann.
Firestore, Cloud Storage oder das Aufrufen von List Messages in der Chat API
In dieser Anleitung wird empfohlen, Daten zum Chatbereich wie Nachrichten in einer Firestore-Datenbank zu speichern, da die Leistung im Vergleich zum Aufrufen der Methode list
für die Ressource Message
mit der Chat API jedes Mal verbessert wird, wenn die Chat-App eine Frage beantwortet. Wenn list messages
wiederholt aufgerufen wird, kann die Chat-Anwendung außerdem dazu führen, dass die API-Kontingentlimits erreicht werden.
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-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 vollständige Inhalt der Textdatei mit Gemini gleichzeitig in Vertex AI mit Gemini eingespeist werden kann. Der Nachteil ist jedoch, dass die Aktualisierung des Unterhaltungsverlaufs mehr Arbeit erfordert, da Sie ihn nicht an ein Objekt in Cloud Storage anhängen, sondern nur ersetzen können. Dieser Ansatz ist nicht sinnvoll, wenn Sie den Nachrichtenverlauf regelmäßig aktualisieren. Er wäre jedoch eine gute Wahl, wenn Sie ihn regelmäßig im Batch aktualisieren, z. B. 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, die Chat-App oder -Karte aber ein unerwartetes Ergebnis, z. B. wird keine Kartennachricht angezeigt.
Obwohl möglicherweise keine Fehlermeldung in der Chat-UI angezeigt wird, stehen beschreibende Fehlermeldungen und Protokolldaten zur Verfügung, mit denen Sie Fehler beheben können, wenn das Fehler-Logging für Chat-Anwendungen 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.
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten. Klicken Sie auf Menü > IAM und 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
- Mit Google Chat, Vertex AI und Apps Script auf Vorfälle reagieren