จัดการโปรเจ็กต์ด้วย Google Chat, Vertex AI และ Firestore

บทแนะนำนี้จะแสดงวิธีสร้างแอป Google Chat ให้ทีมใช้จัดการโปรเจ็กต์ได้แบบเรียลไทม์ แอป Chat ใช้ Vertex AI ในการช่วยทีมเขียนเรื่องราวของผู้ใช้ (ซึ่งแสดงฟีเจอร์ของระบบซอฟต์แวร์จากมุมมองของผู้ใช้เพื่อให้ทีมพัฒนา) และ บอกเล่าเรื่องราวในฐานข้อมูล Firestore

  • การกล่าวถึงแอปการจัดการโครงการจะแจ้งให้แอปให้ความช่วยเหลือ
    รูปที่ 1 ชาตรีพูดคุยเรื่องการพัฒนาฟีเจอร์ในพื้นที่ใน Chat กับทีม การกล่าวถึงแอป Chat สำหรับการจัดการโครงการจะแจ้งให้แอป Chat มอบความช่วยเหลือ
  • การใช้คำสั่งเครื่องหมายทับ /createUserStory เพื่อสร้างเรื่องราว
    รูปที่ 2 ชาร์ลีสร้างเรื่องราวโดยใช้คำสั่งเครื่องหมายทับ /createUserStory
  • แอป Chat สำหรับการจัดการโปรเจ็กต์ใช้ Vertex AI ในการเขียนคำอธิบายเรื่องราว
    รูปที่ 3 แอป Chat สำหรับการจัดการโปรเจ็กต์ใช้ Vertex AI เขียนคำอธิบายเรื่องราวแล้วแชร์เรื่องราวในพื้นที่ทำงาน
  • ชาตรีสรุปรายละเอียดเรื่องราว
    รูปที่ 4 ชาลีคลิกแก้ไขเพื่อสรุปรายละเอียดเรื่องราว คำอธิบาย AI ถูกต้อง แต่ชุติพลต้องการรายละเอียดเพิ่มเติม ชาร์ลีจึงคลิกขยายเพื่อให้ Vertex AI เพิ่มข้อกำหนดลงในคำอธิบายเรื่องราว ชุติพลมอบหมายเรื่องราวให้ตนเอง ตั้งค่าสถานะเป็นเริ่มต้น เลือกลำดับความสำคัญและขนาดที่เหมาะสม จากนั้นคลิกบันทึก
  • การจัดการเรื่องราวทั้งหมดของผู้ใช้ในทีม
    รูปที่ 5 ชาลีจะดูและจัดการเรื่องราวของผู้ใช้ทั้งหมดของทีมได้ทุกเมื่อด้วยคำสั่งเครื่องหมายทับ /manageUserStories

ข้อกำหนดเบื้องต้น

วัตถุประสงค์

  • สร้างแอป Chat เพื่อจัดการโปรเจ็กต์ซอฟต์แวร์ที่ยืดหยุ่น
  • ช่วยผู้ใช้เขียนเรื่องราวของผู้ใช้ด้วยเครื่องมือเขียนเรื่องราว แบบ Generative AI ที่ขับเคลื่อนโดย Vertex AI ซึ่งมีดังนี้
    • สร้างและสร้างคำอธิบายเรื่องราวใหม่
    • ขยายคำอธิบายเรื่องราวจากโน้ตเพื่อทำตามข้อกำหนดต่างๆ ให้เสร็จสิ้น
    • ใช้ไวยากรณ์เพื่อแก้ไขการพิมพ์ผิด
  • อัปเดตงานให้เป็นปัจจุบันอยู่เสมอโดยการเขียนและอ่านจากฐานข้อมูล Firestore
  • ส่งเสริมการทำงานร่วมกันในพื้นที่ใน Chat โดยให้ผู้ใช้สร้าง แก้ไข มอบหมาย และเริ่มเรื่องราวจากการสนทนาได้โดยตรง

ผลิตภัณฑ์ที่ใช้

