1. Einführung
In diesem Codelab finden Sie die Schritte zum Zusammenfassen von Inhalten, die in Google Cloud Storage hochgeladen wurden. Dabei wird das Large Language Model (LLM) von Vertex AI für die Textgenerierung (text-bison) als Cloud Functions-Funktion in Python verwendet. Liste der verwendeten Dienste:
- Vertex AI PaLM API: Eine LLM-API (Large Language Model), die Zugriff auf das PaLM Text Bison-Modell von Google AI bietet.
- Cloud Functions: Eine serverlose Plattform zum Ausführen von Funktionen, ohne dass Server verwaltet werden müssen.
- Cloud Storage: Ein verwalteter Dienst zum Speichern unstrukturierter Daten.
- Cloud Logging: Ein vollständig verwalteter Dienst, mit dem Sie Logging-Daten speichern, durchsuchen, analysieren, überwachen und melden können.
Aufgaben
Sie erstellen eine Anwendung, die als Python Cloud Functions-Funktion bereitgestellt wird, um Text mit der PaLM API zusammenzufassen.
2. Voraussetzungen
3. Hinweis
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Informationen zum Prüfen, ob die Abrechnung für ein Projekt aktiviert ist Informationen zum Prüfen, ob die Abrechnung für ein Projekt aktiviert ist.
- Achten Sie darauf, dass alle erforderlichen APIs (Cloud Storage API, Vertex AI API, Cloud Functions API und Cloud Logging) aktiviert sind.
- Sie verwenden die Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Informationen zu gcloud-Befehlen und ihrer Verwendung finden Sie in der Dokumentation.
- Klicken Sie in der Cloud Console in der oberen rechten Ecke auf „Cloud Shell aktivieren“:

Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
- Achten Sie darauf, dass alle erforderlichen APIs aktiviert sind, indem Sie den folgenden Befehl im Cloud Shell-Terminal ausführen:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- Erstellen Sie Umgebungsvariablen für REGION und PROJECT_ID, indem Sie den folgenden Befehl im Cloud Shell-Terminal ausführen:
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Cloud Functions-Funktion zum Aufrufen der Vertex AI API
Wir erstellen eine Python Cloud Functions-Funktion und rufen in dieser Funktion die Vertex AI API auf.
Neues Dienstkonto erstellen
Erstellen Sie ein neues Dienstkonto, indem Sie den folgenden Befehl im Cloud Shell-Terminal ausführen.
gcloud iam service-accounts create vertex-service-acc
Gewähren Sie dem Dienstkonto eine Rolle, um Zugriff auf Ihr Projekt und Ihre Ressourcen zu ermöglichen.
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer
Führen Sie den folgenden Befehl aus, um Ihrem Google-Konto eine Rolle zu gewähren, mit der Sie die Rollen des Dienstkontos verwenden und das Dienstkonto an andere Ressourcen anhängen können. Ersetzen Sie USER_EMAIL durch die E-Mail-Adresse Ihres Google-Kontos.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Python-Funktion erstellen
Die PaLM API für Text ist ideal für Aufgaben, die mit einer einzigen API-Antwort ausgeführt werden können, ohne dass eine kontinuierliche Unterhaltung erforderlich ist. Erstellen wir jetzt die Cloud Functions-Funktion dafür.
Führen Sie die folgenden Befehle in der Cloud Shell aus, um das Repository zu klonen und zum Projekt zu wechseln. Verwenden Sie dabei dasselbe Terminal, das Sie im vorherigen Abschnitt geöffnet haben:
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
Der Ordner, um den es in diesem Projekt geht, ist „summarization-gcs-cloudfunction“.
Öffnen Sie den Cloud Shell-Editor über das Terminal und prüfen Sie den Inhalt des Projektordners, der gerade von GitHub auf Ihren Cloud Shell-Computer geklont wurde.
Dieser Ordner enthält zwei Dateien:
- Die Python-Datei main.py definiert eine einfache HTTP Cloud Functions-Funktion, die ein Vertex AI-Modell zur Textgenerierung verwendet, um kurze Zusammenfassungen von Texteingaben zu erstellen. Die Funktion verwendet eine Texteingabe als Parameter und gibt eine kurze Zusammenfassung der Eingabe zurück. Die Funktion verwendet eine Vielzahl von Parametern, um den Generierungsprozess zu steuern, z. B. die Kreativität, Vielfalt und Flüssigkeit des generierten Texts. Die HTTP Cloud Functions-Funktion akzeptiert ein Anfrageobjekt und gibt die Zusammenfassung des Modells als Antwort zurück.
- Die Datei requirements.txt enthält Paketabhängigkeiten:
- functions-framework==3.: Sorgt dafür, dass die Funktion die neuesten Funktionen und Fehlerkorrekturen des Functions Framework verwendet.
- google-cloud-aiplatform: Erforderlich, um das Vertex AI-Modell zur Textgenerierung zu verwenden.
- google-cloud-storage::Erforderlich, um Speicher-Buckets in Google Cloud Storage zu erstellen.
- google-cloud-logging: Erforderlich, um Logs zu generieren.
5. Funktion implementieren
- Erstellen Sie zwei Cloud Storage-Buckets:
- Erster Bucket: Der $BUCKET_NAME Bucket wird verwendet, um die zusammenzufassenden Dateien hochzuladen. Erstellen Sie die Umgebungsvariable, um den Bucket-Namen so zu speichern:
export BUCKET_NAME='Your Bucket Name'
- Zweiter Bucket: Der $BUCKET_NAME-summaries Bucket wird verwendet, um die zusammengefasste Datei zu speichern.
- Wir verwenden den gsutil-Befehl, um die Buckets zu erstellen:
- gsutil ist eine Python-Anwendung, mit der Sie über die Befehlszeile auf Cloud Storage zugreifen können. Sie können gsutil für verschiedenste Bucket- und Objektverwaltungsaufgaben verwenden.
- „mb“ steht für „Make Bucket“ (Bucket erstellen).
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- Jetzt können wir die Funktion bereitstellen. Achten Sie aber vorher darauf, dass das Dienstkonto des Cloud Storage-Buckets die Rolle „Pub/Sub Publisher“ hat.
- Rufen Sie Google Cloud Storage auf und klicken Sie im linken Bereich auf „Einstellungen“.

