Übersicht
Eines der besten Tools zur Verbesserung der Qualität von Antworten von Large Language Models (LLMs) ist Retrieval-Augmented Generation (RAG). RAG ist das Muster, bei dem nicht öffentliche Daten abgerufen und dazu verwendet werden, den an das LLM gesendeten Prompt zu erweitern. Durch RAG kann das LLM auf der Grundlage der im Prompt enthaltenen Daten genauere Antworten generieren.
In diesem Lab verwenden Sie AlloyDB, die skalierbare, leistungsfähige, mit PostgreSQL kompatible Datenbank von Google Cloud, um eine spezielle Art von Vektordaten zu speichern und für die Suche zu nutzen. Diese Daten werden als Vektoreinbettungen bezeichnet. Vektoreinbettungen können mithilfe einer semantischen Suche abgerufen werden. Dadurch ist es möglich, die verfügbaren Daten abzurufen, die am besten zu einer Suchanfrage in natürlicher Sprache passen. Die abgerufenen Daten werden dann im Prompt an das LLM übergeben.
Um Daten aus der Datenbank abzurufen, verwenden Sie MCP Toolbox, einen Middlewareserver, der Datenbankvorgänge als eine Reihe von Tools bereitstellt. Der Agent stellt eine Verbindung zu Toolbox her, um diese Tools auszuführen. So können Datenbankinteraktionen sicher, skalierbar und modular verwaltet werden.
Außerdem verwenden Sie Vertex AI, die vollständig verwaltete, einheitliche KI-Entwicklungsplattform von Google Cloud zur Erstellung und Verwendung von generativer KI. Ihre Anwendung verwendet Gemini Pro, ein multimodales Foundation Model, das das Hinzufügen von Bild-, Audio-, Video- und PDF-Dateien in Text- oder Chat-Prompts unterstützt und das Verständnis von langen Kontexten ermöglicht.

Lerninhalte
In diesem Lab lernen Sie Folgendes:
- Wie RAG die Fähigkeiten von LLMs verbessert, indem relevante Informationen aus einer Wissensdatenbank abgerufen werden
- Wie Sie mit AlloyDB relevante Informationen mithilfe einer semantischen Suche finden
- Wie Sie Vertex AI und die Foundation Models von Google verwenden können, um für Anwendungen leistungsstarke Funktionen bereitzustellen, die auf generativer KI basieren
Einrichtung und Anforderungen
Vor dem Klick auf „Lab starten“
Hinweis: Bitte lesen Sie sich diese Anleitung durch.
Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Qwiklabs-Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Voraussetzungen
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
- Genügend Zeit, um das Lab abzuschließen
Hinweis: Auch wenn Sie bereits ein eigenes Google Cloud-Konto oder ‑Projekt haben, sollten Sie es nicht für das Lab verwenden.
Hinweis: Wenn Sie ein Pixelbook verwenden, führen Sie dieses Lab in einem Inkognitofenster aus.
Lab starten und bei der Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können.
Auf der linken Seite sehen Sie ein Feld, in dem Ihre temporären Anmeldedaten für dieses Lab angezeigt werden.

-
Kopieren Sie den Nutzernamen und klicken Sie dann auf Google Console öffnen.
Im Lab werden Ressourcen aktiviert und ein neuer Tab mit der Seite Konto auswählen wird geöffnet.
Tipp: Öffnen Sie die Tabs nebeneinander in separaten Fenstern.
-
Klicken Sie auf der Seite „Konto auswählen“ auf Anderes Konto verwenden. Die Anmeldeseite wird geöffnet.

-
Fügen Sie den Nutzernamen ein, den Sie aus dem Feld mit den Verbindungsinformationen kopiert haben. Kopieren Sie dann das Passwort und fügen Sie es ein.
Hinweis: Sie müssen die Anmeldedaten aus dem Feld mit den Verbindungsinformationen verwenden. Bitte geben Sie nicht Ihre Anmeldedaten für Google Cloud Skills Boost ein. Auch wenn Sie bereits ein eigenes Google Cloud-Konto haben, sollten Sie es nicht für dieses Lab verwenden, um Gebühren zu vermeiden.
- Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Cloud Console in diesem Tab geöffnet.
Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü.
Google Cloud Shell aktivieren
Google Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud.
Mit Google Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
-
Klicken Sie in der Cloud Console in der rechten oberen Symbolleiste auf „Cloud Shell öffnen“.

