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

1. Giriş

Bu codelab'de, Svelte Kit çerçevesinde metin oluşturma ( text-bison) API için Vertex AI Large Language Model'i kullanarak metin özetleme işlemi yapmanızı sağlayacak bir web uygulaması geliştirme adımlarını listeledim. Kullanılan hizmetlerin ve teknoloji yığınının listesi:

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

Neler oluşturacaksınız?

Şöyle

  • MakePalm API çağrısı yapmak için bir Python Cloud Functions işlevi kullanılır
  • Kullanıcı arayüzünün, Cloud Functions üzerinden Vertex AI API ile etkileşime geçmesini sağlayan incelikli bir 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ından 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ı nasıl kontrol edeceğinizi öğrenin.
  3. Google Cloud hizmetleriyle etkileşime geçmek 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 ayarlanmadıysa ayarlamak için aşağıdaki komutu kullanın:

gcloud config set project <YOUR_PROJECT_ID>
  1. Cloud Shell terminalinden 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şkenlerini oluşturun:
export PROJECT_ID=<your project id>

export REGION=asia-south1

4. Vertex AI API'yi çağırmaya yarayan Cloud Functions işlevi

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

Yeni bir 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 sağlamak için hizmet hesabına bir rol verin.

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 vermek için. USER_EMAIL kısmını 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 konuşmaya gerek kalmadan tek bir API yanıtıyla tamamlanabilen görevler için idealdir. Şimdi bunun için Cloud Functions işlevini oluşturalım.

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

mkdir vertex-ai-functions

cd vertex-ai-functions

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

touch main.py requirements.txt

Bu Python dosyası, metin girişlerinin kısa özetlerini oluşturmak için Vertex AI Metin Oluşturma Modeli'ni kullanan basit bir HTTP Cloud Functions işlevini tanımlar. İşlev, parametre olarak bir metin girişini alır ve girişin kısa bir özetini döndürür. İşlev, oluşturma sürecini kontrol etmek için oluşturulan metnin yaratıcılığı, çeşitliliği ve akıcılığı gibi çeşitli parametreler kullanır. HTTP Cloud Functions işlevi, 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 bunu açabilirsiniz. Terminal yüklendiğinde, aşağıdaki resimde gösterildiği gibi hızlıca EDITOR'U AÇ düğmesini tıklayın:

8e501bd2c41d11b8.png

Düzenleyici açıldıktan sonra main.py dosyasını görebilirsiniz. İçeriğini, bu depo bağlantısındaki kodla değiştirin. Kodla ilgili açıklama, kod yorumları olarak eklenir. Özet olarak bu kod, Vertex AI'ı kullanarak metin girişlerinin kısa özetlerini oluşturmak için kısa ve öz bir yol sunar.

Demand.txt dosyasının paket bağımlılıkları vardır: Functions-framework==3.*: İşlevin, Functions Çerçevesi'nin en yeni özelliklerini ve hata düzeltmelerini kullanmasını sağlar. google-cloud-aiplatform: Vertex AI Metin Oluşturma Modeli'ni kullanmak için gereklidir.

Gereklilikler.txt dosyasına bunu ekleyin:

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

Cloud Functions'a dağıtma

Şimdi bu kaynağı Cloud Functions'a dağıtalım. Cloud Shell Terminal'den 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 kullanarak Cloud Functions konsoluna gidin:

43a6b247098a9edb.png

Bu işlemle, herkese açık URL'siyle az önce oluşturduğumuz tepe-ai işlevi Cloud Functions işlevi, işlev sayfasında listelenir. Bu bilgiyi, Frontend ve Vertex AI API'yi bağlamak için kullanırız. Bu URL'yi depola. Ayrıca temel Cloud Run hizmetine kimlik doğrulamasız erişim için izin vermeniz de gerekebilir. Kimlik doğrulaması yapılmış hizmeti kullanmanız, güvenlik amacıyla önerilir.

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

Bu uygulama, Google Cloud Functions üzerinden Vertex AI API'mizle etkileşime geçebileceğiniz bir ön uç arayüzüne sahiptir. Şimdi hesabı oluşturalım.

Kod Deposunu Klonlama ve Dockerfile'ı Kurma

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 Functions işlevi URL'sidir.

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

2958bb12343368a9.png

Ön Uç'u 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 Mimari'de container'ları dağıtmak için kullanılır.

Cloud Shell Terminal'de aşağıdaki komutu çalıştırarak Artifact Registry Deposu oluşturun:

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

Artifact Registry depo 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'ını derleyin ve Artifact Registry Repository konumuyla etiketleyin. Docker görüntüsünün depo adıyla etiketlenmesi, Docker push komutunun görüntüyü belirli bir konuma aktarmasını sağlar.

docker build . -t ${DOCKER_URL}

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

docker push ${DOCKER_URL}

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

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

Yaşasın!! Vertex Özetleyici çalışıyor. URL, Cloud Shell'de gösterileceği için Vertex AI'ı Keşfetme ve Kullanmaya Başlayın🤖

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 konsolunda Kaynakları yönetin sayfasına gidin
  2. Proje listesinden silmek istediğiniz projeyi seçin ve ardından Sil’i tıklayın
  3. İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın
  4. Projeyi tutmak ve yalnızca Cloud Run hizmetini silmek istiyorsanız buradaki adımları uygulayın.
  5. Cloud Functions işlevini silmek veya erişimi iptal etmek istiyorsanız bu işlemi buradan yapabilirsiniz.

7. Tebrikler

Tebrikler! Programlı bir şekilde metin özetlemesi yapmak, bir Svelte web uygulaması oluşturmak ve Cloud Functions'da 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 belgelerine göz atın.