แอปการสรุปข้อความที่มี Vertex AI และ Svelte Kit

1. บทนำ

ใน Codelab นี้ ฉันได้แสดงขั้นตอนในการสร้างเว็บแอปที่ช่วยให้คุณสรุปข้อความได้โดยใช้โมเดลภาษาขนาดใหญ่ของ Vertex AI สำหรับ API การสร้างข้อความ ( text-bison) ในเฟรมเวิร์ก Svelte Kit รายการบริการและชุดซอฟต์แวร์โครงสร้างพื้นฐานที่ใช้มีดังนี้

  1. Svelte Kit: เฟรมเวิร์กเว็บแอปพลิเคชันที่สร้างขึ้นบน Svelte
  2. Vertex AI PaLM 2 API: API โมเดลภาษาขนาดใหญ่ (LLM) ที่ให้สิทธิ์เข้าถึงโมเดล PaLM 2 ของ AI ของ Google
  3. Cloud Functions: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้ฟังก์ชันโดยไม่ต้องจัดการเซิร์ฟเวอร์
  4. Cloud Run: แพลตฟอร์มแบบ Serverless สำหรับเรียกใช้แอปพลิเคชันที่สร้างโดยใช้คอนเทนเนอร์

สิ่งที่คุณจะสร้าง

คุณจะสร้าง

  • ใช้ Cloud Function ของ Python เพื่อเรียกใช้ Palm API
  • เว็บแอปพลิเคชัน Svelte สำหรับอินเทอร์เฟซผู้ใช้เพื่อโต้ตอบกับ Vertex AI API ผ่าน Cloud Function
  • บริการ Cloud Run สำหรับการทำให้แอปที่สร้างไว้ข้างต้นใช้งานได้แบบ Serverless

2. ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

3. ก่อนเริ่มต้น

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าโปรเจ็กต์เปิดใช้การเรียกเก็บเงินแล้วหรือไม่
  3. คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud เพื่อโต้ตอบกับบริการของ Google Cloud โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell ที่มุมขวาบน

51622c00acec2fa.png

หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า

gcloud config set project <YOUR_PROJECT_ID>
  1. ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดแล้วโดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Cloud Shell
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. สร้างตัวแปรสภาพแวดล้อมสำหรับ 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 และเมื่อเทอร์มินัลโหลดแล้ว ให้คลิกปุ่มเปิดเครื่องมือแก้ไขอย่างรวดเร็วตามที่แสดงในรูปภาพด้านล่าง

8e501bd2c41d11b8.png

เมื่อเปิดโปรแกรมแก้ไขแล้ว คุณควรจะเห็นไฟล์ 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 โดยทำดังนี้

43a6b247098a9edb.png

ซึ่งจะแสดง 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

2958bb12343368a9.png

ติดตั้งใช้งานส่วนหน้าใน 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 กันเลย🤖

cd94442961bb5308.gif

6. ล้างข้อมูล

โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร
  2. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
  3. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
  4. หากต้องการเก็บโปรเจ็กต์ไว้และลบบริการ Cloud Run เพียงอย่างเดียว ให้ทำตามขั้นตอนที่นี่
  5. หากต้องการลบ Cloud Function หรือเพิกถอนสิทธิ์เข้าถึง คุณสามารถดำเนินการได้จากที่นี่

7. ขอแสดงความยินดี

ยินดีด้วย คุณใช้ Vertex AI PaLM2 API เพื่อทำการสรุปข้อความ สร้างเว็บแอป Svelte และทำให้ใช้งานได้ใน Cloud Functions โดยอัตโนมัติเรียบร้อยแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลที่มีได้ในเอกสารประกอบของผลิตภัณฑ์ LLM ของ Vertex AI