-
Klicken Sie auf Weiter.
Die Bereitstellung und Verbindung mit der Umgebung dauert einen kleinen Moment. Wenn Sie verbunden sind, sind Sie auch bereits authentifiziert und das Projekt ist auf Ihre PROJECT_ID eingestellt. Beispiel:

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
Ausgabe:
Konten mit Anmeldedaten:
- @.com (aktiv)
Beispielausgabe:
Konten mit Anmeldedaten:
- google1623327_student@qwiklabs.net
- Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project
Ausgabe:
[core]
Projekt =
Beispielausgabe:
[core]
Projekt = qwiklabs-gcp-44776a13dea667a6
Hinweis:
Die vollständige Dokumentation zu gcloud finden Sie in der Übersicht zur gcloud CLI.
Aufgabe 1: Umgebung initialisieren
In dieser Aufgabe installieren Sie Python, MCP Toolbox und den PostgreSQL-Client.
SSH-Verbindung zur Anwendungs-VM herstellen
Eine virtuelle Maschine (VM) wurde erstellt. Auf dieser VM werden die Anwendung und MCP Toolbox gehostet.
-
Führen Sie in der Cloud Shell den folgenden Befehl aus, um eine Verbindung zur VM herzustellen:
gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}}
Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren.
-
Klicken Sie für jede Frage, die vom Befehl gcloud compute ssh gestellt wird, auf Eingabe bzw. Return, um die Standardeingabe anzugeben.
Nach einer kurzen Wartezeit sind Sie in der VM angemeldet.
Python und Git installieren
-
Führen Sie auf der VM die folgenden Befehle aus, um Python und Git zu installieren:
sudo apt update
sudo apt install -y python3.11-venv git
python3 -m venv .venv
source ~/.venv/bin/activate
pip install --upgrade pip
Nach der Installation befinden Sie sich in der virtuellen Python-Umgebung mit einem (.venv)-Prompt.
Wenn die SSH-Sitzung der VM einmal abläuft oder der Tab geschlossen wird, können Sie wieder eine SSH-Verbindung zur VM herstellen und die virtuelle Python-Umgebung mit dem Befehl source ~/.venv/bin/activate neu starten.
-
Führen Sie zum Bestätigen der Python-Version den folgenden Befehl aus:
python -V
Die Antwort sollte in etwa so aussehen:
(.venv) student@app-vm:~$ python -V
Python 3.11.2
(.venv) student@app-vm:~$
PostgreSQL-Client installieren
-
Führen Sie in der VM-Sitzung die folgenden Befehle aus, um den PostgreSQL-Client zu installieren:
sudo apt install -y postgresql-client
Hinweis: Der Client ist möglicherweise bereits installiert.
Demo und MCP Toolbox herunterladen
-
Führen Sie die folgenden Befehle aus, um den Code für diese Demo zu klonen:
cd ~
git clone https://github.com/GoogleCloudPlatform/cymbal-air-toolbox-demo.git
cd cymbal-air-toolbox-demo
-
Führen Sie die folgenden Befehle aus, um die MCP Toolbox-Binärdatei herunterzuladen:
export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
curl -O https://storage.googleapis.com/genai-toolbox/v$MCP_TOOLBOX_VERSION/linux/amd64/toolbox
chmod +x toolbox
Aufgabe 2: Vektordatenbank erstellen
In dieser Aufgabe erstellen Sie mit dem PostgreSQL-Client die Vektordatenbank.
Vektordatenbank erstellen
Es wurde bereits eine AlloyDB-Instanz erstellt.
-
Führen Sie den folgenden Befehl aus, um eine neue Datenbank zu erstellen:
export PROJECT_ID=$(gcloud config get-value project)
export REGION={{{project_0.default_region | REGION }}}
export ADBCLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
export ADBINSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | INSTANCE}}}
export INSTANCE_IP=$(gcloud alloydb instances describe $ADBINSTANCE --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)")
export PGUSER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
export PGPASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
export PGDATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
psql "host=$INSTANCE_IP user=$PGUSER dbname=postgres" -c "CREATE DATABASE $PGDATABASE"
psql antwortet mit CREATE DATABASE.
Damit die Datenbank semantische Suchen unterstützt, sollten die Entitäten durch Vektoreinbettungen dargestellt werden.
-
Führen Sie zum Aktivieren von Vektoreinbettungen in dieser Datenbank den folgenden Befehl aus:
psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "CREATE EXTENSION vector"
psql antwortet mit CREATE EXTENSION.
Klicken Sie auf Fortschritt prüfen.
AlloyDB-Datenbank erstellen und Vektorerweiterung aktivieren
Aufgabe 3: Beispieldatenbank füllen
In dieser Aufgabe verwenden Sie MCP Toolbox, um die Vektordatenbank in AlloyDB mit Beispieldaten zu füllen. Diese Daten werden für die Chatanwendung verwendet.
Datenmodelle untersuchen
-
Führen Sie den folgenden Befehl aus, um das Datenmodell aufzurufen:
cd ~/cymbal-air-toolbox-demo
cat models/models.py
Hier werden die Python-Datenmodelle angezeigt. Das Modell umfasst Flughäfen, Flüge, Flughafeneinrichtungen, Richtlinien und Tickets.
-
Führen Sie die folgenden Befehle aus, um ein Beispiel für die Flughafendaten aufzurufen:
head -1 data/airport_dataset.csv; grep SFO data/airport_dataset.csv
Diese Befehle geben die CSV-Kopfzeile aus, die die Spaltennamen für das Flughafen-Dataset angibt, gefolgt von der Zeile für den San Francisco International Airport (SFO). Die Daten im Flughafenmodell können anhand des IATA-Codes (International Air Transport Association) oder nach Land, Stadt und Flughafenname abgerufen werden. Sie können anhand von Suchbegriffen nach Zeilen in dieser Tabelle suchen. Daher gibt es keine Vektoreinbettungen für diese Daten.
-
Führen Sie die folgenden Befehle aus, um ein Beispiel für Flugdaten aufzurufen:
head -1 data/flights_dataset.csv; grep -m10 "SFO" data/flights_dataset.csv
Diese Befehle geben die CSV-Kopfzeile aus, die die Spaltennamen für das Flug-Dataset angibt, gefolgt von den ersten 10 Zeilen der Flüge nach oder von SFO. Die Daten im Flugmodell können anhand der Fluggesellschaft und der Flugnummer oder anhand der Codes der Abflug- und Ankunftsflughafen abgerufen werden.
-
Führen Sie den folgenden Befehl aus, um ein Beispiel für die Daten zu Flughafeneinrichtungen aufzurufen:
head -2 data/amenity_dataset.csv
Dieser Befehl gibt die CSV-Kopfzeile aus, die die Spaltennamen für das Dataset mit Flughafeneinrichtungen angibt, gefolgt von der ersten Einrichtung.
Die erste Einrichtung hat mehrere einfache Werte, darunter Name, Beschreibung, Standort, Terminal, Kategorie und Öffnungszeiten. Der nächste Wert ist content, der den Namen, die Beschreibung und den Standort enthält. Der letzte Wert ist embedding, die Vektoreinbettung für die Zeile.
Die Einbettung ist ein Array aus 768 Zahlen, das bei der semantischen Suche verwendet wird. Diese Einbettungen werden mit einem KI-Modell von Vertex AI berechnet. Wenn ein Nutzer eine Abfrage stellt, kann aus dieser eine Vektoreinbettung erstellt werden und es können Daten mit Vektoreinbettungen abgerufen werden, die der Einbettung der Suche ähneln.
In den Richtliniendaten werden Vektoreinbettungen auf ähnliche Weise verwendet.
Hinweis: Da die Berechnung von Einbettungen eine Weile dauert, wurden diese bereits bereitgestellt. Im Script run_generate_embeddings.py ist zu sehen, wie Einbettungen generiert werden.
Toolbox starten
-
Führen Sie die folgenden Befehle aus, um die erforderlichen Umgebungsvariablen für MCP Toolbox zu konfigurieren:
export ALLOYDB_POSTGRES_PROJECT=$(gcloud config get-value project)
export ALLOYDB_POSTGRES_REGION={{{project_0.default_region | REGION }}}
export ALLOYDB_POSTGRES_CLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}
export ALLOYDB_POSTGRES_INSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}
export ALLOYDB_POSTGRES_DATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}
export ALLOYDB_POSTGRES_USER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}
export ALLOYDB_POSTGRES_PASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}
export ALLOYDB_POSTGRES_IP_TYPE=private
Diese Umgebungsvariablen für MCP Toolbox ähneln jenen, die für den PostgreSQL-Client verwendet wurden.
Im nächsten Schritt führen Sie MCP Toolbox aus.
-
Führen Sie den folgenden Befehl aus, um MCP Toolbox im Hintergrund zur Dateninitialisierung auszuführen:
cd ~/cymbal-air-toolbox-demo
./toolbox --prebuilt alloydb-postgres &
Das Und-Zeichen (&) bewirkt, dass die Toolbox im Hintergrund ausgeführt wird. So können Sie die Datenbankinitialisierung in derselben SSH-Sitzung durchführen.
Datenbank füllen
-
Führen Sie den folgenden Befehl aus, um die Python-Abhängigkeiten der Demo-App zu installieren:
source ~/.venv/bin/activate
pip install -r requirements.txt
-
Führen Sie die folgenden Befehle aus, um das Datenbank-Script auszuführen:
export PYTHONPATH=~/cymbal-air-toolbox-demo
python data/run_database_init.py
Mit dem ersten Befehl wird ein Pfad zu den Python-Modulen hinzugefügt und mit dem Initialisierungs-Script wird die Datenbank gefüllt.
-
Führen Sie den folgenden Befehl aus, um die eingefügten Daten zu überprüfen:
psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "SELECT COUNT(*) FROM airports"
Der PostgreSQL-Befehl gibt die Anzahl der Flughäfen in der Tabelle „airports“ zurück.
-
Führen Sie den folgenden Befehl aus, um den Toolbox-Hintergrundprozess zu beenden:
pkill toolbox
Datenbank mit dem Beispiel-Dataset füllen
Aufgabe 4: Dienstkonto für MCP Toolbox erstellen
In dieser Aufgabe erstellen Sie ein Dienstkonto für MCP Toolbox.
In unserer Chat-Anwendung ist MCP Toolbox für das Extrahieren relevanter Informationen aus der Datenbank zuständig. Sie extrahiert die erforderlichen Informationen aus der Datenbank, und zwar basierend auf der Anfrage einer KI-Anwendung. Dieses Dienstkonto wird als Identität des MCP Toolbox-Dienstes verwendet, der in Cloud Run ausgeführt wird.
Dienstkonto erstellen
Der SSH-Nutzer hat nicht die erforderliche Berechtigung für die Projektinstanz, um dem Dienstkonto die richtige Rolle zuzuweisen. Sie erstellen das Dienstkonto über einen neuen Cloud Shell-Tab.
-
Klicken Sie in Cloud Shell auf Neuen Tab öffnen (+), um einen neuen Cloud Shell-Tab zu öffnen.
-
Führen Sie im neuen Tab den folgenden Befehl aus, um ein Dienstkonto zu erstellen:
gcloud iam service-accounts create toolbox-identity
Dieses Dienstkonto wird erstellt.
Hinweis: Wenn ein Fehler zurückgegeben wird, der besagt, dass Sie derzeit kein aktives Konto ausgewählt haben, kann dies einfach an einer Verzögerung bei der Weitergabe liegen. Führen Sie den oben genannten Befehl noch einmal aus.
-
Führen Sie den folgenden Befehl aus, um dem Dienstkonto die erforderlichen Berechtigungen zu erteilen:
export PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/alloydb.client"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/serviceusage.serviceUsageConsumer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
Diesem Dienstkonto werden die folgenden Rollen zugewiesen:
- Mit
roles/alloydb.client kann die Toolbox auf AlloyDB-Datenbanken zugreifen.
-
roles/serviceusage.serviceUsageConsumer ermöglicht der Toolbox die Nutzung von Diensten.
- Mit
roles/secretmanager.secretAccessor kann die Toolbox in Secret Manager gespeicherte Secrets abrufen.
-
Führen Sie zum Schließen des neuen Tabs den folgenden Befehl aus:
exit
Dienstkonto-Toolbox-Identität erstellen
Aufgabe 5: OAuth-Zustimmungsbildschirm registrieren
In dieser Aufgabe registrieren Sie den OAuth-Zustimmungsbildschirm, den angemeldete Nutzer sehen.
Wenn Sie für die Autorisierung OAuth 2.0 verwenden, zeigt Google einen Zustimmungsbildschirm an, um die Zustimmung des Nutzers zur Weitergabe von Daten an die Anwendung einzuholen.
-
Wählen Sie in der Google Cloud Console das Navigationsmenü (
) und dann APIs und Dienste > OAuth-Zustimmungsbildschirm aus.
-
Klicken Sie auf Jetzt starten.
-
Geben Sie unter App-Name Cymbal Air ein.
-
Klicken Sie auf E‑Mail-Adresse für Nutzersupport, dann auf die E‑Mail-Adresse des Teilnehmers und anschließend auf Weiter.
-
Wählen Sie für Zielgruppe die Option Intern aus und klicken Sie auf Weiter.
Nutzer mit Zugriff auf das Projekt sollten sich in der App anmelden können.
-
Kopieren Sie im linken Bereich der Lab-Anleitung den Nutzernamen.

