App zur Textzusammenfassung mit Vertex AI und Svelte Kit

1. Einführung

In diesem Codelab habe ich die Schritte zum Erstellen einer Webanwendung aufgelistet, mit der Sie eine Textzusammenfassung mit Vertex AI Large Language Model für die Textgenerierung ( text-bison) API in einem Svelte Kit-Framework durchführen können. Liste der verwendeten Dienste und Technologie-Stacks:

  1. Svelte Kit: Ein Framework für Webanwendungen, das auf Svelte aufbaut.
  2. Vertex AI PaLM 2 API: Eine Large Language Model (LLM) API, die Zugriff auf das PaLM 2-Modell von Google AI bietet.
  3. Cloud Functions: Eine serverlose Plattform zum Ausführen von Funktionen, ohne Server verwalten zu müssen.
  4. Cloud Run: eine serverlose Plattform zum Ausführen von Containeranwendungen

Aufgaben

Sie erstellen

  • Python-Cloud Functions-Funktion wird für den Palm API-Aufruf verwendet
  • Eine Svelte-Webanwendung für die Benutzeroberfläche, um über die Cloud Functions-Funktion mit der Vertex AI API zu interagieren
  • Einen Cloud Run-Dienst, um die oben erstellte Anwendung serverlos bereitzustellen

2. Voraussetzungen

  • Ein Browser wie Chrome oder Firefox
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung

3. Hinweis

  1. Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Prüfen, ob die Abrechnung für ein Projekt aktiviert ist
  3. Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird, um mit den Google Cloud-Diensten zu interagieren. Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation. Klicken Sie in der Cloud Console oben rechts auf „Cloud Shell aktivieren“:

51622c00acec2fa.png

Wenn Ihr Projekt noch nicht eingerichtet ist, verwenden Sie den folgenden Befehl, um es festzulegen:

gcloud config set project <YOUR_PROJECT_ID>
  1. Prüfen Sie, ob alle erforderlichen APIs aktiviert sind. Führen Sie dazu den folgenden Befehl im Cloud Shell-Terminal aus:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. Erstellen Sie Umgebungsvariablen für REGION und PROJECT_ID. Führen Sie dazu den folgenden Befehl im Cloud Shell-Terminal aus:
export PROJECT_ID=<your project id>

export REGION=asia-south1

4. Cloud Functions-Funktion zum Aufrufen der Vertex AI API

Wir erstellen eine Cloud Functions-Funktion für Python und rufen in dieser Funktion die Vertex AI API auf.

Neues Dienstkonto erstellen

Erstellen Sie ein neues Dienstkonto. Führen Sie dazu den folgenden Befehl im Cloud Shell-Terminal aus.

gcloud iam service-accounts create vertex-service-acc

Weisen Sie dem Dienstkonto eine Rolle zu, um Zugriff auf Ihr Projekt und Ihre Ressourcen zu gewähren.

gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer

Sie weisen Ihrem Google-Konto eine Rolle zu, 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-ID 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

PaLM 2 für Text ist ideal für Aufgaben, die mit einer einzigen API-Antwort abgeschlossen werden können, ohne dass eine kontinuierliche Unterhaltung erforderlich ist. Erstellen wir jetzt die Cloud Functions-Funktion dafür.

Erstellen Sie mit Cloud Shell ein neues Verzeichnis und rufen Sie es auf. (verwenden Sie dasselbe Terminal, das im vorherigen Abschnitt geöffnet wurde):

mkdir vertex-ai-functions

cd vertex-ai-functions

Erstellen Sie eine main.py-Datei zum Schreiben der Python-Cloud Functions-Funktion und die Datei „requirements.txt“ zum Speichern von Abhängigkeiten.

touch main.py requirements.txt

Diese Python-Datei definiert eine einfache HTTP-Funktion von Cloud Functions, die ein Textgenerierungsmodell von Vertex AI verwendet, um kurze Zusammenfassungen von Texteingaben zu generieren. 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 Erstellungsprozess zu steuern, z. B. die Kreativität, Vielfalt und Sprachkompetenz des generierten Textes. Die Cloud Functions-HTTP-Funktion akzeptiert ein Anfrageobjekt und gibt die Zusammenfassung des Modells als Antwort zurück.

Öffnen Sie den Google Cloud Editor. Öffnen Sie dazu einen neuen Tab in der Google Cloud Console und klicken Sie auf CLOUD SHELL AKTIVIEREN. Wenn das Terminal geladen wird, klicken Sie schnell auf die Schaltfläche EDITOR ÖFFNEN, wie in der folgenden Abbildung dargestellt:

8e501bd2c41d11b8.png

