Vertex AI ve Svelte Kit içeren Text Summarizer uygulaması

1. Giriş

Bu codelab'de, Svelte Kit çerçevesinde metin oluşturma için Vertex AI Büyük Dil Modeli ( text-bison) API'sini kullanarak metin özetleme işlemi yapmanıza olanak tanıyan bir web uygulaması oluşturma adımları listelenmiştir. Kullanılan hizmetlerin ve teknoloji yığınının listesi:

  1. Svelte Kit: Svelte üzerine kurulu bir web uygulaması çerçevesi.
  2. Vertex AI PaLM 2 API: Google Yapay Zeka'nın PaLM 2 modeline erişim sağlayan büyük dil modeli (LLM) API'si.
  3. Cloud Functions: Sunucuları yönetmek zorunda kalmadan işlevleri çalıştırmak için kullanılan sunucusuz bir platform.
  4. Cloud Run: Container mimarisine alınmış uygulamaları çalıştırmak için kullanılan sunucusuz platform.

Ne oluşturacaksınız?

Oluşturacaklarınız

  • Palm API çağrısı yapmak için bir Python Cloud Functions işlevi kullanılır.
  • Kullanıcı arayüzünün Cloud Functions aracılığıyla Vertex AI API ile etkileşim kurmasını sağlayan bir Svelte web uygulaması
  • Yukarıda oluşturulan uygulamayı sunucusuz olarak dağıtmak için bir Cloud Run hizmeti

2. Şartlar

  • Chrome veya Firefox gibi bir tarayıcı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi

3. Başlamadan önce

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Bir projede faturalandırmanın etkin olup olmadığını kontrol etmeyi öğrenin.
  3. Google Cloud hizmetleriyle etkileşim kurmak için Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. gcloud komutları ve kullanımı için belgelere bakın. Cloud Console'da sağ üst köşedeki Cloud Shell'i etkinleştir'i tıklayın:

51622c00acec2fa.png

Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:

gcloud config set project <YOUR_PROJECT_ID>
  1. Cloud Shell Terminali'nden aşağıdaki komutu çalıştırarak gerekli tüm API'lerin etkinleştirildiğinden emin olun:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. Cloud Shell terminalinden aşağıdaki komutu çalıştırarak REGION ve PROJECT_ID için ortam değişkenleri oluşturun:
export PROJECT_ID=<your project id>

export REGION=asia-south1

4. Vertex AI API'yi çağıran Cloud Functions

Bu laboratuvarda bir Python Cloud Functions işlevi oluşturup bu işlevde Vertex AI API'yi çağıracağız.

Yeni hizmet hesabı oluşturma

Cloud Shell terminalinde aşağıdaki komutu çalıştırarak yeni bir hizmet hesabı oluşturun.

gcloud iam service-accounts create vertex-service-acc

Projenize ve kaynaklarınıza erişim izni vermek için hizmet hesabına bir rol atayın.

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

Google Hesabınıza, hizmet hesabının rollerini kullanmanıza ve hizmet hesabını diğer kaynaklara eklemenize olanak tanıyan bir rol atamak için. USER_EMAIL değerini Google Hesabı e-posta kimliğinizle değiştirin.

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 işlevini oluşturma

Metin için PaLM 2, sürekli iletişime gerek kalmadan tek bir API yanıtıyla tamamlanabilecek görevler için idealdir. Şimdi bunun için Cloud Functions işlevini oluşturalım.

Cloud Shell'i kullanarak yeni bir dizin oluşturun ve bu dizine gidin. (Önceki bölümde açılan terminali kullanın):

mkdir vertex-ai-functions

cd vertex-ai-functions

Python Cloud Functions işlevi yazmak için main.py dosyası, bağımlılıkları depolamak için requirements.txt dosyası oluşturun.

touch main.py requirements.txt

Bu Python dosyası, metin girişlerinin kısa özetlerini oluşturmak için Vertex AI Text Generation Model'i kullanan basit bir HTTP Cloud Function işlevini tanımlar. Bu işlev, parametre olarak metin girişi alır ve girişin kısa bir özetini döndürür. Bu işlev, oluşturma sürecini kontrol etmek için çeşitli parametreler (ör. oluşturulan metnin yaratıcılığı, çeşitliliği ve akıcılığı) kullanır. HTTP Cloud Functions işlevi, bir istek nesnesini kabul eder ve yanıt olarak modelin özetini döndürür.

Google Cloud Editor'ı açın. Yeni bir Google Cloud Console sekmesi açıp CLOUD SHELL'İ ETKİNLEŞTİR düğmesini tıklayarak ve terminal yüklendiğinde aşağıdaki resimde gösterildiği gibi DÜZENLEYİCİYİ AÇ düğmesini hızlıca tıklayarak bu düzenleyiciyi açabilirsiniz:

