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 AI Google.
  • 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 dapat Anda gunakan untuk 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 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. Sekarang, mari kita buat Cloud Function untuknya.

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 perhatikan di project ini adalah: summarization-gcs-cloudfunction.

Buka Cloud Shell Editor dari terminal dan periksa isi 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 dari input teks. Fungsi ini menggunakan input teks sebagai parameter dan menampilkan ringkasan singkat dari input. Fungsi ini menggunakan berbagai parameter untuk mengontrol proses pembuatan, seperti kreativitas, keragaman, dan kelancaran teks yang dihasilkan. HTTP Cloud Function 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. Deploy Function

  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" (Buat 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, sebelumnya, 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 and Admin dari Navigation menu di Konsol Google Cloud.

c5a7103e90689684.png

  1. Di tab Izin, klik BERI AKSES dan masukkan ID Akun layanan yang Anda catat, di bagian New principals, 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::

Perintah 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. Panggil fungsi

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

Sebelum memulai, simpan file story.md contoh 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 kiri, klik Bucket.
  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 resources.
  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Hapus.
  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 Anda hapus, lalu klik HAPUS.
  5. Anda juga dapat menghapus Cloud Function dengan membuka Cloud Functions dan dari daftar fungsi, centang fungsi yang ingin Anda hapus, lalu klik HAPUS.

8. Selamat

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