Im Editor sollte die Datei "main.py" zu sehen sein. Ersetzen Sie seinen Inhalt durch den Code aus diesem Repository-Link. Die Erläuterung des Codes ist in Form von Codekommentaren enthalten. Dieser Code bietet eine prägnante Möglichkeit, mit Vertex AI kurze Zusammenfassungen von Texteingaben zu generieren.

Die Datei „requirements.txt“ enthält Paketabhängigkeiten: Functions-framework==3.*: Stellt sicher, dass die Funktion die neuesten Funktionen und Fehlerkorrekturen des Functions Framework verwendet. google-cloud-aiplatform: Erforderlich, um das Vertex AI Text Generation Model zu verwenden.

Fügen Sie der Datei „requirements.txt“ Folgendes hinzu:

functions-framework==3.*
google-cloud-aiplatform

In Cloud Functions bereitstellen

Stellen wir diese Quelle nun in Cloud Functions bereit. Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus:

gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30

Verwenden Sie die Suchleiste und rufen Sie die Cloud Functions-Konsole auf:

43a6b247098a9edb.png

Daraufhin wird die soeben erstellte Cloud Functions-Funktion „vertex-ai-function“ mit ihrer öffentlichen URL auf der Funktionsseite angezeigt. Wir verwenden diese, um unser Frontend und die Vertex AI API zu verbinden. Diese URL speichern. Möglicherweise müssen Sie auch den zugrunde liegenden Cloud Run-Dienst für den nicht authentifizierten Zugriff zulassen. Aus Sicherheitsgründen wird die Verwendung eines authentifizierten Dienstes empfohlen.

5. Frontend erstellen und bereitstellen

Diese Anwendung hat eine Frontend-Schnittstelle, um über Google Cloud Functions mit unserer Vertex AI API zu interagieren. Jetzt erstellen wir sie.

Repository klonen und Dockerfile einrichten

Wechseln Sie in das Stammverzeichnis und klonen Sie das Git-Repository.

cd ~/

git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git

cd  vertex-summarizer-svelte

Zum Ausführen dieser Anwendung müssen Sie dem Dockerfile die Umgebungsvariable PUBLIC_FUNCTION_URL hinzufügen. Diese URL ist die URL der Cloud Functions-Funktion, die im vorherigen Abschnitt erstellt und gespeichert wurde.

Öffnen Sie den Cloud Editor und bearbeiten Sie den Inhalt der Dockerfile-Datei. Ersetzen Sie die Variable PUBLIC_FUNCTION_URL durch die URL Ihrer Cloud Functions-Funktion.

2958bb12343368a9.png

Frontend in Cloud Run bereitstellen

Wir verwenden Google Artifact Registry, um unsere Docker-Images zu erstellen und zu speichern. Cloud Run wird zum Bereitstellen der Container in einer serverlosen Architektur verwendet.

Erstellen Sie ein Artifact Registry-Repository. Führen Sie dazu den folgenden Befehl im Cloud Shell-Terminal aus:

gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}

Erstellen Sie eine Umgebungsvariable für die Artifact Registry-Repository-URL.

export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image

Erstellen Sie den Docker-Container und taggen Sie ihn mit dem Speicherort des Artifact Registry-Repositorys. Wenn Sie das Docker-Image mit einem Repository-Namen taggen, wird der Docker-Push-Befehl konfiguriert, um das Image an einen bestimmten Speicherort zu übertragen.

docker build . -t ${DOCKER_URL}

Übertragen Sie das Image per Push an Artifact Registry.

docker push ${DOCKER_URL}

Stellen Sie den Docker-Container in Cloud Run bereit.

gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}

Juhu!! Vertex Summarizer ist eingerichtet und wird ausgeführt. Die URL wird in Cloud Shell angezeigt. Vertex AI entdecken und nutzen 🤖.

cd94442961bb5308.gif

6. Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:

  1. Rufen Sie in der Google Cloud Console die Seite Ressourcen verwalten auf.
  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf „Löschen“.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie dann auf „Beenden“, um das Projekt zu löschen.
  4. Wenn Sie das Projekt behalten und nur den Cloud Run-Dienst löschen möchten, führen Sie diese Schritte aus.
  5. Wenn Sie die Cloud Functions-Funktion einfach löschen oder den Zugriff widerrufen möchten, können Sie dies hier tun.

7. Glückwunsch

Glückwunsch! Sie haben erfolgreich eine PaLM2-API von Vertex AI verwendet, um Textzusammenfassungen programmatisch durchzuführen, eine Svelte-Webanwendung zu erstellen und in Cloud Functions bereitzustellen. Weitere Informationen zu verfügbaren Modellen finden Sie in der Produktdokumentation zu Vertex AI LLM.