-
Fügen Sie unter Kontaktdaten den kopierten Nutzernamen ein.
-
Klicken Sie auf Weiter.
-
Aktivieren Sie das Kästchen, um der Richtlinie zu Nutzerdaten zuzustimmen, und klicken Sie auf Weiter und dann auf Erstellen.
Der Zustimmungsbildschirm ist jetzt eingerichtet.
Aufgabe 6: Client-ID für die Anwendung erstellen
In dieser Aufgabe erstellen Sie eine Client-ID für die Anwendung.
Die Anwendung benötigt eine Client-ID, um den OAuth-Dienst von Google nutzen zu können. Sie konfigurieren die zulässigen Ursprünge, von denen diese Anfrage gestellt werden kann, und einen Weiterleitungs-URI, an den die Webanwendung weitergeleitet wird, nachdem der Nutzer der Anmeldung zugestimmt hat.
-
Wählen Sie in der Google Cloud Console das Navigationsmenü (
) und dann APIs und Dienste > Anmeldedaten aus.
-
Klicken Sie auf + Anmeldedaten erstellen und dann auf OAuth-Client-ID.
Eine Client-ID wird zur Identifizierung einer einzelnen Anwendung bei OAuth-Servern von Google verwendet.
-
Wählen Sie als Anwendungstyp die Option Webanwendung aus.
-
Geben Sie unter Name Cymbal Air ein.
Sie können den JavaScript-Ursprung und die Weiterleitungs-URI mit Cloud Shell generieren.
-
Klicken Sie in Cloud Shell auf Neuen Tab öffnen (+), um einen neuen Cloud Shell-Tab zu öffnen.
-
Führen Sie auf dem neuen Tab die folgenden Befehle aus, um den Ursprungs- und den Weiterleitung-URI abzurufen:
echo "origin:"; echo "https://8080-$WEB_HOST"; echo "redirect:"; echo "https://8080-$WEB_HOST/login/google"
-
Klicken Sie unter Autorisierte JavaScript-Quellen auf + URI hinzufügen.
Hinweis: Wählen Sie die Schaltfläche URI hinzufügen unter Autorisierte JavaScript-Quellen und nicht unter Autorisierte Weiterleitungs-URIs aus.
-
Kopieren Sie den Ursprungs-URI, der durch den echo-Befehl erstellt wurde, und fügen Sie ihn bei URIs 1 ein.
-
Klicken Sie unter Autorisierte Weiterleitungs-URIs auf + URI hinzufügen.
Hinweis: Dies ist die zweite Schaltfläche URI hinzufügen unter Autorisierte Weiterleitungs-URIs.
-
Kopieren Sie den Weiterleitungs-URI, der mit dem echo-Befehl erstellt wurde, und fügen Sie ihn bei URIs 1 ein.
-
Wechseln Sie zum Erstellen der Umgebungsvariable zum VM-SSH-Tab der Cloud Shell und fügen Sie den folgenden Befehl ein, ohne auf Eingabe zu klicken:
export CLIENT_ID=
Hinweis: Achten Sie darauf, dass Sie die Umgebungsvariable CLIENT_ID innerhalb der VM-Sitzung erstellen.
-
Klicken Sie im Fenster Anmeldedaten auf Erstellen.
Die Client-ID und der Clientschlüssel werden erstellt. Für diese Testanwendung benötigen Sie nur die Client-ID.
-
Klicken Sie auf Client-ID kopieren (
).
Die Client-ID wird in die Zwischenablage kopiert.
Hinweis: Die Client-ID kann auch auf der Seite Anmeldedaten kopiert werden.
-
Fügen Sie auf dem VM-SSH-Tab von Cloud Shell die Client-ID ein und drücken Sie die Eingabetaste.
Der Export sollte ungefähr so aussehen:
export CLIENT_ID=937631684809-q7hs2r191jbks7f7dopih2uafuknb92h.apps.googleusercontent.com
Client-ID für die Anwendung erstellen
Aufgabe 7: Toolbox in Cloud Run bereitstellen
In dieser Aufgabe stellen Sie MCP Toolbox in Cloud Run bereit.
Konfigurationsdatei für die Toolbox erstellen
Für die Toolbox wird eine tools.yaml-Beispieldatei bereitgestellt, aber es müssen einige Einstellungen geändert werden.
-
Führen Sie den folgenden Befehl aus, um die Konfigurationseinstellungen aufzurufen:
head -20 ~/cymbal-air-toolbox-demo/tools.yaml
Diese YAML-Datei enthält Konfigurationseinstellungen für die Datenbank und für OAuth.
Sie sollte in etwa so aussehen:
sources:
my-pg-instance:
kind: alloydb-postgres
project: retrieval-app-testing
region: us-central1
cluster: my-alloydb-cluster
instance: my-alloydb-instance
database: assistantdemo
user: postgres
password: postgres
authServices:
my_google_service:
kind: google
clientId: 706535509072-qa5v22ur8ik8o513b0538ufo0ne9jfn5.apps.googleusercontent.com
-
Führen Sie die folgenden Befehle aus, um die Einstellungen an Ihre Umgebung anzupassen:
export PROJECT="$(gcloud config get-value project)"
export REGION="{{{project_0.default_region | REGION }}}"
export CLUSTER="{{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}"
export INSTANCE="{{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}"
export DATABASE="{{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}"
export USER="{{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}"
export PASSWORD="{{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}"
export IP_TYPE="private"
sed \
-e "s/^\( *project:\).*$/\1 $PROJECT/" \
-e "s/^\( *region:\).*$/\1 $REGION/" \
-e "s/^\( *cluster:\).*$/\1 $CLUSTER/" \
-e "s/^\( *instance:\).*$/\1 $INSTANCE/" \
-e "s/^\( *database:\).*$/\1 $DATABASE/" \
-e "s/^\( *user:\).*$/\1 $USER/" \
-e "s/^\( *password:\).*$/\1 $PASSWORD\\n ipType: $IP_TYPE/" \
-e "s/^\( *clientId:\).*$/\1 $CLIENT_ID/" \
~/cymbal-air-toolbox-demo/tools.yaml > ~/tools.yaml
Bei diesen Befehlen wird „sed“ verwendet, um die spezifischen Einstellungen in der tools.yaml-Beispieldatei zu ersetzen. Außerdem wird unter der password-Zeile die ipType-Zeile hinzugefügt, da der Standard-IP-Adresstyp „öffentlich“ ist.
-
Führen Sie den folgenden Befehl aus, um die Dateiaktualisierungen zu sehen:
head -20 ~/tools.yaml
Oben in der Einstellungsdatei sind jetzt Ihre Werte enthalten.
Vertrauliche Einstellungen (insbesondere das Datenbankpasswort und die Client-ID) sollten als Secrets geschützt werden.
Secret für die Datei „tools.yaml“ erstellen
Statt vertrauliche Informationen in ein Code-Repository oder als Teil der laufenden Anwendung einzuchecken, können Sie Secret Manager verwenden, um Ihre Secrets zu schützen.
-
Führen Sie den folgenden Befehl aus, um ein Secret zu erstellen:
cd ~
gcloud secrets create tools --data-file=tools.yaml
-
Führen Sie den folgenden Befehl aus, um zu prüfen, ob das Secret gespeichert wurde:
gcloud secrets describe tools
Sie sollten jetzt sehen, dass es ein Secret namens „tools“ gibt.
Toolbox in Cloud Run bereitstellen
-
Führen Sie auf dem VM-SSH-Tab der Cloud Shell die folgenden Befehle aus, um die Toolbox in Cloud Run bereitzustellen:
export REGION={{{project_0.default_region | REGION }}}
export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}"
export IMAGE="us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$MCP_TOOLBOX_VERSION"
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region $REGION \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--network default \
--subnet default \
--no-allow-unauthenticated \
--quiet
Warten Sie, bis die Bereitstellung abgeschlossen ist.
-
Führen Sie den folgenden Befehl aus, um den Dienst zu prüfen:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(toolbox)" --format="value(URL)")
Wenn Sie die Meldung „Hello, World!“ sehen, ist der Dienst verfügbar und verarbeitet Anfragen.
Toolbox-Dienst bereitstellen
Aufgabe 8: Beispielanwendung ausführen
In dieser Aufgabe führen Sie eine Beispiel-Chatanwendung aus, die den Abrufdienst verwendet.
Anwendung ausführen
-
Führen Sie auf dem VM-SSH-Tab der Cloud Shell die folgenden Befehle aus, um zum Stammverzeichnis der Chatanwendung zurückzukehren:
source ~/.venv/bin/activate
cd ~/cymbal-air-toolbox-demo
Bevor Sie die Anwendung starten, müssen Sie einige Umgebungsvariablen festlegen. Für die grundlegende Funktionalität der Anwendung, einschließlich der Abfrage von Flügen und der Rückgabe von Flughafeneinrichtungen, ist eine Umgebungsvariable namens TOOLBOX_URL erforderlich, die die URL des Toolbox-Dienstes enthält, der in Cloud Run ausgeführt wird.
-
Führen Sie die folgenden Befehle aus, um die URL des Toolbox-Dienstes anzugeben:
export TOOLBOX_URL=$(gcloud run services list --filter="(toolbox)" --format="value(URL)")
echo $TOOLBOX_URL
Die Toolbox-URL wird von der lokalen Anwendung verwendet, um über MCP Toolbox auf Datenbanken zuzugreifen.
-
Führen Sie zum Starten der Anwendung folgenden Befehl aus:
python run_app.py
Die Antwort sollte in etwa so aussehen:
(.venv) student-03-d87d6b142a95@app-vm:~/cymbal-air-toolbox-demo$ python run_app.py
INFO: Started server process [26127]
INFO: Waiting for application startup.
Loading application...
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)
Die Anwendung wird jetzt ausgeführt.
Verbindung zur VM herstellen
Es gibt verschiedene Möglichkeiten, eine Verbindung zu der Anwendung herzustellen, die auf der VM ausgeführt wird. Sie können beispielsweise Port 8081 auf der VM mithilfe von Firewallregeln in der VPC öffnen oder einen Load Balancer mit einer öffentlichen IP-Adresse erstellen. Hier wird ein SSH-Tunnel zur VM verwendet, der den Cloud Shell-Port 8080 in den VM-Port 8081 übersetzt.
-
Klicken Sie in Cloud Shell auf Neuen Tab öffnen (+), um einen neuen Cloud Shell-Tab zu öffnen.
-
Führen Sie auf einem neuen Tab den folgenden Befehl aus, um einen SSH-Tunnel zum VM-Port zu erstellen:
gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}} -- -L localhost:8080:localhost:8081
Der gcloud-Befehl verbindet Localhost-Port 8080 in der Cloud Shell mit Port 8081 auf der VM. Die Fehlermeldung „Cannot assign requested address“ (Angeforderte Adresse kann nicht zugewiesen werden) können Sie ignorieren.
-
Wenn Sie die Anwendung im Webbrowser ausführen möchten, klicken Sie auf Webvorschau und wählen Sie dann Vorschau auf Port 8080 aus.

