1. บทนำ
ใน Codelab นี้ เราได้ระบุขั้นตอนการสร้างเว็บแอปที่ให้คุณสรุปข้อความโดยใช้ Vertex AI Large Language Model for Text Generation ( text-bison) API ในเฟรมเวิร์ก Svelte Kit รายชื่อบริการและชุดซอฟต์แวร์ที่ใช้มีดังนี้
- Svelte Kit: เฟรมเวิร์กเว็บแอปพลิเคชันที่สร้างขึ้นจาก Svelte
- Vertex AI PaLM 2 API: API โมเดลภาษาขนาดใหญ่ (LLM) ที่ให้สิทธิ์เข้าถึงโมเดล PaLM 2 ของ Google AI
- Cloud Functions: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้ฟังก์ชันโดยไม่ต้องจัดการเซิร์ฟเวอร์
- Cloud Run: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้แอปพลิเคชันที่สร้างโดยใช้คอนเทนเนอร์
สิ่งที่คุณจะสร้าง
คุณจะได้สร้าง
- มีการใช้ Cloud Function ของ Python เพื่อทำการเรียกใช้ MakePalm API
- เว็บแอปพลิเคชัน Svelte สำหรับอินเทอร์เฟซผู้ใช้ในการโต้ตอบกับ Vertex AI API ผ่าน Cloud Function
- บริการ Cloud Run เพื่อทำให้แอปที่สร้างขึ้นเหนือแบบ Serverless ใช้งานได้
2. ข้อกำหนด
3. ก่อนเริ่มต้น
- ใน Google Cloud Console ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud
- ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้ว
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud เพื่อโต้ตอบกับบริการของ Google Cloud ดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ คลิก "เปิดใช้งาน Cloud Shell" ที่มุมขวาบนจาก Cloud Console:
หากไม่ได้ตั้งค่าโปรเจ็กต์ไว้ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่าโปรเจ็กต์
gcloud config set project <YOUR_PROJECT_ID>
- ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดโดยเรียกใช้คำสั่งต่อไปนี้จาก Cloud Shell Terminal
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
เราจะสร้าง Cloud Function ของ Python และเรียกใช้ Vertex AI API ในฟังก์ชันนี้
การสร้างบัญชีบริการใหม่
สร้างบัญชีบริการใหม่โดยเรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell Terminal
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 สำหรับเขียน Cloud Function ของ Python และไฟล์ required.txt เพื่อจัดเก็บทรัพยากร Dependency
touch main.py requirements.txt
ไฟล์ Python นี้กำหนด HTTP Cloud Function แบบง่ายที่ใช้โมเดลการสร้างข้อความ Vertex AI เพื่อสร้างข้อมูลสรุปสั้นๆ ของอินพุตข้อความ ฟังก์ชันนี้จะใช้อินพุตข้อความเป็นพารามิเตอร์และแสดงผลสรุปสั้นๆ ของอินพุต ฟังก์ชันนี้ใช้พารามิเตอร์ที่หลากหลายในการควบคุมกระบวนการสร้าง เช่น ความคิดสร้างสรรค์ ความหลากหลาย และความคล่องแคล่วของข้อความที่สร้างขึ้น HTTP Cloud Function จะยอมรับออบเจ็กต์คำขอและแสดงผลข้อมูลสรุปของโมเดลเป็นการตอบกลับ
เปิด Google Cloud Editor คุณสามารถเปิดการดำเนินการนี้ได้โดยเปิดแท็บคอนโซล Google Cloud ใหม่ และคลิกที่ปุ่ม "เปิดใช้งานระบบคลาวด์" และเมื่อเทอร์มินัลโหลดแล้ว ให้คลิกที่ปุ่ม "เปิดเครื่องมือแก้ไข" อย่างรวดเร็วดังที่แสดงในรูปภาพด้านล่าง
เมื่อตัวแก้ไขเปิดขึ้น คุณควรเห็นไฟล์ main.py แทนที่เนื้อหาด้วยโค้ดจากลิงก์ที่เก็บนี้ คำอธิบายสำหรับโค้ดจะรวมอยู่ในความคิดเห็นโค้ด กล่าวโดยสรุป โค้ดนี้มอบวิธีที่กระชับในการสร้างสรุปอินพุตข้อความสั้นๆ โดยใช้ Vertex AI
ไฟล์ policies.txt มีทรัพยากร Dependency ของแพ็กเกจ: Functions-framework==3.*: ตรวจสอบว่าฟังก์ชันใช้ฟีเจอร์ล่าสุดและการแก้ไขข้อบกพร่องของเฟรมเวิร์กฟังก์ชัน google-cloud-aiplatform: จําเป็นเพื่อใช้โมเดลการสร้างข้อความ Vertex AI
เพิ่มไฟล์นี้ลงในไฟล์ประมาณ.txt
functions-framework==3.*
google-cloud-aiplatform
ทำให้ใช้งานได้กับ Cloud Functions
ตอนนี้เรามาทำให้ต้นทางนี้ใช้งานได้ใน Cloud Functions กัน เรียกใช้คำสั่งต่อไปนี้จาก Cloud Shell Terminal
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 สาธารณะของ 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 Function ที่สร้างขึ้นและจัดเก็บไว้ในส่วนก่อนหน้า
เปิด Cloud Editor และแก้ไขเนื้อหาของไฟล์ Dockerfile แทนที่ตัวแปร PUBLIC_FUNCTION_URL ด้วย URL ของ Cloud Function
ทำให้ฟรอนท์เอนด์ใช้งานได้กับ Cloud Run
เราจะใช้ Google Artifact Registry เพื่อสร้างและจัดเก็บอิมเมจ Docker Cloud Run ใช้เพื่อทำให้คอนเทนเนอร์ใช้งานได้ในสถาปัตยกรรมแบบ Serverless
สร้างที่เก็บ Artifact Registry โดยเรียกใช้คำสั่งด้านล่างใน Cloud Shell Terminal
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 Repository การติดแท็กอิมเมจ Docker ด้วยชื่อที่เก็บจะกำหนดค่าคำสั่งพุช Docker เพื่อพุชอิมเมจไปยังตำแหน่งที่เฉพาะเจาะจง
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 สำเร็จแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่พร้อมใช้งานได้ในเอกสารประกอบผลิตภัณฑ์ Vertex AI LLM