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

หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดแล้วโดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- สร้างตัวแปรสภาพแวดล้อมสำหรับ REGION และ PROJECT_ID โดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
export PROJECT_ID=<your project id>
export REGION=asia-south1
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 2 สำหรับข้อความเหมาะสำหรับงานที่สามารถทำได้ด้วยการตอบกลับจาก API เพียงครั้งเดียว โดยไม่ต้องมีการสนทนาอย่างต่อเนื่อง มาสร้าง Cloud Function สำหรับฟีเจอร์นี้กันเลย
สร้างไดเรกทอรีใหม่โดยใช้ Cloud Shell แล้วไปที่ไดเรกทอรีนั้น (ใช้เทอร์มินัลเดียวกันกับที่เปิดในส่วนก่อนหน้า)
mkdir vertex-ai-functions
cd vertex-ai-functions
สร้างไฟล์ main.py สำหรับเขียน Python Cloud Function และไฟล์ requirements.txt สำหรับจัดเก็บการอ้างอิง
touch main.py requirements.txt
ไฟล์ Python นี้กำหนด Cloud Function HTTP อย่างง่ายที่ใช้โมเดลการสร้างข้อความ Vertex AI เพื่อสร้างข้อมูลสรุปสั้นๆ ของอินพุตข้อความ ฟังก์ชันนี้รับอินพุตข้อความเป็นพารามิเตอร์และแสดงผลสรุปสั้นๆ ของอินพุต ฟังก์ชันนี้ใช้พารามิเตอร์ต่างๆ เพื่อควบคุมกระบวนการสร้าง เช่น ความคิดสร้างสรรค์ ความหลากหลาย และความคล่องแคล่วของข้อความที่สร้างขึ้น HTTP Cloud Function จะยอมรับออบเจ็กต์คำขอและแสดงผลสรุปของโมเดลเป็นการตอบกลับ
เปิด Google Cloud Editor คุณเปิดได้โดยเปิดแท็บคอนโซล Google Cloud ใหม่ แล้วคลิกปุ่มเปิดใช้งาน Cloud Shell และเมื่อเทอร์มินัลโหลดแล้ว ให้คลิกปุ่มเปิดเครื่องมือแก้ไขอย่างรวดเร็วตามที่แสดงในรูปภาพด้านล่าง

เมื่อเปิดโปรแกรมแก้ไขแล้ว คุณควรจะเห็นไฟล์ main.py แทนที่เนื้อหาด้วยโค้ดจากที่เก็บนี้ ลิงก์ คำอธิบายสำหรับโค้ดจะรวมอยู่ในความคิดเห็นของโค้ด โดยสรุปแล้ว โค้ดนี้เป็นวิธีที่กระชับในการสร้างสรุปแบบสั้นของอินพุตข้อความโดยใช้ Vertex AI
ไฟล์ requirements.txt มีการขึ้นต่อกันของแพ็กเกจ: functions-framework==3.*: ตรวจสอบว่าฟังก์ชันใช้ฟีเจอร์ล่าสุดและการแก้ไขข้อบกพร่องของ Functions Framework google-cloud-aiplatform: ต้องใช้เพื่อใช้โมเดลการสร้างข้อความ Vertex AI
เพิ่มข้อความต่อไปนี้ลงในไฟล์ requirements.txt
functions-framework==3.*
google-cloud-aiplatform
ทำให้ใช้งานได้กับ Cloud Functions
ตอนนี้เรามาทำให้แหล่งข้อมูลนี้ใช้งานได้ใน Cloud Functions กัน เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
ใช้แถบค้นหาและไปที่คอนโซล Cloud Functions โดยทำดังนี้

ซึ่งจะแสดง Cloud Function vertex-ai-function ที่เราเพิ่งสร้างขึ้นพร้อมกับ URL สาธารณะของฟังก์ชันในหน้าฟังก์ชัน เราใช้สิ่งนี้เพื่อเชื่อมต่อส่วนหน้ากับ Vertex AI API จัดเก็บ URL นี้ นอกจากนี้ คุณอาจต้องอนุญาตให้เข้าถึงบริการ Cloud Run ที่อยู่เบื้องหลังโดยไม่ต้องมีการตรวจสอบสิทธิ์ด้วย เราขอแนะนำให้ใช้บริการที่ตรวจสอบสิทธิ์แล้วเพื่อวัตถุประสงค์ด้านความปลอดภัย
5. สร้างและทำให้ฟรอนท์เอนด์ใช้งานได้
แอปนี้มาพร้อมกับอินเทอร์เฟซส่วนหน้าเพื่อโต้ตอบกับ Vertex AI API ผ่าน Google Cloud Functions มาสร้างกันเลย
โคลนที่เก็บและตั้งค่า Dockerfile
ไปที่ไดเรกทอรีรากแล้วโคลนที่เก็บ git
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
หากต้องการเรียกใช้แอปพลิเคชันนี้ คุณต้องเพิ่มตัวแปรสภาพแวดล้อม PUBLIC_FUNCTION_URL ใน Dockerfile URL นี้คือ URL ของ Cloud Functions ที่สร้างและจัดเก็บไว้ในส่วนก่อนหน้า
เปิด Cloud Editor แล้วแก้ไขเนื้อหาของไฟล์ Dockerfile แทนที่ตัวแปร PUBLIC_FUNCTION_URL ด้วย URL ของ Cloud Function

ติดตั้งใช้งานส่วนหน้าใน Cloud Run
เราจะใช้ Google Artifact Registry เพื่อสร้างและจัดเก็บอิมเมจ Docker Cloud Run ใช้ในการทำให้คอนเทนเนอร์ใช้งานได้ในสถาปัตยกรรมแบบ Serverless
สร้างที่เก็บ Artifact Registry โดยเรียกใช้คำสั่งด้านล่างในเทอร์มินัล Cloud Shell
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
สร้างตัวแปรสภาพแวดล้อมสำหรับ URL ของที่เก็บ Artifact Registry
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
สร้างคอนเทนเนอร์ Docker และติดแท็กด้วยตำแหน่งที่เก็บ Artifact Registry การติดแท็กอิมเมจ Docker ด้วยชื่อที่เก็บจะกำหนดค่าคำสั่ง docker push เพื่อพุชอิมเมจไปยังตำแหน่งที่เฉพาะเจาะจง
docker build . -t ${DOCKER_URL}
พุชอิมเมจไปยัง Artifact Registry
docker push ${DOCKER_URL}
ทำให้ใช้งานคอนเทนเนอร์ Docker ใน Cloud Run ได้
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
เย้!! Vertex Summarizer พร้อมใช้งานแล้ว URL จะแสดงใน Cloud Shell ดังนั้นมาสำรวจและสนุกกับ Vertex AI กันเลย🤖

6. ล้างข้อมูล
โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
- หากต้องการเก็บโปรเจ็กต์ไว้และลบบริการ Cloud Run เพียงอย่างเดียว ให้ทำตามขั้นตอนที่นี่
- หากต้องการลบ Cloud Function หรือเพิกถอนสิทธิ์เข้าถึง คุณสามารถดำเนินการได้จากที่นี่
7. ขอแสดงความยินดี
ยินดีด้วย คุณใช้ Vertex AI PaLM2 API เพื่อทำการสรุปข้อความ สร้างเว็บแอป Svelte และทำให้ใช้งานได้ใน Cloud Functions โดยอัตโนมัติเรียบร้อยแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่มีได้ในเอกสารประกอบของผลิตภัณฑ์ LLM ของ Vertex AI