แอปการจัดการโปรเจ็กต์ใช้ผลิตภัณฑ์ Google Workspace และ Google Cloud ต่อไปนี้

  • Chat API: API สำหรับการพัฒนาแอป Google Chat ที่รับและตอบสนองต่อเหตุการณ์การโต้ตอบใน Chat เช่น ข้อความ แอปการจัดการโปรเจ็กต์ แอป Google Chat ใช้ Chat API เพื่อรับและ ตอบกลับเหตุการณ์การโต้ตอบ ที่ส่งจาก Chat รวมทั้งเพื่อกำหนดค่าแอตทริบิวต์ที่กำหนดลักษณะที่จะปรากฏใน Chat เช่น ชื่อและรูปโปรไฟล์
  • Vertex AI API: แพลตฟอร์ม Generative AI แอปการจัดการโปรเจ็กต์ แอป Google Chat ใช้ Vertex AI API ในการเขียนชื่อและคำอธิบายเรื่องราวของผู้ใช้
  • Firestore: ฐานข้อมูลเอกสารแบบ Serverless แอป Google Chat สำหรับจัดการโครงการใช้ Firebase เพื่อจัดเก็บข้อมูลเกี่ยวกับเรื่องราวของผู้ใช้
  • ฟังก์ชันระบบคลาวด์: บริการประมวลผลแบบ Serverless ที่ใช้ทรัพยากรน้อยที่ให้คุณสร้างฟังก์ชันแบบสแตนด์อโลนที่มีวัตถุประสงค์เดียว ซึ่งตอบสนองต่อเหตุการณ์การโต้ตอบใน Chat ได้โดยไม่ต้องจัดการเซิร์ฟเวอร์หรือสภาพแวดล้อมรันไทม์ แอป Google Chat สำหรับจัดการโปรเจ็กต์ใช้ Cloud Functions ในการโฮสต์ปลายทาง HTTP ที่ Chat ส่งเหตุการณ์การโต้ตอบไป ทั้งยังเป็นแพลตฟอร์มการประมวลผลเพื่อเรียกใช้ตรรกะที่ประมวลผลและตอบสนองต่อเหตุการณ์เหล่านี้

    Cloud Functions ใช้ผลิตภัณฑ์ Google Cloud ต่อไปนี้เพื่อสร้าง ประมวลผลเหตุการณ์การโต้ตอบ และโฮสต์ทรัพยากรในการประมวลผล

    • Cloud Build: แพลตฟอร์มการทำให้ใช้งานได้ การส่งมอบ และการผสานรวมอย่างต่อเนื่องที่มีการจัดการครบวงจร ซึ่งเรียกใช้บิลด์อัตโนมัติ
    • Pub/Sub: บริการรับส่งข้อความแบบไม่พร้อมกันและรองรับการปรับขนาดซึ่งแยกบริการที่สร้างข้อความจากบริการที่ประมวลผลข้อความเหล่านั้น
    • Cloud Run Admin API: สภาพแวดล้อมที่มีการจัดการครบวงจรสำหรับการเรียกใช้แอปที่สร้างโดยใช้คอนเทนเนอร์

สถาปัตยกรรม

สถาปัตยกรรมแอป Google Chat สำหรับจัดการโปรเจ็กต์จะได้รับและประมวลผลเหตุการณ์การโต้ตอบใน Chat ที่ปลายทาง HTTP และใช้ Vertex AI เพื่อช่วยเขียนเรื่องราวของผู้ใช้และจัดเก็บรายละเอียดเรื่องราวของผู้ใช้ไว้ในฐานข้อมูล Firestore แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของทรัพยากร Google Workspace และ Google Cloud ที่ใช้

แผนภาพสถาปัตยกรรมสำหรับแอป Google Chat สำหรับการจัดการโปรเจ็กต์

แอป Google Chat สำหรับการจัดการโปรเจ็กต์มีการทำงานดังนี้

  1. ผู้ใช้ส่งข้อความใน Chat และเรียกใช้แอป Google Chat สำหรับการจัดการโปรเจ็กต์โดยส่งข้อความโดยตรง พูดถึงในพื้นที่ทำงาน หรือป้อนคำสั่งเครื่องหมายทับ

  2. Chat จะส่งคำขอ HTTP แบบซิงโครนัสไปยังปลายทาง HTTP ของ Cloud Function

  3. แอปการจัดการโปรเจ็กต์ Google Chat จะดำเนินการกับคำขอ HTTP ดังนี้

    1. Vertex AI ช่วยเขียนหรืออัปเดตเรื่องราวของผู้ใช้

    2. ฐานข้อมูล Firestore จะจัดเก็บ เรียก อัปเดต หรือลบข้อมูลเรื่องราวของผู้ใช้

  4. Cloud Functions แสดงผลการตอบกลับ HTTP ไปยัง Chat ซึ่งจะแสดงให้ผู้ใช้เห็นเป็นข้อความหรือกล่องโต้ตอบ

เตรียมสภาพแวดล้อม

ส่วนนี้จะแสดงวิธีสร้างและกำหนดค่าโปรเจ็กต์ Google Cloud สำหรับแอป Chat

สร้างโปรเจ็กต์ Google Cloud

คอนโซล Google Cloud

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > IAM และผู้ดูแลระบบ > สร้างโปรเจ็กต์

    ไปที่ "สร้างโปรเจ็กต์"

  2. ในช่องชื่อโครงการ ให้ป้อนชื่อที่สื่อความหมายสำหรับโปรเจ็กต์ของคุณ

    ไม่บังคับ: หากต้องการแก้ไขรหัสโปรเจ็กต์ ให้คลิกแก้ไข คุณจะเปลี่ยนแปลงรหัสโปรเจ็กต์ไม่ได้หลังจากสร้างโปรเจ็กต์แล้ว ดังนั้นโปรดเลือกรหัสที่ตรงกับความต้องการตลอดอายุของโปรเจ็กต์

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

