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 Vertex AI Large Language Model untuk pembuatan teks ( text-bison) sebagai fungsi cloud di Python. Daftar layanan yang digunakan adalah:

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

Yang akan Anda build

Anda akan membuat aplikasi yang di-deploy sebagai Python Cloud Function 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, yakni lingkungan command line yang berjalan di Google Cloud. Lihat dokumentasi untuk mengetahui perintah dan penggunaan gcloud.
  5. Dari Cloud Console, klik Activate Cloud Shell di pojok kanan atas:

51622c00acec2fa.pngS

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

gcloud config set project <YOUR_PROJECT_ID>
  1. Pastikan semua API yang diperlukan telah 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 Python Cloud Function 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 memberi Akun Google Anda peran 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 penting bagi kita dalam proyek 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 mengambil input teks sebagai parameter dan menampilkan ringkasan singkat input tersebut. 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 fungsi tersebut menggunakan fitur terbaru dan perbaikan bug 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 yang diringkas.
  • 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 untuk men-deploy fungsi. Namun sebelum itu, pastikan akun layanan Bucket Cloud Storage memiliki peran Pub/Sub Publisher.
  2. Buka Google Cloud Storage, lalu di panel kiri, klik "Settings".

8ce34eb05153abf2.pngS

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

c5a7103e90689684.png

  1. Pada tab Permissions, klik GRANT ACCESS dan masukkan Service account id yang sudah Anda catat, di bagian New principals dan pilih Role as "Pub/Sub Publisher" lalu klik SAVE.

11c2df774fa740a9.pngS

  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::

Langkah ini akan menampilkan fungsi Cloud Function verteks-ai yang baru saja dibuat 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 tersebut. Bucket $BUCKET_NAME"-summaries berisi file ringkasan dengan nama yang sama.

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

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

Fungsi summarizeArticles dipicu dan mulai meringkas isi file.

  1. Pada panel navigasi sebelah kiri, klik Buckets.
  2. Buka bucket $BUCKET_NAME"-summaries Anda.

File story.md menyertakan ringkasan isi file.

7. Pembersihan

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

  1. Di konsol Google Cloud, buka halaman Manage resource.
  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 dan dari daftar, centang bucket yang ingin dihapus, lalu klik DELETE.
  5. Anda juga dapat menghapus Cloud Function dengan membuka Cloud Functions. Dari daftar fungsi, centang fungsi yang ingin dihapus, lalu klik DELETE.

8. Selamat

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