1. บทนำ
ใน Codelab นี้ คุณจะเห็นขั้นตอนในการสรุปเนื้อหาที่อัปโหลดใน Google Cloud Storage โดยใช้โมเดลภาษาขนาดใหญ่ของ Vertex AI สำหรับการสร้างข้อความ ( text-bison) เป็น Cloud Function ใน Python รายการบริการที่ใช้มีดังนี้
- Vertex AI PaLM API: API โมเดลภาษาขนาดใหญ่ (LLM) ที่ให้สิทธิ์เข้าถึงโมเดล PaLM Text Bison ของ AI ของ Google
- Cloud Functions: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้ฟังก์ชันโดยไม่ต้องจัดการเซิร์ฟเวอร์
- Cloud Storage: บริการที่มีการจัดการสำหรับจัดเก็บข้อมูลที่ไม่มีโครงสร้าง
- Cloud Logging: บริการที่มีการจัดการครบวงจรซึ่งช่วยให้คุณจัดเก็บ ค้นหา วิเคราะห์ ตรวจสอบ และแจ้งเตือนเกี่ยวกับข้อมูลการบันทึกได้
สิ่งที่คุณจะสร้าง
คุณจะสร้างแอปพลิเคชันที่ทำให้ใช้งานได้เป็น Python Cloud Function เพื่อสรุปข้อความโดยใช้ Palm API
2. ข้อกำหนด
3. ก่อนเริ่มต้น
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมด (Cloud Storage API, Vertex AI API, Cloud Function API และ Cloud Logging) แล้ว
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
- จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน

หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดแล้วโดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- สร้างตัวแปรสภาพแวดล้อมสำหรับ REGION และ PROJECT_ID โดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Cloud Function เพื่อเรียกใช้ Vertex AI API
เราจะสร้าง Python Cloud Function และเรียกใช้ Vertex AI API ในฟังก์ชันนี้
การสร้างบัญชีบริการใหม่
สร้างบัญชีบริการใหม่โดยการเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล Cloud Shell
gcloud iam service-accounts create vertex-service-acc
หากต้องการให้สิทธิ์เข้าถึงโปรเจ็กต์และทรัพยากร ให้มอบบทบาทให้กับบัญชีบริการ
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer
หากต้องการให้บทบาทแก่บัญชี Google ที่ช่วยให้คุณใช้บทบาทของบัญชีบริการและแนบบัญชีบริการกับทรัพยากรอื่นๆ ได้ ให้เรียกใช้คำสั่งด้านล่าง แทนที่ USER_EMAIL ด้วยรหัสอีเมลบัญชี Google ของคุณ
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
PaLM API สำหรับข้อความเหมาะสำหรับงานที่ทำได้ด้วยการตอบกลับจาก API เพียงครั้งเดียวโดยไม่ต้องมีการสนทนาต่อเนื่อง มาสร้าง Cloud Function สำหรับฟีเจอร์นี้กันเลย
เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อโคลนที่เก็บและไปยังโปรเจ็กต์ (ใช้เทอร์มินัลเดียวกันที่เปิดในส่วนก่อนหน้า)
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
โฟลเดอร์ที่เราสนใจในโปรเจ็กต์นี้คือ summarization-gcs-cloudfunction
เปิด Cloud Shell Editor จากเทอร์มินัล แล้วตรวจสอบเนื้อหาของโฟลเดอร์โปรเจ็กต์ที่เพิ่งโคลนจาก GitHub ไปยังเครื่อง Cloud Shell
โฟลเดอร์นี้มีไฟล์ 2 ไฟล์ ได้แก่
- ไฟล์ Python main.py จะกำหนด Cloud Function HTTP อย่างง่ายที่ใช้โมเดลการสร้างข้อความของ Vertex AI เพื่อสร้างข้อมูลสรุปสั้นๆ ของอินพุตข้อความ ฟังก์ชันนี้รับอินพุตข้อความเป็นพารามิเตอร์และแสดงผลสรุปสั้นๆ ของอินพุต ฟังก์ชันนี้ใช้พารามิเตอร์ต่างๆ เพื่อควบคุมกระบวนการสร้าง เช่น ความคิดสร้างสรรค์ ความหลากหลาย และความคล่องแคล่วของข้อความที่สร้างขึ้น HTTP Cloud Function จะยอมรับออบเจ็กต์คำขอและแสดงผลสรุปของโมเดลเป็นการตอบกลับ
- ไฟล์ requirements.txt มีการขึ้นต่อกันของแพ็กเกจ
- functions-framework==3.: ช่วยให้มั่นใจว่าฟังก์ชันจะใช้ฟีเจอร์ล่าสุดและการแก้ไขข้อบกพร่องของ Functions Framework
- google-cloud-aiplatform: ต้องใช้เพื่อใช้โมเดลการสร้างข้อความ Vertex AI
- google-cloud-storage: ต้องใช้เพื่อสร้างที่เก็บข้อมูลใน Google Cloud Storage
- google-cloud-logging: ต้องใช้เพื่อสร้างบันทึก
5. ทำให้ฟังก์ชันใช้งานได้
- สร้าง Bucket ของ Cloud Storage 2 รายการ
- Bucket แรก: ระบบจะใช้ Bucket $BUCKET_NAME เพื่ออัปโหลดไฟล์ที่จะสรุป สร้างตัวแปรสภาพแวดล้อมเพื่อจัดเก็บชื่อ Bucket ดังนี้
export BUCKET_NAME='Your Bucket Name'
- Bucket ที่ 2: ระบบจะใช้ Bucket $BUCKET_NAME-summaries เพื่อจัดเก็บไฟล์สรุป
- เราจะใช้คำสั่ง gsutil เพื่อสร้างที่เก็บข้อมูล
- gsutil เป็นแอปพลิเคชัน Python ที่ช่วยให้คุณเข้าถึง Cloud Storage จากบรรทัดคำสั่งได้ คุณใช้ gsutil เพื่อทำงานด้านการจัดการ Bucket และออบเจ็กต์ได้หลากหลาย
- mb ย่อมาจาก "Make Bucket"
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- ตอนนี้เราพร้อมที่จะติดตั้งใช้งานฟังก์ชันแล้ว แต่ก่อนอื่น โปรดตรวจสอบว่าบัญชีบริการของ Cloud Storage Bucket มีบทบาทผู้เผยแพร่ Pub/Sub
- ไปที่ Google Cloud Storage แล้วคลิก "การตั้งค่า" ในแผงด้านซ้าย