gcloud CLI

เข้าถึง Google Cloud CLI (`gcloud`) ในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ต่อไปนี้

  • Cloud Shell: หากต้องการใช้เทอร์มินัลออนไลน์กับ gcloud CLI ที่ตั้งค่าไว้แล้ว ให้เปิดใช้งาน Cloud Shell
    เปิดใช้งาน Cloud Shell
  • Local Shell: หากต้องการใช้สภาพแวดล้อมการพัฒนาภายใน ให้ติดตั้งและinitialize gcloud CLI
    หากต้องการสร้างโปรเจ็กต์ Cloud ให้ใช้คำสั่ง `gcloud project create`:
    gcloud projects create PROJECT_ID
    แทนที่ PROJECT_ID โดยตั้งค่ารหัสสำหรับโปรเจ็กต์ที่ต้องการสร้าง

เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์

คอนโซล Google Cloud

  1. ในคอนโซล Google Cloud ให้ไปที่การเรียกเก็บเงิน คลิก เมนู > การเรียกเก็บเงิน > โปรเจ็กต์ของฉัน

    ไปที่การเรียกเก็บเงินสำหรับโปรเจ็กต์ของฉัน

  2. ในส่วนเลือกองค์กร ให้เลือกองค์กรที่เชื่อมโยงกับโปรเจ็กต์ Google Cloud
  3. ในแถวโปรเจ็กต์ ให้เปิดเมนูการดำเนินการ () คลิกเปลี่ยนการเรียกเก็บเงิน แล้วเลือกบัญชีสำหรับการเรียกเก็บเงินใน Cloud
  4. คลิกตั้งค่าบัญชี

gcloud CLI

  1. หากต้องการแสดงบัญชีสำหรับการเรียกเก็บเงินที่ใช้ได้ ให้เรียกใช้คำสั่งต่อไปนี้
    gcloud billing accounts list
  2. ลิงก์บัญชีสำหรับการเรียกเก็บเงินกับโปรเจ็กต์ Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    แทนที่รายการต่อไปนี้

    • PROJECT_ID คือรหัสโปรเจ็กต์ของโปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่คุณต้องการเปิดใช้การเรียกเก็บเงิน
    • BILLING_ACCOUNT_ID คือรหัสบัญชีสำหรับการเรียกเก็บเงินที่จะลิงก์กับโปรเจ็กต์ Google Cloud

เปิดใช้ API

คอนโซล Google Cloud

  1. ในคอนโซล Google Cloud ให้เปิดใช้ Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API และ Cloud Run Admin API

    เปิดใช้ API

  2. ยืนยันว่าคุณเปิดใช้ API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่ถูกต้อง แล้วคลิกถัดไป

  3. ยืนยันว่าคุณเปิดใช้ API ที่ถูกต้อง แล้วคลิกเปิดใช้

gcloud CLI

  1. หากจำเป็น ให้ตั้งค่าโปรเจ็กต์ Cloud ปัจจุบันเป็นโปรเจ็กต์ที่คุณสร้างด้วยคำสั่ง gcloud config set project ดังนี้

    gcloud config set project PROJECT_ID
    

    แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ของโปรเจ็กต์ระบบคลาวด์ที่คุณสร้าง

  2. เปิดใช้ Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API และ Cloud Run Admin API ด้วยคำสั่ง gcloud services enable

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    run.googleapis.com
    

    Cloud Build, Pub/Sub และ Cloud Run Admin API เป็นข้อกำหนดเบื้องต้นของ Cloud Functions

การตรวจสอบสิทธิ์และการให้สิทธิ์

คุณไม่จำเป็นต้องกำหนดค่าการตรวจสอบสิทธิ์และการให้สิทธิ์เพื่อทำตามบทแนะนำนี้

ในการเรียกใช้ Firestore และ Vertex AI API บทแนะนำนี้จะใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันที่มีบัญชีบริการเริ่มต้นแนบอยู่กับ Cloud Function ซึ่งคุณไม่จำเป็นต้องตั้งค่า ในบริบทของสภาพแวดล้อมที่ใช้งานจริง โดยทั่วไปคุณจะสร้างและแนบบัญชีบริการกับ Cloud Function แทน

สร้างและทำให้แอป Google Chat ใช้งานได้

เมื่อสร้างและกำหนดค่าโปรเจ็กต์ Google Cloud แล้ว คุณก็พร้อมที่จะสร้างและติดตั้งใช้งานแอป Google Chat ในส่วนนี้ ให้คุณทำสิ่งต่อไปนี้

  1. สร้างฐานข้อมูล Firestore เพื่อเก็บและเรียกข้อมูลเรื่องราวของผู้ใช้
  2. ตรวจสอบโค้ดตัวอย่าง (ไม่บังคับ)
  3. สร้าง Cloud Function เพื่อโฮสต์และเรียกใช้โค้ดของแอป Chat เพื่อตอบสนองต่อเหตุการณ์ที่ได้รับจาก Chat เป็นคำขอ HTTP
  4. สร้างและทำให้แอป Google Chat ใช้งานได้ในหน้าการกำหนดค่า Google Chat API

