Cloud Function untuk perangkuman konten menggunakan PaLM Vertex AI API dan Google Cloud Storage

1. Pengantar

Dalam codelab ini, Anda dapat menemukan langkah-langkah untuk melakukan ringkasan konten yang diupload di Google Cloud Storage, menggunakan Model Bahasa Besar Vertex AI untuk pembuatan teks ( text-bison) sebagai fungsi cloud di Python. Daftar layanan yang digunakan adalah:

  • Vertex AI PaLM API: API model bahasa besar (LLM) yang menyediakan akses ke model PaLM Text Bison Google AI.
  • Cloud Functions: Platform serverless untuk menjalankan fungsi tanpa harus mengelola server.
  • Cloud Storage: Layanan terkelola untuk menyimpan data tidak terstruktur.
  • Cloud Logging: Layanan terkelola sepenuhnya yang memungkinkan Anda menyimpan, menelusuri, menganalisis, memantau, serta membuat pemberitahuan terkait data logging.

Yang akan Anda build

Anda akan membuat aplikasi yang di-deploy sebagai Cloud Function Python untuk meringkas teks menggunakan Palm API.

2. Persyaratan

  • Browser, seperti Chrome atau Firefox
  • Project Google Cloud yang mengaktifkan penagihan

3. Sebelum memulai

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
  3. Pastikan semua API yang diperlukan (Cloud Storage API, Vertex AI API, Cloud Function API, dan Cloud Logging) diaktifkan
  4. Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud. Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.
  5. Dari Cloud Console, klik Activate Cloud Shell di pojok kanan atas:

51622c00acec2fa.png

Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:

gcloud config set project <YOUR_PROJECT_ID>
  1. Pastikan semua API yang diperlukan diaktifkan dengan menjalankan perintah berikut dari Terminal Cloud Shell:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. Buat variabel Lingkungan untuk REGION dan PROJECT_ID dengan menjalankan perintah berikut dari Terminal Cloud Shell:
export PROJECT_ID=<your project id>

export REGION=us-central1

4. Cloud Function untuk memanggil Vertex AI API

Kita akan membuat Cloud Function Python dan memanggil Vertex AI API dalam fungsi ini.

Membuat Akun Layanan baru

Buat akun layanan baru dengan menjalankan perintah berikut di Terminal Cloud Shell.

gcloud iam service-accounts create vertex-service-acc

Untuk memberikan akses ke project dan resource Anda, berikan peran ke akun layanan.

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

Untuk memberikan peran ke Akun Google Anda yang memungkinkan Anda menggunakan peran akun layanan dan melampirkan akun layanan ke resource lain, jalankan perintah di bawah. Ganti USER_EMAIL dengan ID Email Akun Google Anda.

gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

Membuat fungsi Python

PaLM API untuk teks ideal untuk tugas yang dapat diselesaikan dengan satu respons API, tanpa perlu percakapan berkelanjutan. Mari kita buat Cloud Function untuknya sekarang.

Jalankan perintah berikut di Cloud Shell untuk meng-clone repositori dan membuka project (gunakan terminal yang sama yang dibuka di bagian sebelumnya):

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

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

Folder yang kita minati di sini dalam project ini adalah: summarization-gcs-cloudfunction.

Buka Cloud Shell Editor dari terminal dan periksa konten folder project yang baru saja di-clone dari GitHub ke mesin cloud shell Anda.

Folder ini berisi 2 file:

  1. File Python main.py menentukan Cloud Function HTTP sederhana yang menggunakan Model Pembuatan Teks Vertex AI untuk membuat ringkasan singkat input teks. Fungsi ini menggunakan input teks sebagai parameter dan menampilkan ringkasan singkat input. Fungsi ini menggunakan berbagai parameter untuk mengontrol proses pembuatan, seperti kreativitas, keberagaman, dan kelancaran teks yang dihasilkan. Cloud Function HTTP menerima objek permintaan dan menampilkan ringkasan model sebagai respons.
  2. File requirements.txt memiliki dependensi paket:
  • functions-framework==3.: Memastikan bahwa fungsi menggunakan fitur dan perbaikan bug terbaru dari Framework Functions.
  • google-cloud-aiplatform: Diperlukan untuk menggunakan Model Pembuatan Teks Vertex AI.
  • google-cloud-storage: Diperlukan untuk membuat bucket penyimpanan di Google Cloud Storage.
  • google-cloud-logging: Diperlukan untuk membuat log.

