PaLM Vertex AI API ve Google Cloud Storage kullanarak içerik özeti için Cloud Functions işlevi

1. Giriş

Bu codelab'de, Python'da bir bulut işlevi olarak metin oluşturma için Vertex AI Büyük Dil Modeli'ni ( text-bison) kullanarak Google Cloud Storage'a yüklenen içerikleri özetleme adımlarını bulabilirsiniz. Kullanılan hizmetlerin listesi şunlardır:

  • Vertex AI PaLM API: Google Yapay Zeka'nın PaLM Metin Bison modeline erişim sağlayan büyük bir dil modeli (LLM) API'si.
  • Cloud Functions: Sunucuları yönetmek zorunda kalmadan işlevleri çalıştırmak için kullanılan sunucusuz platform.
  • Cloud Storage: Yapılandırılmamış verileri depolamak için yönetilen bir hizmet.
  • Cloud Logging: Günlük kaydı verilerini depolamanıza, aramanıza, analiz etmenize, izlemenize ve bunlar için uyarı yapmanıza olanak tanıyan, tümüyle yönetilen bir hizmet.

Neler oluşturacaksınız?

Palm API kullanarak metinleri özetlemek için Python Cloud Functions işlevi olarak dağıtılan bir uygulama oluşturacaksınız.

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ı nasıl kontrol edeceğinizi öğrenin.
  3. Tüm gerekli API'lerin (Cloud Storage API, Vertex AI API, Cloud Function API ve Cloud Logging) etkinleştirildiğinden emin olun
  4. 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.
  5. 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 cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.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=us-central1

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 aşağıdaki komutu çalıştırın. USER_EMAIL yerine Google Hesabı e-posta kimliğinizi yazın.

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

Metinler için PaLM API, 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.

Depoyu klonlamak ve projeye gitmek için Cloud Shell'de aşağıdaki komutları yürütün (önceki bölümde açılan aynı terminali kullanın):

git clone https://github.com/rominirani/genai-apptemplates-googlecloud

cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction

Bu projede önem verdiğimiz klasör şudur: summarization-gcs-cloudfunction.

Terminalden Cloud Shell Düzenleyici'yi açın ve github'dan Cloud Shell makinenize yeni klonlanan proje klasörünün içeriğini kontrol edin.

Bu klasörde 2 dosya var:

  1. main.py 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.
  2. requirements.txt dosyasında paket bağımlılıkları bulunur:
  • 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.
  • google-cloud-storage: Google Cloud Storage'da depolama alanı paketleri oluşturmak için gereklidir.
  • google-cloud-logging: Günlük oluşturmak için gereklidir.

5. İşlevi Dağıtma

  1. İki Cloud Storage paketi oluşturun:
  • İlk paket: Özetlenecek dosyaları yüklemek için $BUCKET_NAME paketi kullanılır. Paket adınızı aşağıdaki gibi depolamak için ortam değişkenini oluşturun:
export BUCKET_NAME='Your Bucket Name'
  • İkinci paket: $BUCKET_NAME-summaries paketi, özetlenen dosyayı depolamak için kullanılır.
  • Paketleri oluşturmak için gsutil komutunu kullanacağız:
  • gsutil, komut satırından Cloud Storage'a erişmenizi sağlayan bir Python uygulamasıdır. gsutil'i çok çeşitli paket ve nesne yönetimi görevlerini gerçekleştirmek için kullanabilirsiniz.
  • mb, "Paket Oluştur" anlamına gelir
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. Bu noktada, işlevi dağıtmaya hazırız. Ancak öncesinde Cloud Storage Paketi hizmet hesabının Pub/Sub Yayıncı rolüne sahip olduğundan emin olun.
  2. Google Cloud Storage'a gidin ve sol bölmede "Ayarlar"ı tıklayın.

8ce34eb05153abf2.png

  1. "Hizmet hesabı"nı kopyalayın ve bunları not edin.
  2. Google Cloud Console gezinme menüsünden IAM ve Yönetici'yi açın.

c5a7103e90689684.png

  1. İzinler sekmesinde, ERİŞİM İZNİ VER'i tıklayın ve not ettiğiniz hizmet hesabı kimliğini Yeni ana hesaplar bölümünde girin ve "Pub/Sub Yayıncısı" rolü seçin. ve KAYDET'i tıklayın.

11c2df774fa740a9.png

  1. Bu kaynağı Cloud Functions'a dağıtın. Cloud Shell Terminal'den aşağıdaki komutu çalıştırın:
  2. Bu projedeki summarization-gcs-cloudfunction klasöründe olduğunuzdan emin olun.
  3. Aşağıdaki komutu yürütün:
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
  1. Google Cloud konsolunda Cloud Functions'a gidin:

Burada, herkese açık URL'siyle oluşturduğumuz tepe-ai işlevi Cloud Functions işlevi listelenir. Bu işlevi bir GCS tetikleyicisi oluşturmak için kullanacağız.

6. İşlevi çağırın

Bir dosya $BUCKET_NAME paketine* yüklendiğinde* GCS tetikleyicisi bu işlevi çağırır. $BUCKET_NAME"-summaries paketi, aynı ada sahip özetlenmiş dosyayı içerir.

Başlamadan önce, summarization-gcs-cloudfunction klasöründeki örnek story.md dosyasını yerel makinenize kaydedin.

  1. Google Cloud konsolunda Cloud Storage'a gidin.
  2. Paketler listesinden $BUCKET_NAME paketinizi açın.
  3. Dosyaları yükle'yi tıklayın ve story.md dosyasını seçin.

summarizeArticles işlevi tetiklenir ve dosyanın içeriğini özetlemeye başlar.

  1. Sol gezinme bölmesinde Paketler'i tıklayın.
  2. $BUCKET_NAME"-summaries paketinizi açın.

story.md dosyası, dosya içeriğinin bir özetini içerir.

7. 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 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 saklamak ve yalnızca bazı kaynakları silmek istiyorsanız Cloud Storage konsoluna gidin, Paketler'i tıklayın ve listeden silmek istediğiniz paketleri işaretleyin ve SİL'i tıklayın.
  5. Cloud Functions işlevini silmek için Cloud Functions'a gidin ve işlev listesinden silmek istediğiniz işlevi işaretleyip SİL'i tıklayın.

8. Tebrikler

Tebrikler! Verilerinizde metin özeti gerçekleştirmek için programatik olarak Vertex AI Metin Oluşturma LLM'sini 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.