สร้างฐานข้อมูล Firestore

ในส่วนนี้ คุณจะได้สร้างฐานข้อมูล Firestore เพื่อเก็บรักษาและเรียกข้อมูลเรื่องราวของผู้ใช้ แต่คุณไม่ต้องกำหนดโมเดลข้อมูล ไฟล์ model/user-story.js และ model/user.js มีการตั้งค่าโมเดลข้อมูลโดยปริยายในโค้ดตัวอย่าง

ฐานข้อมูลแอป Chat สำหรับการจัดการโปรเจ็กต์ใช้โมเดลข้อมูล NoSQL ตาม เอกสารที่จัดระเบียบเป็น คอลเล็กชัน ดูข้อมูลเพิ่มเติมได้ในโมเดลข้อมูล Firestore

แผนภาพต่อไปนี้เป็นภาพรวมของโมเดลข้อมูลของแอป Google Chat

โมเดลข้อมูลของฐานข้อมูล Firestore

คอลเล็กชันรูทคือ spaces ซึ่งเอกสารแต่ละรายการแสดงพื้นที่ทำงานที่แอป Chat สร้างเรื่องราวไว้ เรื่องราวของผู้ใช้แต่ละรายจะแสดงด้วยเอกสารในคอลเล็กชันย่อย userStories และผู้ใช้แต่ละรายจะแสดงเป็นเอกสารในคอลเล็กชันย่อย users

ดูคำจำกัดความของคอลเล็กชัน เอกสาร และช่อง

spaces

พื้นที่ทำงานที่แอป Chat สร้างเรื่องราวไว้

ช่อง
Document IDString
รหัสที่ไม่ซ้ำกันของพื้นที่ทำงานเฉพาะที่สร้างเรื่องราว ใช้กับชื่อทรัพยากรของพื้นที่ทำงานใน Chat API
userStoriesSubcollection of Documents (userStories)
เรื่องราวที่สร้างโดยแอป Chat และผู้ใช้ สอดคล้องกับ Document ID ของ userStories ใน Firebase
usersSubcollection of Documents (user)
ผู้ใช้ที่สร้างหรือได้รับเรื่องราว
displayNameString
ชื่อที่แสดงของพื้นที่ทำงานใน Chat API ไม่ได้ตั้งค่าสำหรับข้อความส่วนตัวกับผู้ใช้

userStories

เรื่องราวที่สร้างโดยแอป Chat และผู้ใช้

ช่อง
Document IDString
รหัสที่ไม่ซ้ำกันของเรื่องราวของผู้ใช้ที่เฉพาะเจาะจงซึ่งแอป Chat และผู้ใช้สร้างขึ้น
assigneeDocument (user)
ชื่อแหล่งข้อมูลของผู้ใช้ที่กำหนดให้กับเรื่องราวของคุณ สอดคล้องกับ Document ID ของเอกสาร users และมีชื่อทรัพยากรของผู้ใช้ใน Chat API
descriptionString
คำอธิบายฟีเจอร์ของซอฟต์แวร์จากมุมมองของผู้ใช้
priorityEnum
ความเร่งด่วนในการทำงานให้เสร็จสิ้น ค่าที่เป็นไปได้คือ Low, Medium หรือ High
sizeEnum
ปริมาณผลงาน ค่าที่เป็นไปได้คือ Small, Medium หรือ Large
statusEnum
ระยะของการทำงาน ค่าที่เป็นไปได้คือ OPEN, STARTED หรือ COMPLETED
titleString
ชื่อเรื่องราว สรุปสั้นๆ

users

ผู้ใช้ที่สร้างหรือได้รับเรื่องราว

ช่อง
Document IDString
รหัสที่ไม่ซ้ำกันของผู้ใช้บางราย สอดคล้องกับ assignee ของ userStories ใน Firebase และใช้ชื่อทรัพยากรของผู้ใช้ใน Chat API
avatarUrlString
URL ที่โฮสต์รูปโปรไฟล์ Chat ของผู้ใช้
displayNameString
ชื่อที่แสดงใน Chat ของผู้ใช้

วิธีสร้างฐานข้อมูล Firestore มีดังนี้

คอนโซล Google Cloud

  1. ไปที่ Firestore ในคอนโซล Google Cloud คลิก เมนู > Firestore

    ไปที่ Firestore

  2. คลิกสร้างฐานข้อมูล

  3. จากเลือกโหมด Firestore ให้คลิกโหมดดั้งเดิม

  4. คลิกต่อไป

  5. กำหนดค่าฐานข้อมูลด้วยคำสั่งต่อไปนี้

    1. ในการตั้งชื่อฐานข้อมูล ให้ปล่อยรหัสฐานข้อมูลเป็น (default)

    2. ในประเภทตำแหน่ง ให้ระบุภูมิภาคสำหรับฐานข้อมูล เช่น us-central1 โปรดเลือกตำแหน่งเดียวกันหรือใกล้เคียงสำหรับ Cloud Function ของแอป Chat เพื่อประสิทธิภาพที่ดีที่สุด

  6. คลิกสร้างฐานข้อมูล