5. Men-deploy Fungsi

  1. Buat dua bucket Cloud Storage:
  • Bucket pertama: Bucket $BUCKET_NAME akan digunakan untuk mengupload file yang akan diringkas. Buat variabel lingkungan untuk menyimpan nama Bucket Anda sebagai berikut:
export BUCKET_NAME='Your Bucket Name'
  • Bucket kedua: Bucket $BUCKET_NAME-summaries akan digunakan untuk menyimpan file ringkasan.
  • Kita akan menggunakan perintah gsutil untuk membuat bucket:
  • gsutil adalah aplikasi Python yang memungkinkan Anda mengakses Cloud Storage dari command line. Anda dapat menggunakan gsutil untuk melakukan berbagai tugas pengelolaan bucket dan objek.
  • mb adalah singkatan dari "Make Bucket"
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. Pada tahap ini, kita siap men-deploy fungsi. Namun, sebelum itu, pastikan akun layanan Bucket Cloud Storage memiliki peran Pub/Sub Publisher.
  2. Buka Google Cloud Storage dan di panel kiri, klik "Setelan".

8ce34eb05153abf2.png

  1. Salin "Akun layanan" dari setelan dan catat.
  2. Buka IAM dan Admin dari menu Navigasi konsol Google Cloud.

c5a7103e90689684.png

  1. Di tab Izin, klik BERI AKSES dan masukkan ID akun layanan yang Anda catat, di bagian Akun utama baru, lalu pilih Peran sebagai "Pub/Sub Publisher" dan klik SIMPAN.

11c2df774fa740a9.png

  1. Deploy sumber ini ke Cloud Functions. Jalankan perintah berikut dari Terminal Cloud Shell:
  2. Pastikan Anda berada di folder summarization-gcs-cloudfunction dalam project ini.
  3. Jalankan perintah berikut:
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. Di konsol Google Cloud, buka Cloud Functions:

Tindakan ini akan mencantumkan Cloud Function vertex-ai-function yang baru saja kita buat dengan URL publiknya. Kita akan menggunakan fungsi ini untuk membuat pemicu GCS.

6. Memanggil fungsi

Saat file diupload di bucket $BUCKET_NAME, pemicu GCS akan memanggil fungsi. Bucket $BUCKET_NAME"-summaries menyertakan file ringkasan dengan nama yang sama.

Sebelum memulai, simpan file contoh story.md dari folder summarization-gcs-cloudfunction ke komputer lokal Anda.

  1. Di konsol Google Cloud, buka Cloud Storage.
  2. Buka bucket $BUCKET_NAME dari daftar bucket.
  3. Klik Upload file, lalu pilih file story.md.

Fungsi summarizeArticles dipicu dan mulai meringkas isi file.

  1. Di panel navigasi sebelah kiri, klik Bucket.
  2. Buka bucket $BUCKET_NAME"-summaries.

File story.md menyertakan ringkasan konten file.

7. Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam postingan ini, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Manage resources.
  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
  4. Jika Anda ingin menyimpan project dan hanya menghapus beberapa resource, buka konsol Cloud Storage, klik Buckets, lalu dari daftar, centang bucket yang ingin dihapus, lalu klik DELETE.
  5. Anda juga dapat menghapus Cloud Function dengan membuka Cloud Functions dan dari daftar fungsi, centang fungsi yang ingin dihapus, lalu klik HAPUS.

8. Selamat

Selamat! Anda telah berhasil menggunakan LLM Pembuatan Teks Vertex AI secara terprogram untuk melakukan ringkasan teks pada data Anda. Lihat dokumentasi produk LLM Vertex AI untuk mempelajari lebih lanjut model yang tersedia.