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

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

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

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

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

  • สร้างแอปใน Chat ที่จัดการโปรเจ็กต์ซอฟต์แวร์แบบ Agile
  • ช่วยผู้ใช้เขียน User Story ด้วยเครื่องมือเขียนเรื่องราวที่ทำงานด้วยระบบ 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 เพื่อเขียนชื่อและคำอธิบายของ User Story
  • 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. แชทจะส่งคำขอ HTTP แบบซิงโครนัสไปยังปลายทาง HTTP ของ Cloud Function

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

    1. Vertex AI ช่วยเขียนหรืออัปเดต User Story

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

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

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

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

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

คอนโซล Google Cloud

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

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

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

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

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

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 โดยตั้งรหัสสำหรับโปรเจ็กต์ที่ต้องการสร้าง

เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud

คอนโซล Google Cloud

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

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

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

gcloud CLI

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

    แทนที่ค่าต่อไปนี้

    • PROJECT_ID คือรหัสโปรเจ็กต์ของ โปรเจ็กต์ Cloud ที่คุณต้องการเปิดใช้การเรียกเก็บเงิน
    • 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 ในโปรเจ็กต์ Cloud ที่ถูกต้อง จากนั้นคลิกถัดไป

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

gcloud CLI

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

    gcloud config set project PROJECT_ID

    แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ของ โปรเจ็กต์ 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 ซึ่งแต่ละเอกสารแสดงถึงพื้นที่ทำงานที่แอป 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 โดยจะอ่านเหตุการณ์แชทจากคำขอ HTTP, เรียกตัวแฮนเดิลแอป และโพสต์การตอบกลับ HTTP เป็นออบเจ็กต์ JSON
controllers/app.js
ตรรกะหลักของแอปพลิเคชัน ประมวลผลเหตุการณ์การโต้ตอบโดยการจัดการการกล่าวถึงแอป Chat และคำสั่งเครื่องหมายทับ หากต้องการตอบสนองต่อการคลิกการ์ด ระบบจะเรียกใช้ app-action-handler.js
controllers/app-action-handler.js
ตรรกะของแอปพลิเคชันเพื่อจัดการการคลิกการ์ด เหตุการณ์การโต้ตอบในแชท
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
ไฟล์แต่ละไฟล์ในไดเรกทอรีนี้และไดเรกทอรีย่อยจะมี Unit Test สำหรับฟังก์ชัน คอนโทรลเลอร์ บริการ มุมมอง หรือวิดเจ็ตที่เกี่ยวข้อง คุณเรียกใช้การทดสอบหน่วยทั้งหมดได้โดยเรียกใช้ npm run test ขณะอยู่ใน ไดเรกทอรีรากของโปรเจ็กต์

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

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

Cloud Function จะทํางานเพื่อตอบสนอง ต่อคําขอ HTTP จาก Chat ซึ่งมีเหตุการณ์การโต้ตอบของ Chat เมื่อเรียกใช้ โค้ด Cloud Functions จะประมวลผลเหตุการณ์และ ส่งคืนการตอบกลับไปยัง 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. คลิก Create Function

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

    1. ในสภาพแวดล้อม ให้เลือก Cloud Run Function
    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 ด้วยรหัสโปรเจ็กต์ 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 Functions ที่โฮสต์โครงสร้างพื้นฐาน เช่น us-central1

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

กำหนดค่าแอป Google Chat ใน Google Cloud Console

ส่วนนี้แสดงวิธีกำหนดค่า 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. ในส่วนฟังก์ชันการทำงาน ให้เลือกเข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม

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

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

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

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

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

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

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

ทดสอบแอป Chat

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

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

    ไปที่ Google Chat

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

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

    ไปที่ Firestore

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

    ไปที่ Google Chat

  9. หากต้องการแก้ไขสตอรี่ ให้คลิกแก้ไข เมื่อพอใจกับ เรื่องราวแล้ว ให้คลิกบันทึก
  10. ทดสอบคำสั่ง Slash แต่ละรายการที่แอปนั้นรองรับ หากต้องการดูคำสั่ง ให้พิมพ์ / หรือกล่าวถึงแอป 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. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบ โปรเจ็กต์