gcloud CLI

  • สร้างฐานข้อมูล Firestore ในโหมดดั้งเดิมด้วยคำสั่ง gcloud firestore databases create ดังนี้

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native
    

    แทนที่ LOCATION ด้วยชื่อภูมิภาค Firestore เช่น us-central1

ดูโค้ดตัวอย่าง

ก่อนสร้าง Cloud Function โปรดใช้เวลาสักครู่เพื่อตรวจสอบและทำความคุ้นเคยกับโค้ดตัวอย่างที่โฮสต์ใน GitHub

ดูใน GitHub

ภาพรวมของแต่ละไฟล์มีดังนี้

env.js
ตัวแปรการกำหนดค่าสภาพแวดล้อมเพื่อทำให้แอป Chat ใช้งานได้ในโปรเจ็กต์ Google Cloud หรือภูมิภาคที่ระบุ คุณต้องอัปเดตตัวแปรการกำหนดค่าในไฟล์นี้
package.jsonและpackage-lock.json
การตั้งค่าโปรเจ็กต์และการอ้างอิงของ Node.js
index.js
จุดแรกเข้าสำหรับ Cloud Function ของแอป Chat โดยจะอ่านเหตุการณ์ Chat จากคำขอ HTTP เรียกใช้ตัวแฮนเดิลแอป และโพสต์การตอบกลับ HTTP เป็นออบเจ็กต์ JSON
controllers/app.js
ตรรกะของแอปพลิเคชันหลัก ประมวลผลเหตุการณ์การโต้ตอบโดยจัดการการพูดถึงและคำสั่งเครื่องหมายทับในแอป Chat ระบบจะเรียกใช้ app-action-handler.js เพื่อตอบสนองต่อการคลิกการ์ด
controllers/app-action-handler.js
ตรรกะของแอปพลิเคชันเพื่อจัดการการคลิกการ์ด เหตุการณ์การโต้ตอบใน Chat
services/space-service.js, services/user-service.js และ services/user-story-service.js
ไฟล์เหล่านี้ประกอบด้วยส่วนต่างๆ ของตรรกะแอปพลิเคชันสำหรับการทำงานกับพื้นที่ใน Chat, ผู้ใช้ และเรื่องราวของผู้ใช้โดยเฉพาะ ฟังก์ชันในไฟล์เหล่านี้จะเรียกโดย app.js หรือ app-action-handler.js หากต้องการดำเนินการกับฐานข้อมูล ฟังก์ชันในไฟล์เหล่านี้จะเรียกใช้ฟังก์ชันใน firestore-service.js
services/firestore-service.js
จัดการการทำงานของฐานข้อมูล ฟังก์ชันในไฟล์นี้จะเรียกใช้โดย services/space-service.js, services/user-service.js และ services/user-story-service.js
services/aip-service.js
เรียกใช้ Vertex AI API สำหรับการคาดคะเนข้อความของ Generative AI
model/*.js
ไฟล์เหล่านี้มีคำจำกัดความของคลาสและ Enum ที่บริการแอปพลิเคชันใช้ในการจัดเก็บและส่งข้อมูลระหว่างฟังก์ชัน และกำหนดโมเดลข้อมูลสำหรับฐานข้อมูล Firestore
views/*.js
แต่ละไฟล์ในไดเรกทอรีนี้จะสร้างอินสแตนซ์ของออบเจ็กต์การ์ดที่แอป Chat ส่งกลับไปยัง Chat เป็นข้อความในการ์ดหรือการตอบสนองด้วยกล่องโต้ตอบ
views/widgets/*.js
แต่ละไฟล์จะสร้างอินสแตนซ์ของออบเจ็กต์วิดเจ็ตประเภทหนึ่งที่แอปใช้ในการสร้างการ์ดในไดเรกทอรี views/
test/**/*.test.js
แต่ละไฟล์ในไดเรกทอรีนี้และไดเรกทอรีย่อยจะมีการทดสอบ 1 หน่วยสำหรับฟังก์ชัน ตัวควบคุม บริการ มุมมอง หรือวิดเจ็ตที่เกี่ยวข้อง คุณดำเนินการทดสอบ 1 หน่วยทั้งหมดได้โดยเรียกใช้ npm run test ขณะอยู่ในไดเรกทอรีรากของโปรเจ็กต์

สร้างและทำให้ Cloud Function ใช้งานได้

ในส่วนนี้ คุณจะได้สร้างและทำให้ Cloud Function ที่ประกอบด้วยตรรกะแอปพลิเคชันของแอป Chat สำหรับการจัดการโปรเจ็กต์ใช้งานได้

