จัดการโปรเจ็กต์ด้วย 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 ที่รับและตอบสนองต่อ เหตุการณ์การโต้ตอบในแชท เช่น ข้อความ การจัดการโครงการ แอป 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 สำหรับการจัดการโปรเจ็กต์ใช้ฟังก์ชันระบบคลาวด์เพื่อ โฮสต์ปลายทาง 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 แบบพร้อมกันไปยัง Cloud Function ปลายทาง HTTP

  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: หากต้องการใช้สภาพแวดล้อมการพัฒนาในเครื่อง ติดตั้งและ เริ่มต้น gcloud CLI นี้
    หากต้องการสร้างโปรเจ็กต์ระบบคลาวด์ ให้ใช้คำสั่ง "gcloud projects 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. หากจำเป็น ให้ตั้งค่าโปรเจ็กต์ระบบคลาวด์ปัจจุบันเป็นโปรเจ็กต์ที่คุณ สร้างด้วยคำสั่ง 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

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

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

บทแนะนำนี้ใช้ในการเรียกใช้ 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 โมเดลข้อมูลตาม เอกสาร จัดเป็น collections ดูข้อมูลเพิ่มเติมได้ที่ โมเดลข้อมูล 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
ตัวแปรการกำหนดค่าสภาพแวดล้อมที่จะทำให้ใช้งานได้ แชทไปยังโปรเจ็กต์ 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 แสดงผลเป็น ข้อความ กล่องโต้ตอบ หรือการโต้ตอบของผู้ใช้ประเภทอื่นๆ ระบบคลาวด์ (หากมี) ฟังก์ชันจะอ่านหรือเขียนจากฐานข้อมูล 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. ใน Runtime ให้เลือก 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 อย่าง ได้แก่ สัญญาณหนึ่งสำหรับบิลด์ และสัญญาณบอกสถานะสำหรับบริการ เมื่อสัญญาณบอกสถานะความคืบหน้าทั้งสองหายไปและแทนที่ด้วยเครื่องหมายถูก แสดงว่าฟังก์ชันใช้งานได้และพร้อมใช้งานแล้ว

  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 ทริกเกอร์สำหรับระบบคลาวด์ของแอป 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 ของทริกเกอร์ที่คัดลอกมาจากระบบคลาวด์ การทำให้ฟังก์ชันใช้งานได้ โดยมีการจัดรูปแบบเป็น https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial หากคุณทำให้ฟังก์ชันระบบคลาวด์ใช้งานได้ด้วย gcloud CLI ตัวแปรนี้จะเป็น url

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

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

      ชื่อ รหัสคำสั่ง คำอธิบาย เปิดกล่องโต้ตอบ
      /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. ในช่องเพิ่มผู้คนอย่างน้อย 1 คน ให้พิมพ์ชื่อ แอป Chat
  4. เลือกแอปใน Chat จากผลการค้นหา โดยตรง ข้อความจะเปิดขึ้น

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

    ไปที่ Firestore

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

    ไปที่ Google Chat

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

แก้ปัญหา

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

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

ล้างข้อมูล

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

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

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

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