บทแนะนํานี้จะแสดงวิธีสร้างแอป Google Chat ที่ทีมสามารถ ใช้เพื่อจัดการโปรเจ็กต์แบบเรียลไทม์ แอป Chat ใช้ Vertex AI เพื่อช่วยทีมเขียนเรื่องราวของผู้ใช้ (ซึ่งแสดงฟีเจอร์ของ จากมุมมองของผู้ใช้เพื่อให้ทีมพัฒนา) และ เก็บเรื่องราวไว้ในฐานข้อมูล Firestore
-
วันที่ รูปที่ 1 ชุติพลมาร่วมพูดคุยกับทีมเกี่ยวกับการพัฒนาฟีเจอร์ในพื้นที่ใน Chat การพูดถึงแอปการจัดการโปรเจ็กต์ใน Chat จะเป็นการแจ้งให้แอป Chat เสนอความช่วยเหลือ -
รูปที่ 2 การใช้คำสั่งเครื่องหมายทับ /createUserStory
จะทำให้ชาร์ลีสร้างเรื่องราวได้ -
รูปที่ 3 แอป Chat สำหรับการจัดการโปรเจ็กต์ใช้ Vertex AI มาเขียนคำอธิบายเรื่องราว แล้วแชร์เรื่องราวในพื้นที่ทำงาน -
รูปที่ 4 ชุติพลคลิกแก้ไขเพื่อสรุปรายละเอียดของเรื่องราว คำอธิบาย AI ถูกต้อง แต่ชุติต้องการรายละเอียดเพิ่มเติม ชาลีจึงคลิกขยายเพื่อเพิ่มข้อกำหนด Vertex AI ลงในคำอธิบายเรื่องราว ชุติพลกำหนดเรื่องราวให้กับตนเอง ตั้งค่าสถานะเพื่อเริ่มต้น เลือกลำดับความสำคัญและขนาดที่เหมาะสม แล้วคลิกบันทึก -
รูปที่ 5 ชุติมาดูและจัดการเรื่องราวของผู้ใช้ทั้งหมดของทีมได้ทุกเมื่อด้วยคำสั่งเครื่องหมายทับ /manageUserStories
ข้อกำหนดเบื้องต้น
- ธุรกิจหรือองค์กร บัญชี Google Workspace ที่มีสิทธิ์เข้าถึง Google Chat
สิทธิ์เข้าถึงบริการ Google Cloud เพื่อทำสิ่งต่อไปนี้
- สร้างโปรเจ็กต์ Google Cloud
- ลิงก์บัญชีสำหรับการเรียกเก็บเงินใน Google Cloud กับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ ถึง ดูว่าคุณสามารถเข้าถึงหรือไม่ สิทธิ์ที่จำเป็นในการเปิดใช้การเรียกเก็บเงิน
ใช้การเรียกใช้ Google Cloud Function ที่ไม่ได้ตรวจสอบสิทธิ์ ซึ่งคุณจะตรวจสอบได้โดยกำหนดว่าบริการ Google Cloud องค์กรใช้การแชร์โดเมนแบบจำกัด
หากจำเป็น ให้ขอสิทธิ์เข้าถึงจากผู้ดูแลระบบ Google Cloud หรือ สิทธิ์
หากใช้ Google Cloud CLI Node.js สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ที่กำหนดค่าให้ทำงานกับ gcloud CLI โปรดดู การตั้งค่าการพัฒนา Node.js สภาพแวดล้อมของคุณ
วัตถุประสงค์
- สร้างแอปใน 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 สำหรับการจัดการโปรเจ็กต์มีลักษณะดังนี้
ผู้ใช้ส่งข้อความใน Chat และเรียกใช้ แอป Google Chat สำหรับการจัดการโปรเจ็กต์ด้วยการส่งข้อความ โดยใส่ลงในช่องว่าง หรือป้อนคำสั่งเครื่องหมายทับ
Chat จะส่งคำขอ HTTP แบบพร้อมกันไปยัง Cloud Function ปลายทาง HTTP
แอป Google Chat สำหรับการจัดการโปรเจ็กต์จะประมวลผล HTTP คำขอ:
Vertex AI ช่วยเขียนหรืออัปเดตเรื่องราวของผู้ใช้
ฐานข้อมูล Firestore จัดเก็บ เรียกข้อมูล อัปเดต หรือลบเรื่องราวของผู้ใช้
Cloud Functions ส่งคืนการตอบกลับ HTTP ไปยัง Chat ซึ่ง แสดงให้ผู้ใช้เห็นเป็นข้อความหรือกล่องโต้ตอบ
เตรียมสภาพแวดล้อม
ส่วนนี้จะแสดงวิธีสร้างและกำหนดค่าโปรเจ็กต์ Google Cloud สำหรับ แอป Chat
สร้างโปรเจ็กต์ Google Cloud
คอนโซล Google Cloud
- ในคอนโซล Google Cloud ให้ไปที่เมนู > IAM และ ผู้ดูแลระบบ > สร้างโครงการ
-
ในช่องชื่อโปรเจ็กต์ ให้ป้อนชื่อที่สื่อความหมายสำหรับโปรเจ็กต์ของคุณ
ไม่บังคับ: หากต้องการแก้ไขรหัสโปรเจ็กต์ ให้คลิกแก้ไข เปลี่ยนรหัสโปรเจ็กต์ไม่ได้ หลังจากสร้างโปรเจ็กต์แล้ว ดังนั้นให้เลือกรหัสที่ตรงกับความต้องการของคุณตลอดอายุการใช้งาน
- ในช่องสถานที่ตั้ง ให้คลิกเรียกดูเพื่อแสดงสถานที่ตั้งที่เป็นไปได้สำหรับ จากนั้นคลิกเลือก
- คลิกสร้าง คอนโซล 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
เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์
คอนโซล Google Cloud
- ในคอนโซล Google Cloud ให้ไปที่การเรียกเก็บเงิน คลิก เมนู > การเรียกเก็บเงิน > โปรเจ็กต์ของฉัน
- ในส่วนเลือกองค์กร ให้เลือกองค์กรที่เชื่อมโยงกับ โปรเจ็กต์ Google Cloud ของคุณ
- ในแถวโปรเจ็กต์ ให้เปิดเมนูการดำเนินการ ( ), คลิกเปลี่ยนแปลงการเรียกเก็บเงิน และเลือก บัญชีสำหรับการเรียกเก็บเงินใน Cloud
- คลิกตั้งค่าบัญชี
gcloud CLI
- หากต้องการแสดงบัญชีสำหรับการเรียกเก็บเงินที่ใช้ได้ ให้เรียกใช้คำสั่งต่อไปนี้
gcloud billing accounts list
- ลิงก์บัญชีสำหรับการเรียกเก็บเงินกับโปรเจ็กต์ Google Cloud ได้ดังนี้
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
แทนที่ค่าต่อไปนี้
PROJECT_ID
คือรหัสโปรเจ็กต์สำหรับ โปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่คุณต้องการเปิดใช้การเรียกเก็บเงินBILLING_ACCOUNT_ID
คือรหัสบัญชีสำหรับการเรียกเก็บเงินที่จะลิงก์ด้วย จากโปรเจ็กต์ Google Cloud
เปิดใช้ API
คอนโซล Google Cloud
ในคอนโซล Google Cloud ให้เปิดใช้ Google Chat API, Vertex AI API Cloud Functions API, Firestore API, Cloud Build API Pub/Sub API และ Cloud Run Admin API
ยืนยันว่าคุณเปิดใช้ API ใน โปรเจ็กต์ที่อยู่ในระบบคลาวด์ จากนั้นคลิกถัดไป
ยืนยันว่าคุณเปิดใช้ API ที่ถูกต้อง แล้วคลิกเปิดใช้
gcloud CLI
หากจำเป็น ให้ตั้งค่าโปรเจ็กต์ระบบคลาวด์ปัจจุบันเป็นโปรเจ็กต์ที่คุณ สร้างด้วยคำสั่ง
gcloud config set project
:gcloud config set project PROJECT_ID
แทนที่ PROJECT_ID ด้วยรหัสโครงการของ โปรเจ็กต์ระบบคลาวด์ที่คุณสร้าง
เปิดใช้ 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 ใช้งานได้ ในส่วนนี้ คุณจะทำการ ดังต่อไปนี้:
- สร้างฐานข้อมูล Firestore ที่ใช้เก็บและเรียกข้อมูลเรื่องราวของผู้ใช้
- ตรวจสอบโค้ดตัวอย่าง (ไม่บังคับ)
- สร้าง Cloud Function เพื่อโฮสต์และเรียกใช้ โค้ดของแอป Chat ในการตอบกลับเหตุการณ์ ที่ได้รับจาก Chat เป็นคำขอ HTTP
- สร้างและทำให้แอป Google Chat ใช้งานได้ใน Google Chat API การกำหนดค่า
สร้างฐานข้อมูล Firestore
ในส่วนนี้ คุณจะได้สร้างฐานข้อมูล Firestore เพื่อคงไว้และเรียกข้อมูล
เรื่องราวของผู้ใช้ แต่คุณไม่ได้กำหนดโมเดลข้อมูล ตั้งค่าโมเดลข้อมูลแล้ว
โดยปริยายในโค้ดตัวอย่างโดย model/user-story.js
และ model/user.js
ฐานข้อมูลแอปใน Chat สำหรับการจัดการโปรเจ็กต์ใช้ NoSQL โมเดลข้อมูลตาม โมเดลข้อมูล Firestore
เอกสาร จัดเป็น collections ดูข้อมูลเพิ่มเติมได้ที่แผนภาพต่อไปนี้แสดงภาพรวมของการจัดการโครงการ โมเดลข้อมูลของแอป Google Chat
คอลเล็กชันรากคือ spaces
โดยที่เอกสารแต่ละรายการแสดงช่องว่างที่
แอป Chat สร้างเรื่องราวแล้ว เรื่องราวของผู้ใช้แต่ละคน
แสดงโดยเอกสารในคอลเล็กชันย่อย userStories
และผู้ใช้แต่ละราย
แสดงโดยเอกสารในคอลเล็กชันย่อย users
ดูคำจำกัดความของคอลเล็กชัน เอกสาร และช่อง
spaces
พื้นที่ทำงานที่แอป Chat สร้างเรื่องราวไว้
ช่อง | |
---|---|
Document ID | String รหัสที่ไม่ซ้ำกันของพื้นที่ทำงานเฉพาะที่สร้างเรื่องราว สอดคล้องกับชื่อทรัพยากรของพื้นที่ทำงานใน Chat API |
userStories | Subcollection of Documents ( เรื่องราวที่สร้างโดยแอป Chat และผู้ใช้ สอดคล้องกับ Document ID ของ userStories ใน Firebase |
users | Subcollection of Documents (user) ผู้ใช้ที่สร้างเรื่องราวหรือผู้ที่ได้รับมอบหมายเรื่องราว |
displayName | String ชื่อที่แสดงของพื้นที่ทำงานใน Chat API ไม่ได้ตั้งค่าสำหรับข้อความส่วนตัวกับผู้ใช้ |
userStories
เรื่องราวที่สร้างโดยแอป Chat และผู้ใช้
ช่อง | |
---|---|
Document ID | String รหัสที่ไม่ซ้ำกันของเรื่องราวของผู้ใช้ที่เฉพาะเจาะจงซึ่งแอป Chat และผู้ใช้สร้างขึ้น |
assignee | Document (user) ชื่อแหล่งข้อมูลของผู้ใช้ที่ได้รับมอบหมายเพื่อดำเนินการเรื่องนี้ให้เสร็จสิ้น สอดคล้องกับ Document ID ของเอกสาร users และชื่อทรัพยากรของผู้ใช้ใน Chat API |
description | String คำอธิบายฟีเจอร์ซอฟต์แวร์จากมุมมองของผู้ใช้ |
priority | Enum ความเร่งด่วนในการทำงานให้เสร็จ ค่าที่เป็นไปได้คือ Low , Medium หรือ High |
size | Enum ปริมาณงาน ค่าที่เป็นไปได้คือ Small , Medium หรือ Large |
status | Enum ขั้นของการทำงาน ค่าที่เป็นไปได้คือ OPEN , STARTED หรือ COMPLETED |
title | String ชื่อเรื่องราว ข้อมูลสรุปสั้นๆ |
users
ผู้ใช้ที่สร้างเรื่องราวหรือผู้ที่ได้รับมอบหมายเรื่องราว
ช่อง | |
---|---|
Document ID | String รหัสที่ไม่ซ้ำกันของผู้ใช้ที่เฉพาะเจาะจง สอดคล้องกับ assignee ของ userStories ใน Firebase และชื่อทรัพยากรของผู้ใช้ใน Chat API |
avatarUrl | String URL ที่โฮสต์รูปโปรไฟล์ Chat ของผู้ใช้ |
displayName | String ชื่อที่แสดงใน Chat ของผู้ใช้ |
วิธีสร้างฐานข้อมูล Firestore มีดังนี้
คอนโซล Google Cloud
ไปที่ Firestore ในคอนโซล Google Cloud คลิก เมนู > Firestore
คลิกสร้างฐานข้อมูล
จากเลือกโหมด Firestore ให้คลิกโหมดดั้งเดิม
คลิกต่อไป
กำหนดค่าฐานข้อมูลดังนี้
ในส่วนตั้งชื่อฐานข้อมูล ให้ปล่อยรหัสฐานข้อมูลเป็น
(default)
ในประเภทตำแหน่ง ให้ระบุภูมิภาคสำหรับฐานข้อมูล เช่น
us-central1
เพื่อประสิทธิภาพที่ดีที่สุด โปรดเลือกรายการเดียวกันหรือใกล้เคียง เป็น Cloud Function ของแอป Chat
คลิกสร้างฐานข้อมูล
gcloud CLI
สร้างฐานข้อมูล Firestore ในโหมดดั้งเดิมด้วย คำสั่ง
gcloud firestore databases create
:gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
แทนที่ LOCATION ด้วยชื่อ Firestore ภูมิภาค เช่น ในชื่อ
us-central1
ตรวจสอบโค้ดตัวอย่าง
(ไม่บังคับ) ก่อนสร้าง Cloud Function โปรดสละเวลาสักครู่เพื่อตรวจสอบและ ทำความคุ้นเคยกับโค้ดตัวอย่างที่โฮสต์ใน 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
ดาวน์โหลดโค้ดจาก GitHub เป็นไฟล์ ZIP
แตกไฟล์ ZIP ที่ดาวน์โหลด
โฟลเดอร์ที่แยกข้อมูลมีตัวอย่าง Google Workspace ทั้งหมด ที่เก็บได้
ในโฟลเดอร์ที่แยกข้อมูล ให้ไปยัง
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/
ในคอนโซล Google Cloud ให้ไปที่หน้า Cloud Functions แล้วทำดังนี้
ตรวจสอบว่าโปรเจ็กต์ Google Cloud สำหรับ เลือกแอป Chat แล้ว
คลิก
สร้างฟังก์ชันในหน้าสร้างฟังก์ชัน ให้ตั้งค่าฟังก์ชันต่อไปนี้
- ในสภาพแวดล้อม ให้เลือกรุ่นที่ 2
- ป้อน
project-management-tutorial
ในชื่อฟังก์ชัน - ในภูมิภาค ให้เลือกภูมิภาค
- ในส่วนการตรวจสอบสิทธิ์ ให้เลือก อนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์
- คลิกถัดไป
ใน Runtime ให้เลือก Node.js 20
ในจุดแรกเข้า ให้ลบข้อความเริ่มต้นและป้อน
projectManagementChatApp
เลือกอัปโหลด Zip ในซอร์สโค้ด
ในที่เก็บข้อมูลปลายทาง สร้าง หรือเลือกที่เก็บข้อมูล:
- คลิกเลือกดู
- เลือกที่เก็บข้อมูล
- คลิกเลือก
Google Cloud จะอัปโหลดไฟล์ ZIP และแตกไฟล์คอมโพเนนต์ ในที่เก็บข้อมูลนี้ จากนั้น Cloud Functions จะคัดลอกไฟล์คอมโพเนนต์ไปยัง Cloud Function
ในไฟล์ ZIP ให้อัปโหลดไฟล์ ZIP ที่คุณดาวน์โหลดจาก GitHub ดึงข้อมูลและบีบอัดใหม่:
- คลิกเลือกดู
- ไปที่ไฟล์ ZIP แล้วเลือกไฟล์
- คลิกเปิด
คลิกทำให้ใช้งานได้
หน้ารายละเอียด Cloud Functions จะเปิดขึ้นและฟังก์ชันจะปรากฏขึ้น พร้อมด้วยสัญญาณบอกสถานะความคืบหน้า 2 อย่าง ได้แก่ สัญญาณหนึ่งสำหรับบิลด์ และสัญญาณบอกสถานะสำหรับบริการ เมื่อสัญญาณบอกสถานะความคืบหน้าทั้งสองหายไปและแทนที่ด้วยเครื่องหมายถูก แสดงว่าฟังก์ชันใช้งานได้และพร้อมใช้งานแล้ว
แก้ไขโค้ดตัวอย่างเพื่อกำหนดค่าคงที่
- ในหน้ารายละเอียด Cloud Function ให้คลิกแก้ไข
- คลิกถัดไป
- ในซอร์สโค้ด ให้เลือกตัวแก้ไขในบรรทัด
- เปิดไฟล์
env.js
ในตัวแก้ไขในบรรทัด - แทนที่ project-id ด้วยรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์
- ไม่บังคับ: อัปเดต us-central1 โดยใช้ ตำแหน่งที่รองรับ สำหรับ Cloud Function
คลิกทำให้ใช้งานได้
เมื่อฟังก์ชันการทำให้ใช้งานได้เสร็จสิ้นแล้ว ให้คัดลอก URL ของทริกเกอร์ดังนี้
- คลิกทริกเกอร์ในหน้ารายละเอียดฟังก์ชัน
- คัดลอก URL คุณต้องใช้คีย์นี้เพื่อกำหนดค่า แอป Chat ในส่วนต่อไปนี้
gcloud CLI
โคลนโค้ดจาก GitHub ดังนี้
git clone https://github.com/googleworkspace/google-chat-samples.git
เปลี่ยนไปใช้ไดเรกทอรีที่เก็บโค้ดสำหรับโปรเจ็กต์นี้ การจัดการแอป Chat:
cd google-chat-samples/node/project-management-app
แก้ไขไฟล์
env.js
เพื่อตั้งค่าตัวแปรสภาพแวดล้อม- แทนที่ project-id ด้วยรหัสโปรเจ็กต์ Google Cloud
- แทนที่ us-central1 ด้วยตำแหน่งโปรเจ็กต์ Google Cloud
ทำให้ 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
- เมื่อฟังก์ชันการทำให้ใช้งานได้เสร็จสิ้นแล้ว ให้คัดลอกพร็อพเพอร์ตี้
url
จาก คำตอบ นี่คือ URL ทริกเกอร์ที่คุณใช้ในส่วนต่อไปนี้เพื่อ กำหนดค่าแอป Google Chat
กำหนดค่าแอป Google Chat ในคอนโซล Google Cloud
ส่วนนี้จะแสดงวิธีกำหนดค่า Chat API ใน คอนโซล Google Cloud ที่มีข้อมูลเกี่ยวกับแอป Chat ของคุณ ซึ่งรวมถึงชื่อแอป Chat และเครื่องหมายทับที่รองรับ คำสั่ง และ URL ทริกเกอร์สำหรับระบบคลาวด์ของแอป Chat ฟังก์ชันที่เครื่องมือส่งเหตุการณ์การโต้ตอบใน Chat
ในคอนโซล Google Cloud ให้คลิกเมนู > ผลิตภัณฑ์อื่นๆ > Google Workspace > คลังผลิตภัณฑ์ > Google Chat API > จัดการ > การกำหนดค่า
ในชื่อแอป ให้พิมพ์
Project Manager
ใน URL รูปโปรไฟล์ ให้พิมพ์
https://developers.google.com/chat/images/quickstart-app-avatar.png
ในคำอธิบาย ให้พิมพ์
Manages projects with user stories.
คลิกปุ่มสลับเปิดใช้ฟีเจอร์แบบอินเทอร์แอกทีฟไปที่ตำแหน่งเปิด
ในส่วนฟังก์ชัน ให้เลือกรับข้อความแบบ 1:1 เข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม
ในส่วนการตั้งค่าการเชื่อมต่อ ให้เลือก URL ของแอป
ใน URL ของแอป ให้วาง URL ของทริกเกอร์ที่คัดลอกมาจากระบบคลาวด์ การทำให้ฟังก์ชันใช้งานได้ โดยมีการจัดรูปแบบเป็น
https://
REGION-
PROJECT_ID.cloudfunctions.net/project-management-tutorial
หากคุณทำให้ฟังก์ชันระบบคลาวด์ใช้งานได้ด้วย gcloud CLI ตัวแปรนี้จะเป็นurl
ลงทะเบียนแอป Chat คำสั่งเครื่องหมายทับ วิธีลงทะเบียนคำสั่งเครื่องหมายทับ
- คลิกเพิ่มคำสั่งเครื่องหมายทับในส่วนคำสั่งเครื่องหมายทับ
สำหรับคำสั่งเครื่องหมายทับแต่ละรายการซึ่งมีรายละเอียดในตารางต่อไปนี้ ป้อน Name, Command ID, Description, แล้วเลือกว่า คำสั่งเครื่องหมายทับเปิดกล่องโต้ตอบ แล้วคลิกเสร็จสิ้น ดังนี้
ชื่อ รหัสคำสั่ง คำอธิบาย เปิดกล่องโต้ตอบ /createUserStory
1 สร้างเรื่องราวด้วยชื่อที่เจาะจง ไม่ได้เลือกไว้ /myUserStories
2 แสดงเรื่องราวทั้งหมดที่มอบหมายให้กับผู้ใช้ ไม่ได้เลือกไว้ /userStory
3 แสดงสถานะปัจจุบันของเรื่องราวที่ระบุ ไม่ได้เลือกไว้ /manageUserStories
4 เปิดกล่องโต้ตอบที่แก้ไขเรื่องราวได้ เลือกแล้ว /cleanupUserStories
5 ลบเรื่องราวทั้งหมดในพื้นที่ทำงาน ไม่ได้เลือกไว้
ในส่วนระดับการเข้าถึง ให้เลือก ทำให้แอป Chat นี้ใช้งานได้กับบุคคลหรือกลุ่มบุคคลใน Workspace แล้วป้อนอีเมลของคุณ
ในส่วนบันทึก ให้เลือกบันทึกข้อผิดพลาดในการบันทึก
คลิกบันทึก ข้อความที่บันทึกไว้สำหรับการกำหนดค่าจะปรากฏขึ้น ซึ่งหมายความว่า แอป Chat ปัจจุบัน พร้อมที่จะทดสอบ
ทดสอบแอป Chat
ทดสอบแอป Chat สำหรับการจัดการโปรเจ็กต์โดยการรับส่งข้อความ และใช้คำสั่งเครื่องหมายทับเพื่อสร้าง แก้ไข และลบเรื่องราวของผู้ใช้
เปิด Google Chat โดยใช้บัญชี Google Workspace ที่คุณ ที่ให้ไว้เมื่อคุณเพิ่มตัวเองเป็นผู้ทดสอบที่เชื่อถือได้
- คลิก แชทใหม่
- ในช่องเพิ่มผู้คนอย่างน้อย 1 คน ให้พิมพ์ชื่อ แอป Chat
เลือกแอปใน Chat จากผลการค้นหา โดยตรง ข้อความจะเปิดขึ้น
- ในข้อความส่วนตัวใหม่ที่มีแอป ให้พิมพ์
Hello
และ กดenter
การจัดการโครงการ แอป Chat ตอบกลับด้วยเมนูความช่วยเหลือที่ให้รายละเอียดว่า สามารถทำได้ - หากต้องการสร้างเรื่องราว ให้พิมพ์
/createUserStory Test story
ใน แถบข้อความ แล้วส่ง การจัดการโครงการ แอป Chat ตอบกลับด้วยข้อความการ์ดที่แสดงรายละเอียด เรื่องราวของผู้ใช้ที่สร้างให้คุณโดยใช้ Generative AI จาก Vertex AI ในคอนโซล ให้ตรวจสอบฐานข้อมูล Firestore เพื่อตรวจสอบ ระเบียนที่สร้างขึ้นเกี่ยวกับพื้นที่ทำงานที่คุณเพิ่ม ผู้ใช้ที่เคยโต้ตอบกับแอปแชทแล้ว และเรื่องราวของผู้ใช้ที่คุณสร้างขึ้น
กลับไปที่ Google Chat
- หากต้องการแก้ไขเรื่องราว ให้คลิกแก้ไข เมื่อพอใจกับ เรื่องราว ให้คลิกบันทึก
- ทดสอบคำสั่งเครื่องหมายทับแต่ละคำสั่งที่แอปรองรับ หากต้องการดู ให้พิมพ์
/
หรือพูดถึงแอป Chat - ลบเรื่องราวของผู้ใช้ทดสอบโดยการออก
/cleanupUserStories
เครื่องหมายทับ หรือ นำแอปออกหรือถอนการติดตั้งแอป เมื่อนำออกแล้ว แอปจะลบเรื่องราวผู้ใช้ทั้งหมดที่สร้างขึ้นในพื้นที่ทำงานนั้น
แก้ปัญหา
เมื่อแอป Google Chat หรือ card จะแสดงผลข้อผิดพลาด อินเทอร์เฟซ Chat แสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ไม่สามารถดำเนินการตามคำขอของคุณ" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาดใดๆ แต่แอป Chat หรือ ทำให้เกิดผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความในการ์ดอาจ ปรากฏขึ้น
แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของแชท มีข้อความแสดงข้อผิดพลาดและข้อมูลบันทึกที่สื่อความหมายเพื่อช่วยคุณแก้ไขข้อผิดพลาด เมื่อมีการเปิดข้อผิดพลาดในการบันทึกสำหรับแอป Chat หากต้องการความช่วยเหลือในการดู การแก้ไขข้อบกพร่องและการแก้ไขข้อผิดพลาด โปรดดู แก้ปัญหาข้อผิดพลาดของ Google Chat
ล้างข้อมูล
เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud ของคุณตาม ซึ่งใช้ในบทแนะนำนี้ เราขอแนะนำให้คุณลบ โปรเจ็กต์ที่อยู่ในระบบคลาวด์
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และ ผู้ดูแลระบบ > จัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิก ลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์แล้วคลิกปิดเครื่องเพื่อลบ ให้กับโครงการ
หัวข้อที่เกี่ยวข้อง
- ตอบคำถามตามการสนทนาใน Chat ด้วยแอป Gemini AI Chat
- ตอบสนองต่อเหตุการณ์ด้วย Google Chat, Vertex AI และ Apps Script