1. Wprowadzenie
W tym ćwiczeniu znajdziesz instrukcje tworzenia aplikacji internetowej, która umożliwia podsumowywanie tekstu za pomocą interfejsu API dużego modelu językowego (LLM) Vertex AI do generowania tekstu (text-bison) w ramach Svelte Kit. Lista używanych usług i stos technologiczny:
- Svelte Kit: platforma do tworzenia aplikacji internetowych oparta na Svelte.
- Vertex AI PaLM 2 API: interfejs API dużego modelu językowego (LLM), który zapewnia dostęp do modelu PaLM 2 od Google AI.
- Cloud Functions: bezserwerowa platforma do uruchamiania funkcji bez konieczności zarządzania serwerami.
- Cloud Run: platforma bezserwerowa do uruchamiania aplikacji skonteneryzowanych.
Co utworzysz
Utworzysz
- Funkcja w Cloud Functions w Pythonie służy do wywoływania interfejsu Palm API.
- Aplikacja internetowa Svelte do interfejsu użytkownika, która umożliwia interakcję z interfejsem Vertex AI API za pomocą funkcji w Cloud Functions
- usługa Cloud Run do bezserwerowego wdrażania utworzonej powyżej aplikacji;
2. Wymagania
3. Zanim zaczniesz
- W konsoli Google Cloud na stronie selektora projektu wybierz lub utwórz projekt Google Cloud.
- Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie włączone są płatności
- Do interakcji z usługami Google Cloud będziesz używać Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud. Informacje o poleceniach gcloud i ich użyciu znajdziesz w dokumentacji. W konsoli Cloud kliknij Aktywuj Cloud Shell w prawym górnym rogu:

Jeśli projekt nie jest ustawiony, użyj tego polecenia, aby go ustawić:
gcloud config set project <YOUR_PROJECT_ID>
- Sprawdź, czy wszystkie niezbędne interfejsy API są włączone. W tym celu uruchom w terminalu Cloud Shell to polecenie:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Utwórz zmienne środowiskowe REGION i PROJECT_ID, uruchamiając to polecenie w terminalu Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Funkcja w Cloud Functions do wywoływania interfejsu Vertex AI API
Utworzymy funkcję w Cloud Functions w Pythonie i wywołamy w niej interfejs Vertex AI API.
Tworzenie nowego konta usługi
Utwórz nowe konto usługi, wykonując to polecenie w terminalu Cloud Shell.
gcloud iam service-accounts create vertex-service-acc
Aby przyznać dostęp do projektu i jego zasobów, przypisz rolę do konta usługi.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
Aby przyznać kontu Google rolę, która umożliwia korzystanie z ról konta usługi i dołączanie go do innych zasobów. Zastąp USER_EMAIL adresem e-mail konta Google.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Tworzenie funkcji w Pythonie
Model PaLM 2 do tekstu idealnie nadaje się do zadań, które można wykonać za pomocą jednej odpowiedzi z API bez potrzeby prowadzenia ciągłej rozmowy. Utwórzmy teraz funkcję w Cloud Functions.
Utwórz nowy katalog za pomocą Cloud Shell i przejdź do niego. (użyj tego samego terminala, który został otwarty w poprzedniej sekcji):
mkdir vertex-ai-functions
cd vertex-ai-functions
Utwórz plik main.py do pisania funkcji Cloud Functions w Pythonie i plik requirements.txt do przechowywania zależności.
touch main.py requirements.txt
Ten plik Pythona definiuje prostą funkcję HTTP w Cloud Functions, która używa modelu generowania tekstu Vertex AI do tworzenia krótkich podsumowań danych wejściowych. Funkcja przyjmuje tekst jako parametr i zwraca jego krótkie podsumowanie. Funkcja wykorzystuje różne parametry do kontrolowania procesu generowania, takie jak kreatywność, różnorodność i płynność wygenerowanego tekstu. Funkcja HTTP w Cloud Functions przyjmuje obiekt żądania i zwraca podsumowanie modelu jako odpowiedź.
Otwórz edytor Google Cloud. Aby go otworzyć, otwórz nową kartę konsoli Google Cloud i kliknij przycisk AKTYWUJ CLOUD SHELL. Gdy wczyta się terminal, szybko kliknij przycisk OTWIERANIE EDYTORA, jak pokazano na ilustracji poniżej:

