บทแนะนำนี้จะแสดงวิธีสร้างแอป Google Chat ให้ทีมใช้จัดการโปรเจ็กต์ได้แบบเรียลไทม์ แอป Chat ใช้ Vertex AI ในการช่วยทีมเขียนเรื่องราวของผู้ใช้ (ซึ่งแสดงฟีเจอร์ของระบบซอฟต์แวร์จากมุมมองของผู้ใช้เพื่อให้ทีมพัฒนา) และ บอกเล่าเรื่องราวในฐานข้อมูล Firestore
-
รูปที่ 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 ที่รับและตอบสนองต่อเหตุการณ์การโต้ตอบใน 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 สำหรับการจัดการโปรเจ็กต์มีการทำงานดังนี้
ผู้ใช้ส่งข้อความใน Chat และเรียกใช้แอป Google Chat สำหรับการจัดการโปรเจ็กต์โดยส่งข้อความโดยตรง พูดถึงในพื้นที่ทำงาน หรือป้อนคำสั่งเครื่องหมายทับ
Chat จะส่งคำขอ HTTP แบบซิงโครนัสไปยังปลายทาง HTTP ของ Cloud Function
แอปการจัดการโปรเจ็กต์ 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: หากต้องการใช้สภาพแวดล้อมการพัฒนาภายใน ให้ติดตั้งและinitialize gcloud CLI
หากต้องการสร้างโปรเจ็กต์ Cloud ให้ใช้คำสั่ง `gcloud project 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
หากจำเป็น ให้ตั้งค่าโปรเจ็กต์ Cloud ปัจจุบันเป็นโปรเจ็กต์ที่คุณสร้างด้วยคำสั่ง
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
การตรวจสอบสิทธิ์และการให้สิทธิ์
คุณไม่จำเป็นต้องกำหนดค่าการตรวจสอบสิทธิ์และการให้สิทธิ์เพื่อทำตามบทแนะนำนี้
ในการเรียกใช้ 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
เอกสารที่จัดระเบียบเป็น คอลเล็กชัน ดูข้อมูลเพิ่มเติมได้ในแผนภาพต่อไปนี้เป็นภาพรวมของโมเดลข้อมูลของแอป 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
- ตัวแปรการกำหนดค่าสภาพแวดล้อมเพื่อทำให้แอป 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
ดาวน์โหลดโค้ดจาก 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
ในชื่อฟังก์ชัน - ในภูมิภาค ให้เลือกภูมิภาค
- ในส่วนการตรวจสอบสิทธิ์ ให้เลือกอนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์
- คลิกถัดไป
ในรันไทม์ ให้เลือก Node.js 20
ในจุดแรกเข้า ให้ลบข้อความเริ่มต้นแล้วป้อน
projectManagementChatApp
ในซอร์สโค้ด ให้เลือกการอัปโหลดแบบ Zip
ในที่เก็บข้อมูลปลายทาง ให้สร้างหรือเลือกที่เก็บข้อมูล ดังนี้
- คลิกเลือกดู
- เลือกที่เก็บข้อมูล
- คลิกเลือก
Google Cloud จะอัปโหลดไฟล์ ZIP และแยกไฟล์คอมโพเนนต์ในที่เก็บข้อมูลนี้ จากนั้น Cloud Functions จะคัดลอกไฟล์คอมโพเนนต์ไปยัง Cloud Function
ในไฟล์ ZIP ให้อัปโหลดไฟล์ ZIP ที่ดาวน์โหลดจาก GitHub จากนั้นดึงข้อมูลและบีบอัดใหม่
- คลิกเลือกดู
- เลือกและเลือกไฟล์ ZIP
- คลิกเปิด
คลิกทำให้ใช้งานได้
หน้ารายละเอียด Cloud Functions จะเปิดขึ้น และฟังก์ชันจะปรากฏขึ้นพร้อมสัญญาณบอกสถานะความคืบหน้า 2 รายการ ได้แก่ ตัวหนึ่งสำหรับบิลด์และอีกตัวหนึ่งสำหรับบริการ เมื่อสัญญาณบอกสถานะความคืบหน้าทั้ง 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 ทริกเกอร์สำหรับ Cloud Function ของแอป 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 ทริกเกอร์ที่คัดลอกมาจากการติดตั้งใช้งาน Cloud Functions โดยมีรูปแบบเป็น
https://
REGION-
PROJECT_ID.cloudfunctions.net/project-management-tutorial
หากคุณทำให้ Cloud Function ใช้งานได้ด้วย gcloud CLI แล้ว นี่คือพร็อพเพอร์ตี้url
ลงทะเบียนคำสั่งเครื่องหมายทับของแอป Chat วิธีลงทะเบียนคำสั่งเครื่องหมายทับ
- ในส่วนคำสั่งเครื่องหมายทับ ให้คลิกเพิ่มคำสั่งเครื่องหมายทับ
สำหรับคำสั่งเครื่องหมายทับแต่ละรายการที่แสดงรายละเอียดในตารางต่อไปนี้ ให้ป้อนชื่อ รหัสคำสั่ง คำอธิบาย แล้วเลือกว่าคำสั่งเครื่องหมายทับเปิดกล่องโต้ตอบหรือไม่ แล้วคลิกเสร็จสิ้น
ชื่อ รหัสคำสั่ง คำอธิบาย เปิดกล่องโต้ตอบ /createUserStory
1 สร้างเรื่องราวด้วยชื่อที่ระบุ ไม่ได้เลือกไว้ /myUserStories
2 แสดงเรื่องราวทั้งหมดที่มอบหมายให้กับผู้ใช้ ไม่ได้เลือกไว้ /userStory
3 แสดงสถานะปัจจุบันของเรื่องราวที่ระบุ ไม่ได้เลือกไว้ /manageUserStories
4 เปิดกล่องโต้ตอบที่แก้ไขเรื่องราวได้ ที่เลือกไว้ /cleanupUserStories
5 ลบเรื่องราวทั้งหมดในพื้นที่ทำงาน ไม่ได้เลือกไว้
ในส่วนระดับการเข้าถึง ให้เลือกทำให้แอป Chat นี้พร้อมใช้งานสำหรับบุคคลและกลุ่มที่ระบุในโดเมน Workspace และป้อนอีเมลของคุณ
(ไม่บังคับ) ในส่วนบันทึก ให้เลือกบันทึกข้อผิดพลาดในการบันทึก
คลิกบันทึก ข้อความการกำหนดค่าที่บันทึกไว้จะปรากฏขึ้น ซึ่งหมายความว่าแอป Chat พร้อมทดสอบ
ทดสอบแอป Chat
ทดสอบแอป Chat สำหรับจัดการโครงการด้วยการรับส่งข้อความ และใช้คำสั่งเครื่องหมายทับเพื่อสร้าง แก้ไข และลบเรื่องราวของผู้ใช้
เปิด Google Chat โดยใช้บัญชี Google Workspace ที่คุณให้ไว้เมื่อเพิ่มตัวคุณเองเป็นผู้ทดสอบที่เชื่อถือได้
- คลิก แชทใหม่
- พิมพ์ชื่อแอป Chat ในช่องเพิ่มผู้คนอย่างน้อย 1 คน
เลือกแอป Chat จากผลการค้นหา ข้อความส่วนตัวจะเปิดขึ้น
- ในข้อความส่วนตัวใหม่ที่มีแอป ให้พิมพ์
Hello
แล้วกดenter
แอป Chat สำหรับการจัดการโครงการจะตอบกลับด้วยเมนูความช่วยเหลือที่อธิบายรายละเอียดว่าแอปทำอะไรได้บ้าง - หากต้องการสร้างเรื่องราว ให้พิมพ์
/createUserStory Test story
ในแถบข้อความ แล้วส่ง แอปการจัดการโปรเจ็กต์ แอป Chat จะตอบกลับด้วยข้อความการ์ดที่ให้รายละเอียดเรื่องราวของผู้ใช้ซึ่งสร้างให้คุณโดยใช้ Generative AI จาก Vertex AI ในคอนโซล ให้ตรวจสอบฐานข้อมูล Firestore เพื่อตรวจสอบระเบียนที่สร้างเกี่ยวกับพื้นที่ทำงานที่คุณเพิ่มแอป Chat, ผู้ใช้ที่โต้ตอบกับฐานข้อมูล และเรื่องราวของผู้ใช้ที่คุณสร้างขึ้น
กลับไปที่ Google Chat
- หากต้องการแก้ไขเรื่องราว ให้คลิกแก้ไข (ไม่บังคับ) เมื่อพอใจกับเรื่องราวแล้ว ให้คลิกบันทึก
- ทดสอบคำสั่งเครื่องหมายทับแต่ละรายการที่แอปรองรับ หากต้องการดู ให้พิมพ์
/
หรือพูดถึงแอป Chat - ลบเรื่องราวของผู้ใช้ทดสอบโดยการออกคำสั่งเครื่องหมายทับ
/cleanupUserStories
อีกวิธีหนึ่งคือ นำแอปออกหรือถอนการติดตั้งแอป เมื่อนำออกแล้ว แอปจะลบเรื่องราวของผู้ใช้ทั้งหมดที่สร้างขึ้นในพื้นที่ทำงานนั้น
แก้ปัญหา
เมื่อแอปหรือการ์ด Google Chat แสดงผลข้อผิดพลาด อินเทอร์เฟซ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ไม่สามารถดำเนินการตามคำขอของคุณ" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาด แต่แอปหรือการ์ด Chat จะให้ผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความการ์ดอาจไม่ปรากฏ
แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของ Chat แต่ก็จะมีข้อความแสดงข้อผิดพลาดที่สื่อความหมายและข้อมูลบันทึกพร้อมช่วยคุณแก้ไขข้อผิดพลาดเมื่อเปิดการบันทึกข้อผิดพลาดสำหรับแอป Chat ไว้ หากต้องการความช่วยเหลือในการดู แก้ไขข้อบกพร่อง และการแก้ไขข้อผิดพลาด โปรดดูหัวข้อแก้ปัญหาและแก้ไขข้อผิดพลาดของ Google Chat
ล้างข้อมูล
เราขอแนะนำให้คุณลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินในบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
- ในคอนโซล Google Cloud ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์แล้วคลิกปิดเพื่อลบโปรเจ็กต์
หัวข้อที่เกี่ยวข้อง
- ตอบคำถามโดยอิงจากการสนทนาใน Chat ด้วยแอปแชท Gemini AI
- ตอบสนองต่อเหตุการณ์ต่างๆ ด้วย Google Chat, Vertex AI และ Apps Script