- คัดลอก "บัญชีบริการ" จากการตั้งค่าและจดบันทึกไว้
- เปิด IAM และผู้ดูแลระบบจากเมนูการนำทางของคอนโซล Google Cloud

- ในแท็บสิทธิ์ ให้คลิกให้สิทธิ์เข้าถึง แล้วป้อนรหัสบัญชีบริการที่คุณจดไว้ในส่วน "หลักการใหม่" จากนั้นเลือกบทบาทเป็น "ผู้เผยแพร่ Pub/Sub" แล้วคลิกบันทึก

- ทำให้แหล่งข้อมูลนี้ใช้งานได้ใน Cloud Functions เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
- ตรวจสอบว่าคุณอยู่ในโฟลเดอร์ summarization-gcs-cloudfunction ในโปรเจ็กต์นี้
- เรียกใช้คำสั่งต่อไปนี้
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
- ในคอนโซล Google Cloud ให้ไปที่ Cloud Functions โดยทำดังนี้
คำสั่งนี้จะแสดง Cloud Function ของ vertex-ai-function ที่เราเพิ่งสร้างพร้อมกับ URL สาธารณะ เราจะใช้ฟังก์ชันนี้เพื่อสร้างทริกเกอร์ GCS
6. เรียกใช้ฟังก์ชัน
เมื่ออัปโหลดไฟล์ในที่เก็บข้อมูล $BUCKET_NAME* * ทริกเกอร์ GCS จะเรียกใช้ฟังก์ชัน Bucket $BUCKET_NAME"-summaries มีไฟล์สรุปที่มีชื่อเดียวกัน
ก่อนที่จะเริ่ม ให้บันทึกไฟล์ story.md ตัวอย่างจากโฟลเดอร์ summarization-gcs-cloudfunction ลงในเครื่องของคุณ
- ในคอนโซล Google Cloud ให้ไปที่ Cloud Storage
- เปิด
$BUCKET_NAMEที่เก็บข้อมูลจากรายการที่เก็บข้อมูล - คลิกอัปโหลดไฟล์ แล้วเลือกไฟล์ story.md
ระบบจะทริกเกอร์ฟังก์ชัน summarizeArticles และเริ่มสรุปเนื้อหาของไฟล์
- คลิกที่ Buckets ในแผงการนำทางด้านซ้าย
- เปิด
$BUCKET_NAME"-summariesบัคเก็ต
ไฟล์ story.md มีข้อมูลสรุปเนื้อหาของไฟล์
7. ล้างข้อมูล
โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
- หากต้องการเก็บโปรเจ็กต์ไว้และลบทรัพยากรเพียงบางส่วน ให้ไปที่คอนโซล Cloud Storage คลิกที่ที่เก็บข้อมูล จากนั้นเลือกที่เก็บข้อมูลที่ต้องการลบจากรายการ แล้วคลิกลบ
- นอกจากนี้ คุณยังลบ Cloud Function ได้โดยไปที่ Cloud Functions แล้วเลือกฟังก์ชันที่ต้องการลบจากรายการฟังก์ชัน จากนั้นคลิกลบ
8. ขอแสดงความยินดี
ยินดีด้วย คุณใช้ LLM การสร้างข้อความของ Vertex AI โดยอัตโนมัติเพื่อทำการสรุปข้อความในข้อมูลเรียบร้อยแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่มีได้ในเอกสารประกอบของผลิตภัณฑ์ LLM ของ Vertex AI