- Kopieren Sie das „Dienstkonto“ aus den Einstellungen und notieren Sie es.
- Öffnen Sie im Navigationsmenü der Google Cloud Console „IAM und Verwaltung“.

- Klicken Sie auf dem Tab „Berechtigungen“ auf „ZUGRIFF GEWÄHREN“ und geben Sie im Abschnitt „Neue Hauptkonten“ die notierte Dienstkonto-ID ein. Wählen Sie als Rolle „Pub/Sub Publisher“ aus und klicken Sie auf „SPEICHERN“.

- Stellen Sie diese Quelle in Cloud Functions bereit. Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus:
- Achten Sie darauf, dass Sie sich in diesem Projekt im Ordner summarization-gcs-cloudfunction befinden.
- Führen Sie folgenden Befehl aus:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
- Wechseln Sie in der Google Cloud Console zu Cloud Functions :
Hier wird die gerade erstellte Cloud Functions-Funktion „vertex-ai-function“ mit ihrer öffentlichen URL aufgeführt. Wir verwenden diese Funktion, um einen GCS-Trigger zu erstellen.
6. Funktion aufrufen
Wenn eine Datei in den $BUCKET_NAME Bucket hochgeladen wird, ruft der GCS-Trigger die Funktion auf. Der $BUCKET_NAME"-summaries Bucket enthält die zusammengefasste Datei mit demselben Namen.
Speichern Sie vor Beginn die Beispieldatei story.md aus dem Ordner summarization-gcs-cloudfunction auf Ihrem lokalen Computer.
- Rufen Sie in der Google Cloud Console Cloud Storage auf.
- Öffnen Sie in der Liste der Buckets den Bucket
$BUCKET_NAME. - Klicken Sie auf „Dateien hochladen“ und wählen Sie die Datei story.md aus.
Die Funktion summarizeArticles wird ausgelöst und beginnt mit dem Zusammenfassen des Inhalts der Datei.
- Klicken Sie im linken Navigationsbereich auf „Buckets“.
- Öffnen Sie Ihren
$BUCKET_NAME"-summariesBucket.
Die Datei story.md enthält eine Zusammenfassung des Inhalts der Datei.
7. Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf „Löschen“.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf „Beenden“, um das Projekt zu löschen.
- Wenn Sie das Projekt behalten und nur einige Ressourcen löschen möchten, rufen Sie die Cloud Storage-Konsole auf, klicken Sie auf „Buckets“ und wählen Sie in der Liste die Buckets aus, die Sie löschen möchten. Klicken Sie dann auf „LÖSCHEN“.
- Sie können die Cloud Functions-Funktion auch löschen, indem Sie zu Cloud Functions wechseln, in der Liste der Funktionen die gewünschte Funktion auswählen und auf „LÖSCHEN“ klicken.
8. Glückwunsch
Glückwunsch! Sie haben ein Vertex AI-Modell zur Textgenerierung erfolgreich programmatisch verwendet, um eine Textzusammenfassung Ihrer Daten zu erstellen. Weitere Informationen zu den verfügbaren Modellen finden Sie in der Produktdokumentation zu Vertex AI LLM.