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

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

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

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

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

  • สร้างแอปใน Chat ที่จัดการโปรเจ็กต์ซอฟต์แวร์แบบ Agile
  • ช่วยให้ผู้ใช้เขียนเรื่องราวผู้ใช้ด้วยเครื่องมือเขียนเรื่องราวแบบ 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: ฐานข้อมูลเอกสารแบบไม่ใช้เซิร์ฟเวอร์ แอป Google Chat สำหรับการจัดการโปรเจ็กต์ใช้ Firebase เพื่อจัดเก็บข้อมูลเกี่ยวกับเรื่องราวผู้ใช้
  • Cloud Functions: บริการประมวลผลแบบ 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 เพื่อช่วยเขียน User Story และจัดเก็บรายละเอียด User Story ในฐานข้อมูล 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
  • เชลล์ในเครื่อง: หากต้องการใช้สภาพแวดล้อมการพัฒนาซอฟต์แวร์ในเครื่อง ให้ติดตั้งและเริ่มต้น gcloud CLI
    หากต้องการสร้างโปรเจ็กต์ Cloud ให้ใช้คำสั่ง gcloud projects create ดังนี้
    gcloud projects create PROJECT_ID
    แทนที่ PROJECT_ID ด้วยการตั้งค่ารหัสสําหรับโปรเจ็กต์ที่ต้องการสร้าง

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

คอนโซล Google Cloud

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

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

  2. ในส่วนเลือกองค์กร ให้เลือกองค์กรที่เชื่อมโยงกับโปรเจ็กต์ Google Cloud
  3. ในแถวโปรเจ็กต์ ให้เปิดเมนูการดําเนินการ () คลิกเปลี่ยนการเรียกเก็บเงิน แล้วเลือกบัญชีการเรียกเก็บเงินระบบคลาวด์
  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 ในโปรเจ็กต์ Google Cloud ที่ถูกต้อง แล้วคลิกถัดไป

  3. ตรวจสอบว่าคุณเปิดใช้ API ที่ถูกต้อง แล้วคลิกเปิดใช้

gcloud CLI

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

    gcloud config set project PROJECT_ID

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

  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 โดยที่แต่ละเอกสารแสดงถึงพื้นที่ทำงานที่แอปแชทสร้างเรื่องราว เรื่องราวผู้ใช้แต่ละเรื่องจะแสดงด้วยเอกสารในคอลเล็กชันย่อย 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
ตรรกะหลักของแอปพลิเคชัน ประมวลผลเหตุการณ์การโต้ตอบด้วยการจัดการการพูดถึงแอปแชทและคําสั่งเครื่องหมายทับ หากต้องการตอบสนองต่อการคลิกการ์ด ระบบจะเรียกใช้ app-action-handler.js
controllers/app-action-handler.js
ตรรกะแอปพลิเคชันเพื่อจัดการการคลิกการ์ดเหตุการณ์การโต้ตอบใน Chat
services/space-service.js, services/user-service.js และ services/user-story-service.js
ไฟล์เหล่านี้มีส่วนของตรรกะแอปพลิเคชันเฉพาะสำหรับการทำงานกับพื้นที่ใน Chat, ผู้ใช้ และ User Story ฟังก์ชันในไฟล์เหล่านี้จะเรียกใช้โดย 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
ไฟล์เหล่านี้มีคำจำกัดความของคลาสและลิสต์แบบจำกัดที่บริการของแอปพลิเคชันใช้จัดเก็บและส่งข้อมูลระหว่างฟังก์ชัน โดยกำหนดรูปแบบข้อมูลสำหรับฐานข้อมูล Firestore
views/*.js
ไฟล์แต่ละไฟล์ในไดเรกทอรีนี้จะสร้างออบเจ็กต์การ์ดขึ้นมา แล้วแอป Chat จะส่งกลับไปยัง Chat เป็นข้อความการ์ดหรือการตอบสนองการดำเนินการของกล่องโต้ตอบ
views/widgets/*.js
ไฟล์แต่ละไฟล์จะสร้างวิดเจ็ตประเภทหนึ่งๆ ขึ้นมาเป็นออบเจ็กต์ที่แอปใช้สร้างการ์ดในไดเรกทอรี views/
test/**/*.test.js
ไฟล์แต่ละไฟล์ในไดเรกทอรีนี้และไดเรกทอรีย่อยจะมียูนิตเทสต์สำหรับฟังก์ชัน ตัวควบคุม บริการ มุมมอง หรือวิดเจ็ตที่เกี่ยวข้อง คุณสามารถเรียกใช้การทดสอบหน่วยทั้งหมดได้โดยเรียกใช้ 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. ในสภาพแวดล้อม ให้เลือกฟังก์ชัน Cloud Run
    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 รายการ ได้แก่ 1 รายการสำหรับบิลด์และอีก 1 รายการสำหรับบริการ เมื่อตัวบ่งชี้ความคืบหน้าทั้ง 2 รายการหายไปและมีเครื่องหมายถูกแสดงแทน แสดงว่าระบบได้ติดตั้งใช้งานฟังก์ชันแล้วและพร้อมใช้งาน

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

    1. ในหน้ารายละเอียดฟังก์ชัน Cloud ให้คลิกแก้ไข
    2. คลิกถัดไป
    3. เลือกเครื่องมือแก้ไขในบรรทัดในซอร์สโค้ด
    4. เปิดไฟล์ env.js ในเครื่องมือแก้ไขในบรรทัด
    5. แทนที่ project-id ด้วยรหัสโปรเจ็กต์ Cloud ของคุณ
    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 ของปลายทาง HTTP

  8. ใน HTTP Endpoint 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. ในส่วนระดับการเข้าถึง ให้เลือกทำให้แอปแชทนี้พร้อมให้บริการแก่บุคคลและกลุ่มที่เฉพาะเจาะจงในโดเมน Workspace แล้วป้อนอีเมลของคุณ

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

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

ทดสอบแอป Chat

ทดสอบแอป Chat สำหรับการจัดการโปรเจ็กต์โดยส่งข้อความถึงแอปและใช้คำสั่งเครื่องหมายทับเพื่อสร้าง แก้ไข และลบ User Story

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

    ไปที่ Google Chat

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

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

    ไปที่ Firestore

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

    ไปที่ Google Chat

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

แก้ปัญหา

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

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

ล้างข้อมูล

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

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

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

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