Po otwarciu edytora powinien być widoczny plik main.py. Zastąp jego zawartość kodem z tego repozytorium – link. Wyjaśnienie kodu jest zawarte w komentarzach do kodu. Podsumowując, ten kod umożliwia zwięzłe generowanie krótkich podsumowań danych wejściowych w postaci tekstu za pomocą Vertex AI.
Plik requirements.txt zawiera zależności pakietów: functions-framework==3.*: Zapewnia, że funkcja korzysta z najnowszych funkcji i poprawek błędów w Functions Framework. google-cloud-aiplatform: wymagane do korzystania z modelu generowania tekstu Vertex AI.
Dodaj ten wiersz do pliku requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Wdrażanie w Cloud Functions
Teraz wdróżmy to źródło w Cloud Functions. Uruchom to polecenie w terminalu Cloud Shell:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
Użyj paska wyszukiwania i otwórz konsolę Cloud Functions:

Wyświetli to utworzoną właśnie funkcję w Cloud Functions vertex-ai-function wraz z jej publicznym adresem URL na stronie funkcji. Używamy go do łączenia interfejsu i interfejsu Vertex AI API. Zapisz ten adres URL. Może też być konieczne zezwolenie na dostęp bez uwierzytelniania do bazowej usługi Cloud Run. Ze względów bezpieczeństwa zalecamy korzystanie z uwierzytelnionej usługi.
5. Kompilowanie i wdrażanie frontendu
Ta aplikacja ma interfejs frontendowy, który umożliwia korzystanie z interfejsu Vertex AI API za pomocą Cloud Functions. Utwórzmy go.
Klonowanie repozytorium i konfigurowanie pliku Dockerfile
Przejdź do katalogu głównego i sklonuj repozytorium Git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Aby uruchomić tę aplikację, musisz dodać zmienną środowiskową PUBLIC_FUNCTION_URL w pliku Dockerfile. Ten adres URL to adres URL funkcji w Cloud Functions utworzony i zapisany w poprzedniej sekcji.
Otwórz edytor Cloud i zmień zawartość pliku Dockerfile. Zastąp zmienną PUBLIC_FUNCTION_URL adresem URL funkcji w Cloud Functions.

Wdrażanie frontendu w Cloud Run
Do tworzenia i przechowywania obrazów Dockera będziemy używać Google Artifact Registry. Cloud Run służy do wdrażania kontenerów w architekturze bezserwerowej.
Utwórz repozytorium Artifact Registry, uruchamiając w terminalu Cloud Shell to polecenie:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Utwórz zmienną środowiskową dla adresu URL repozytorium Artifact Registry.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Utwórz kontener Dockera i dodaj do niego tag z lokalizacją repozytorium Artifact Registry. Dodanie do obrazu Dockera tagu z nazwą repozytorium spowoduje, że polecenie docker push prześle obraz do określonej lokalizacji.
docker build . -t ${DOCKER_URL}
Prześlij obraz do Artifact Registry.
docker push ${DOCKER_URL}
wdrożyć kontener Dockera w Cloud Run,
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
Hurra! Podsumowywarka Vertex działa. Adres URL pojawi się w Cloud Shell, więc możesz już odkrywać i wykorzystywać Vertex AI🤖.

6. Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby użyte w tym poście, wykonaj te czynności:
- W konsoli Google Cloud otwórz stronę Zarządzanie zasobami.
- Z listy projektów wybierz projekt do usunięcia, a potem kliknij Usuń.
- W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.
- Jeśli chcesz zachować projekt i usunąć tylko usługę Cloud Run, wykonaj krok opisany tutaj.
- Jeśli chcesz tylko usunąć funkcję Cloud Function lub cofnąć dostęp, możesz to zrobić tutaj.
7. Gratulacje
Gratulacje! Udało Ci się użyć interfejsu Vertex AI PaLM2 API do zautomatyzowanego podsumowywania tekstu, utworzyć aplikację internetową Svelte i wdrożyć ją w Cloud Functions. Więcej informacji o dostępnych modelach znajdziesz w dokumentacji produktu Vertex AI LLM.