8e501bd2c41d11b8.png

Düzenleyici açıldıktan sonra main.py dosyasını görebilirsiniz. İçeriğini, bu kod deposundaki bağlantıdaki kodla değiştirin. Kodun açıklaması, kod yorumları olarak eklenir. Özetle, bu kod, Vertex AI'ı kullanarak metin girişlerinin kısa özetlerini oluşturmak için kısa bir yol sunar.

requirements.txt dosyasında paket bağımlılıkları var: functions-framework==3.*: İşlevin, Functions Framework'ün en yeni özelliklerini ve hata düzeltmelerini kullanmasını sağlar. google-cloud-aiplatform: Vertex AI Text Generation Model'i kullanmak için gereklidir.

Bunu requirements.txt dosyasına ekleyin:

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

Cloud Functions'a dağıtma

Şimdi bu kaynağı Cloud Functions'a dağıtalım. Cloud Shell terminalinde aşağıdaki komutu çalıştırın:

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

Arama çubuğunu kullanıp Cloud Functions Console'a gidin:

43a6b247098a9edb.png

Bu işlem, az önce oluşturduğumuz vertex-ai-function Cloud Functions işlevini listeler. İşlevin herkese açık URL'si, işlev sayfasında verilir. Bu, ön uç ile Vertex AI API'mizi bağlamak için kullanılır. Bu URL'yi saklayın. Ayrıca, temel alınan Cloud Run hizmetine kimliği doğrulanmamış erişime izin vermeniz de gerekebilir. Güvenlik amacıyla kimliği doğrulanmış hizmet kullanılması önerilir.

5. Ön ucu oluşturma ve dağıtma

Bu uygulama, Google Cloud Functions aracılığıyla Vertex AI API'mizle etkileşim kurmak için bir ön uç arayüzüyle birlikte gelir. Hemen oluşturalım.

Depoyu Klonlama ve Dockerfile'ı Ayarlama

Kök dizine gidin ve Git deposunu klonlayın.

cd ~/

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

cd  vertex-summarizer-svelte

Bu uygulamayı çalıştırmak için Dockerfile'a PUBLIC_FUNCTION_URL ortam değişkenini eklemeniz gerekir. Bu URL, önceki bölümde oluşturulan ve depolanan Cloud Function URL'sidir.

Cloud Editor'ı açın ve Dockerfile dosyasının içeriğini düzenleyin. PUBLIC_FUNCTION_URL değişkenini Cloud Functions URL'nizle değiştirin.

2958bb12343368a9.png

Ön ucu Cloud Run'a dağıtma

Docker görüntülerimizi oluşturmak ve depolamak için Google Artifact Registry'yi kullanacağız. Cloud Run, sunucusuz mimarideki container'ları dağıtmak için kullanılır.

Cloud Shell terminalinde aşağıdaki komutu çalıştırarak bir Artifact Registry deposu oluşturun:

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

Artifact Registry deposu URL'si için bir ortam değişkeni oluşturun.

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

Docker container'ı oluşturun ve Artifact Registry deposu konumuyla etiketleyin. Docker görüntüsünü bir depo adıyla etiketlemek, docker push komutunu görüntüyü belirli bir konuma gönderecek şekilde yapılandırır.

docker build . -t ${DOCKER_URL}

Görüntüyü Artifact Registry'ye aktarın.

docker push ${DOCKER_URL}

Docker container'ı Cloud Run'a dağıtın.

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

Yaay !! Vertex Summarizer çalışıyor. URL, Cloud Shell'de gösterilir. Vertex AI'ı keşfedip kullanmaya başlayabilirsiniz.🤖

cd94442961bb5308.gif

6. Temizleme

Bu yayında kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:

  1. Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
  2. Proje listesinde silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusunda proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.
  4. Projeyi saklamak ve yalnızca Cloud Run hizmetini silmek istiyorsanız buradaki adımı uygulayın.
  5. Yalnızca Cloud Functions işlevini silmek veya erişimi iptal etmek istiyorsanız bunu buradan yapabilirsiniz.

7. Tebrikler

Tebrikler! Metin özetleme işlemini programatik olarak gerçekleştirmek, Svelte web uygulaması oluşturmak ve Cloud Functions'ta dağıtmak için Vertex AI PaLM2 API'yi başarıyla kullandınız. Mevcut modeller hakkında daha fazla bilgi edinmek için Vertex AI LLM ürün dokümanlarına göz atın.