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

1. บทนำ

ใน Codelab นี้ เราได้ระบุขั้นตอนการสร้างเว็บแอปที่ให้คุณสรุปข้อความโดยใช้ Vertex AI Large Language Model for Text Generation ( text-bison) API ในเฟรมเวิร์ก Svelte Kit รายชื่อบริการและชุดซอฟต์แวร์ที่ใช้มีดังนี้

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

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

คุณจะได้สร้าง

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

2. ข้อกำหนด

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

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

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

51622c00acec2fa.png

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

gcloud config set project <YOUR_PROJECT_ID>
  1. ตรวจสอบว่าได้เปิดใช้ API ที่จำเป็นทั้งหมดโดยเรียกใช้คำสั่งต่อไปนี้จาก Cloud Shell Terminal
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

เราจะสร้าง 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 ใหม่ และคลิกที่ปุ่ม "เปิดใช้งานระบบคลาวด์" และเมื่อเทอร์มินัลโหลดแล้ว ให้คลิกที่ปุ่ม "เปิดเครื่องมือแก้ไข" อย่างรวดเร็วดังที่แสดงในรูปภาพด้านล่าง

8e501bd2c41d11b8.png

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

43a6b247098a9edb.png

การดำเนินการนี้จะแสดงรายการ 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

2958bb12343368a9.png

ทำให้ฟรอนท์เอนด์ใช้งานได้กับ 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🤖

cd94442961bb5308.gif

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

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

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

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

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