Im Browser wird ein neuer Tab geöffnet und die Anwendung wird ausgeführt. Die Cymbal Air-Anwendung zeigt die Meldung „Welcome to Cymbal Air! How may I assist you?“ an.
-
Geben Sie die folgende Abfrage ein:
When is the next flight to Los Angeles?
Die Anwendung antwortet mit dem nächsten Flug von SFO nach LAX oder bittet Sie um klärende Informationen.
-
Geben Sie die folgende Abfrage ein:
For that flight, which restaurants are near the departure gate?
Die Chat-App bittet Sie möglicherweise, den Flug zu präzisieren, aber die App kann den Kontext verstehen und mit Restaurants in der Nähe des Abfluggates in SFO antworten.
Aufgabe 9: In der Anwendung anmelden (optional)
In dieser Aufgabe melden Sie sich in der Anwendung an, um den Flug zu buchen.
-
Klicken Sie auf Sign in (Anmelden).
Ein Pop‑up-Fenster wird geöffnet.
-
Wählen Sie im Pop‑up-Fenster den Teilnehmer aus.
-
Klicken Sie auf Weiter, damit Cymbal Air auf die Informationen zum Teilnehmer zugreifen kann.
Das Teilnehmerkonto ist angemeldet.
-
Geben Sie die folgende Abfrage ein:
Please book that flight.
Die App zeigt den Flug an, über den gesprochen wurde.
-
Klicken Sie auf Looks good to me. Book it (Sieht gut aus. Bitte buchen).
Der Flug wird gebucht.
-
Geben Sie die folgende Abfrage ein:
Which flights have I booked?
Es wird der Flug angezeigt, den Sie gerade gebucht haben.
Die Chatanwendung kann dabei helfen, Fragen von Nutzern zu beantworten, wie etwa die folgenden:
- Gibt es in der Nähe von Gate D50 Luxusgeschäfte?
- Wo kann ich in der Nähe von Gate A6 einen Kaffee bekommen?
Die Anwendung nutzt die neuesten Foundation Models von Google, um Antworten zu generieren und sie mit Informationen zu Flügen und Flughafeneinrichtungen aus der operativen AlloyDB-Datenbank zu ergänzen. Weitere Informationen zu dieser Demoanwendung finden Sie auf der GitHub-Seite des Projekts.
Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Sie haben erfolgreich eine Chatanwendung erstellt, die Large Language Models (LLMs) und Retrieval Augmented Generation (RAG) nutzt, um ansprechende, informative Unterhaltungen zu führen.
Weitere Informationen
Lab beenden
Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Google Cloud Skills Boost entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.
Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.
Die Anzahl der Sterne hat folgende Bedeutung:
- 1 Stern = Sehr unzufrieden
- 2 Sterne = Unzufrieden
- 3 Sterne = Neutral
- 4 Sterne = Zufrieden
- 5 Sterne = Sehr zufrieden
Wenn Sie kein Feedback geben möchten, können Sie das Dialogfeld einfach schließen.
Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.
Anleitung zuletzt am 13. Oktober 2025 aktualisiert
Lab zuletzt am 13. Oktober 2025 getestet
© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.