Cloud Function จะทำงานตามคำขอ HTTP จาก Chat ที่มีเหตุการณ์การโต้ตอบกับ Chat เมื่อเรียกใช้ โค้ด Cloud Function จะประมวลผลเหตุการณ์และแสดงผลการตอบกลับไปยัง Chat ซึ่ง Chat แสดงผลเป็นข้อความ กล่องโต้ตอบ หรือการโต้ตอบประเภทอื่นๆ ของผู้ใช้ Cloud Function จะอ่านหรือเขียนฐานข้อมูล Firestore ด้วย (หากมี)

วิธีสร้าง Cloud Function

คอนโซล Google Cloud

  1. ดาวน์โหลดโค้ดจาก GitHub เป็นไฟล์ ZIP

    ดาวน์โหลดไฟล์ ZIP

  2. แตกไฟล์ ZIP ที่ดาวน์โหลด

    โฟลเดอร์ที่ดึงมาจะมีที่เก็บตัวอย่าง Google Workspace ทั้งหมด

  3. ในโฟลเดอร์ที่แยกออกมา ให้ไปที่ google-chat-samples-main/node/project-management-app/ จากนั้นบีบอัดโฟลเดอร์ project-management-app ลงในไฟล์ ZIP

    ไดเรกทอรีรากของไฟล์ ZIP ต้องมีไฟล์และโฟลเดอร์ต่อไปนี้

    • env.js
    • README.md
    • gcloudignore.text
    • package-lock.json
    • package.json
    • index.js
    • model/
    • controllers/
    • views/
    • services/
  4. ในคอนโซล Google Cloud ให้ไปที่หน้า Cloud Functions โดยทำดังนี้

    ไปที่ Cloud Functions

    ตรวจสอบว่าได้เลือกโปรเจ็กต์ Google Cloud สำหรับแอป Chat แล้ว

  5. คลิก สร้างฟังก์ชัน

  6. ในหน้าสร้างฟังก์ชัน ให้ตั้งค่าฟังก์ชันดังนี้

    1. ในสภาพแวดล้อม ให้เลือกรุ่นที่ 2
    2. ป้อน project-management-tutorial ในชื่อฟังก์ชัน
    3. ในภูมิภาค ให้เลือกภูมิภาค
    4. ในส่วนการตรวจสอบสิทธิ์ ให้เลือกอนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์
    5. คลิกถัดไป
  7. ในรันไทม์ ให้เลือก Node.js 20

  8. ในจุดแรกเข้า ให้ลบข้อความเริ่มต้นแล้วป้อน projectManagementChatApp

  9. ในซอร์สโค้ด ให้เลือกการอัปโหลดแบบ Zip

  10. ในที่เก็บข้อมูลปลายทาง ให้สร้างหรือเลือกที่เก็บข้อมูล ดังนี้

    1. คลิกเลือกดู
    2. เลือกที่เก็บข้อมูล
    3. คลิกเลือก

    Google Cloud จะอัปโหลดไฟล์ ZIP และแยกไฟล์คอมโพเนนต์ในที่เก็บข้อมูลนี้ จากนั้น Cloud Functions จะคัดลอกไฟล์คอมโพเนนต์ไปยัง Cloud Function

  11. ในไฟล์ ZIP ให้อัปโหลดไฟล์ ZIP ที่ดาวน์โหลดจาก GitHub จากนั้นดึงข้อมูลและบีบอัดใหม่

    1. คลิกเลือกดู
    2. เลือกและเลือกไฟล์ ZIP
    3. คลิกเปิด
  12. คลิกทำให้ใช้งานได้

    หน้ารายละเอียด Cloud Functions จะเปิดขึ้น และฟังก์ชันจะปรากฏขึ้นพร้อมสัญญาณบอกสถานะความคืบหน้า 2 รายการ ได้แก่ ตัวหนึ่งสำหรับบิลด์และอีกตัวหนึ่งสำหรับบริการ เมื่อสัญญาณบอกสถานะความคืบหน้าทั้ง 2 ตัวหายไปและแทนที่ด้วยเครื่องหมายถูก ระบบจะทำให้ฟังก์ชันใช้งานได้และพร้อมใช้งาน

  13. แก้ไขโค้ดตัวอย่างเพื่อตั้งค่าค่าคงที่:

    1. ในหน้ารายละเอียดของ Cloud Function ให้คลิกแก้ไข
    2. คลิกถัดไป
    3. ในซอร์สโค้ด ให้เลือกตัวแก้ไขในบรรทัด
    4. เปิดไฟล์ env.js ในเครื่องมือแก้ไขในบรรทัด
    5. แทนที่ project-id ด้วยรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์
    6. ไม่บังคับ: อัปเดต us-central1 ด้วยตำแหน่งที่รองรับสำหรับ Cloud Function
  14. คลิกทำให้ใช้งานได้

  15. เมื่อฟังก์ชันทำให้ใช้งานได้เรียบร้อยแล้ว ให้คัดลอก URL ของทริกเกอร์ดังนี้

    1. ในหน้ารายละเอียดฟังก์ชัน ให้คลิกทริกเกอร์
    2. คัดลอก URL ซึ่งคุณจะต้องใช้เพื่อกำหนดค่าแอป Chat ในส่วนต่อไปนี้

gcloud CLI

  1. โคลนโค้ดจาก GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. เปลี่ยนไปใช้ไดเรกทอรีที่มีโค้ดสำหรับแอป Chat การจัดการโปรเจ็กต์นี้

    cd google-chat-samples/node/project-management-app
    
  3. แก้ไขไฟล์ env.js เพื่อตั้งค่าตัวแปรสภาพแวดล้อม

    1. แทนที่ project-id ด้วยรหัสโปรเจ็กต์ Google Cloud
    2. แทนที่ us-central1 ด้วยตำแหน่งโปรเจ็กต์ Google Cloud ของคุณ
  4. ทำให้ Cloud Function ใช้งานได้ใน Google Cloud โดยทำดังนี้

    gcloud functions deploy project-management-tutorial \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=projectManagementChatApp \
    --trigger-http \
    --allow-unauthenticated
    

    แทนที่ REGION ด้วยตำแหน่งของ Cloud Function ที่ฝากโครงสร้างพื้นฐานไว้ เช่น us-central1

  1. เมื่อฟังก์ชันทำให้ใช้งานได้เรียบร้อยแล้ว ให้คัดลอกพร็อพเพอร์ตี้ url จากการตอบกลับ ซึ่งเป็น URL ทริกเกอร์ที่คุณใช้ในส่วนต่อไปนี้เพื่อกำหนดค่าแอป Google Chat

กำหนดค่าแอป Google Chat ในคอนโซล Google Cloud

ส่วนนี้จะแสดงวิธีกำหนดค่า Chat API ในคอนโซล Google Cloud ที่มีข้อมูลเกี่ยวกับแอป Chat ของคุณ ซึ่งรวมถึงชื่อแอป Chat คำสั่งเครื่องหมายทับที่รองรับ และ URL ทริกเกอร์สำหรับ Cloud Function ของแอป Chat ที่ส่งเหตุการณ์การโต้ตอบใน Chat ไปให้

  1. ในคอนโซล Google Cloud ให้คลิกเมนู > ผลิตภัณฑ์อื่นๆ > Google Workspace > คลังผลิตภัณฑ์ > Google Chat API > จัดการ > การกำหนดค่า

    ไปที่การกำหนดค่า Chat API

  2. ในชื่อแอป ให้พิมพ์ Project Manager

  3. ใน URL ของรูปโปรไฟล์ ให้พิมพ์ https://developers.google.com/chat/images/quickstart-app-avatar.png

  4. ในคำอธิบาย ให้พิมพ์ Manages projects with user stories.

  5. คลิกปุ่มสลับเปิดใช้ฟีเจอร์แบบอินเทอร์แอกทีฟเป็นเปิด

  6. ในส่วนฟังก์ชันการทำงาน ให้เลือกรับข้อความแบบ 1:1 เข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม

  7. ในส่วนการตั้งค่าการเชื่อมต่อ ให้เลือก URL ของแอป

  8. ใน URL ของแอป ให้วาง URL ทริกเกอร์ที่คัดลอกมาจากการติดตั้งใช้งาน Cloud Functions โดยมีรูปแบบเป็น https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial หากคุณทำให้ Cloud Function ใช้งานได้ด้วย gcloud CLI แล้ว นี่คือพร็อพเพอร์ตี้ url

  9. ลงทะเบียนคำสั่งเครื่องหมายทับของแอป Chat วิธีลงทะเบียนคำสั่งเครื่องหมายทับ

    1. ในส่วนคำสั่งเครื่องหมายทับ ให้คลิกเพิ่มคำสั่งเครื่องหมายทับ
    2. สำหรับคำสั่งเครื่องหมายทับแต่ละรายการที่แสดงรายละเอียดในตารางต่อไปนี้ ให้ป้อนชื่อ รหัสคำสั่ง คำอธิบาย แล้วเลือกว่าคำสั่งเครื่องหมายทับเปิดกล่องโต้ตอบหรือไม่ แล้วคลิกเสร็จสิ้น

      ชื่อ รหัสคำสั่ง คำอธิบาย เปิดกล่องโต้ตอบ
      /createUserStory 1 สร้างเรื่องราวด้วยชื่อที่ระบุ ไม่ได้เลือกไว้
      /myUserStories 2 แสดงเรื่องราวทั้งหมดที่มอบหมายให้กับผู้ใช้ ไม่ได้เลือกไว้
      /userStory 3 แสดงสถานะปัจจุบันของเรื่องราวที่ระบุ ไม่ได้เลือกไว้
      /manageUserStories 4 เปิดกล่องโต้ตอบที่แก้ไขเรื่องราวได้ ที่เลือกไว้
      /cleanupUserStories 5 ลบเรื่องราวทั้งหมดในพื้นที่ทำงาน ไม่ได้เลือกไว้
  10. ในส่วนระดับการเข้าถึง ให้เลือกทำให้แอป Chat นี้พร้อมใช้งานสำหรับบุคคลและกลุ่มที่ระบุในโดเมน Workspace และป้อนอีเมลของคุณ

  11. (ไม่บังคับ) ในส่วนบันทึก ให้เลือกบันทึกข้อผิดพลาดในการบันทึก

  12. คลิกบันทึก ข้อความการกำหนดค่าที่บันทึกไว้จะปรากฏขึ้น ซึ่งหมายความว่าแอป Chat พร้อมทดสอบ

ทดสอบแอป Chat

ทดสอบแอป Chat สำหรับจัดการโครงการด้วยการรับส่งข้อความ และใช้คำสั่งเครื่องหมายทับเพื่อสร้าง แก้ไข และลบเรื่องราวของผู้ใช้

  1. เปิด Google Chat โดยใช้บัญชี Google Workspace ที่คุณให้ไว้เมื่อเพิ่มตัวคุณเองเป็นผู้ทดสอบที่เชื่อถือได้

    ไปที่ Google Chat

  2. คลิก แชทใหม่
  3. พิมพ์ชื่อแอป Chat ในช่องเพิ่มผู้คนอย่างน้อย 1 คน
  4. เลือกแอป Chat จากผลการค้นหา ข้อความส่วนตัวจะเปิดขึ้น

  5. ในข้อความส่วนตัวใหม่ที่มีแอป ให้พิมพ์ Hello แล้วกด enter แอป Chat สำหรับการจัดการโครงการจะตอบกลับด้วยเมนูความช่วยเหลือที่อธิบายรายละเอียดว่าแอปทำอะไรได้บ้าง
  6. หากต้องการสร้างเรื่องราว ให้พิมพ์ /createUserStory Test story ในแถบข้อความ แล้วส่ง แอปการจัดการโปรเจ็กต์ แอป Chat จะตอบกลับด้วยข้อความการ์ดที่ให้รายละเอียดเรื่องราวของผู้ใช้ซึ่งสร้างให้คุณโดยใช้ Generative AI จาก Vertex AI
  7. ในคอนโซล ให้ตรวจสอบฐานข้อมูล Firestore เพื่อตรวจสอบระเบียนที่สร้างเกี่ยวกับพื้นที่ทำงานที่คุณเพิ่มแอป Chat, ผู้ใช้ที่โต้ตอบกับฐานข้อมูล และเรื่องราวของผู้ใช้ที่คุณสร้างขึ้น

    ไปที่ Firestore

  8. กลับไปที่ Google Chat

    ไปที่ Google Chat

  9. หากต้องการแก้ไขเรื่องราว ให้คลิกแก้ไข (ไม่บังคับ) เมื่อพอใจกับเรื่องราวแล้ว ให้คลิกบันทึก
  10. ทดสอบคำสั่งเครื่องหมายทับแต่ละรายการที่แอปรองรับ หากต้องการดู ให้พิมพ์ / หรือพูดถึงแอป Chat
  11. ลบเรื่องราวของผู้ใช้ทดสอบโดยการออกคำสั่งเครื่องหมายทับ /cleanupUserStories อีกวิธีหนึ่งคือ นำแอปออกหรือถอนการติดตั้งแอป เมื่อนำออกแล้ว แอปจะลบเรื่องราวของผู้ใช้ทั้งหมดที่สร้างขึ้นในพื้นที่ทำงานนั้น

แก้ปัญหา

เมื่อแอป Google Chat หรือการ์ดแสดงผลข้อผิดพลาด อินเทอร์เฟซ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ดำเนินการตามคำขอของคุณไม่ได้" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาด แต่แอปหรือการ์ด Chat จะให้ผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความการ์ดอาจไม่ปรากฏ

แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของ Chat แต่ก็จะมีข้อความแสดงข้อผิดพลาดที่สื่อความหมายและข้อมูลบันทึกที่จะช่วยคุณแก้ไขข้อผิดพลาดเมื่อเปิดการบันทึกข้อผิดพลาดสำหรับแอป Chat ไว้ หากต้องการความช่วยเหลือในการดู แก้ไขข้อบกพร่อง และแก้ไขข้อผิดพลาด โปรดดูหัวข้อแก้ปัญหาและแก้ไขข้อผิดพลาดของ Google Chat

ล้างข้อมูล

เราขอแนะนำให้คุณลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินในบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร

    ไปที่เครื่องมือจัดการทรัพยากร

  2. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
  3. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์แล้วคลิกปิดเพื่อลบโปรเจ็กต์