Trả lời câu hỏi dựa trên các cuộc trò chuyện trong Chat bằng ứng dụng Gemini AI Chat

Hướng dẫn này hướng dẫn cách tạo một ứng dụng Google Chat giúp giải đáp các câu hỏi dựa trên các cuộc trò chuyện trong phòng Chat bằng AI tạo sinh có sự hỗ trợ của Vertex AI với Gemini. Ứng dụng Chat sử dụng API Sự kiện của Google Workspace cùng Pub/Sub để nhận dạng và trả lời các câu hỏi được đăng trong phòng Chat theo thời gian thực, ngay cả khi không được đề cập.

Ứng dụng Chat sử dụng tất cả tin nhắn được gửi trong không gian làm nguồn dữ liệu và cơ sở tri thức: khi có người đặt câu hỏi, ứng dụng Chat sẽ kiểm tra các câu trả lời đã chia sẻ trước đó rồi chia sẻ một câu trả lời. Nếu không tìm thấy câu trả lời, Google sẽ cho biết không thể trả lời. Trên mỗi câu trả lời, người dùng có thể nhấp vào nút hành động phụ để @thắc mắc người quản lý không gian và yêu cầu câu trả lời. Bằng cách sử dụng AI Gemini, ứng dụng Google Chat sẽ thích ứng và phát triển cơ sở tri thức khi liên tục huấn luyện trên các cuộc trò chuyện trong không gian mà ứng dụng được thêm vào.

Dưới đây là cách hoạt động của ứng dụng Chat trong không gian hỗ trợ và hướng dẫn ban đầu cho nhân viên:

  • Khi bạn đề cập đến ứng dụng trợ lý tri thức AI, ứng dụng đó sẽ được thêm vào một không gian.
    Hình 1. Charlie thêm ứng dụng Chat trợ lý tri thức AI vào một không gian Chat.
  • Dana đặt một câu hỏi.
    Hình 2. Dana hỏi xem công ty có đào tạo diễn thuyết trước công chúng hay không.
  • Ứng dụng Chat của trợ lý tri thức AI sẽ trả lời câu hỏi.
    Hình 3. Ứng dụng Chat (trợ lý kiến thức AI) nhắc Vertex AI bằng Gemini trả lời câu hỏi của Dana dựa trên nhật ký trò chuyện của không gian Chat, sau đó chia sẻ câu trả lời.

Điều kiện tiên quyết

Mục tiêu

  • Xây dựng một ứng dụng Chat sử dụng AI tạo sinh để trả lời các câu hỏi dựa trên kiến thức được chia sẻ trong các cuộc trò chuyện trong không gian Chat.
  • Với AI tạo sinh:
    • Phát hiện và trả lời câu hỏi của nhân viên.
    • Liên tục tìm hiểu từ các cuộc trò chuyện đang diễn ra trong một không gian Chat.
  • Nghe và trả lời tin nhắn trong phòng Chat theo thời gian thực ngay cả khi ứng dụng Chat không được nhắn tin trực tiếp.
  • Lưu trữ thông báo bằng cách ghi vào và đọc từ cơ sở dữ liệu Firestore.
  • Hỗ trợ cộng tác trong phòng Chat bằng cách đề cập đến người quản lý không gian khi không tìm thấy câu trả lời cho câu hỏi.

Kiến trúc

Sơ đồ sau đây cho thấy cấu trúc của Google Workspace và các tài nguyên của Google Cloud mà ứng dụng Chat của trợ lý kiến thức AI sử dụng.

Sơ đồ cấu trúc của ứng dụng Chat hỗ trợ trí tuệ nhân tạo

Ứng dụng Chat có trợ lý tri thức AI hoạt động như sau:

  • Người dùng thêm ứng dụng Chat trợ lý kiến thức AI vào một không gian Chat:

    1. Ứng dụng Chat sẽ nhắc người dùng đã thêm ứng dụng vào không gian Chat để định cấu hình quy trình xác thực và uỷ quyền.

    2. Ứng dụng Chat tìm nạp tin nhắn của không gian bằng cách gọi phương thức spaces.messages.list trong API Chat, sau đó lưu trữ các tin nhắn đã tìm nạp trong cơ sở dữ liệu Firestore.

    3. Ứng dụng Chat gọi phương thức subscriptions.create trong API Sự kiện của Google Workspace để bắt đầu lắng nghe các sự kiện, chẳng hạn như tin nhắn trong không gian. Điểm cuối thông báo của gói thuê bao là một chủ đề Pub/Sub sử dụng Eventarc để chuyển tiếp sự kiện đến ứng dụng Chat.

    4. Ứng dụng Chat sẽ đăng một tin nhắn giới thiệu lên không gian.

  • Một người dùng trong phòng Chat đăng một tin nhắn:

    1. Ứng dụng Chat nhận tin nhắn theo thời gian thực từ chủ đề Pub/Sub.

    2. Ứng dụng Chat sẽ thêm tin nhắn vào cơ sở dữ liệu Firestore.

      Nếu sau đó người dùng chỉnh sửa hoặc xoá tin nhắn, thì ứng dụng Chat sẽ nhận được sự kiện đã cập nhật hoặc bị xoá theo thời gian thực, sau đó cập nhật hoặc xoá tin nhắn trong cơ sở dữ liệu Firestore.

    3. Ứng dụng Chat sẽ gửi tin nhắn đến Vertex AI bằng Gemini:

      1. Lời nhắc này hướng dẫn Vertex AI bằng Gemini để kiểm tra xem thông báo có chứa câu hỏi hay không. Nếu có, Gemini sẽ trả lời câu hỏi dựa trên nhật ký tin nhắn của phòng Chat được lưu giữ trong Firestore và ứng dụng Google Chat, sau đó sẽ gửi tin nhắn đến phòng Chat. Nếu không thì đừng phản hồi.

      2. Nếu Vertex AI với Gemini trả lời câu hỏi, ứng dụng Chat sẽ đăng câu trả lời bằng cách gọi phương thức spaces.messages.create trong Chat API bằng cách xác thực ứng dụng.

        Nếu Vertex AI có tích hợp Gemini không thể trả lời câu hỏi, thì ứng dụng Chat sẽ đăng một thông báo cho biết ứng dụng này không tìm thấy câu trả lời cho câu hỏi đó trong nhật ký trò chuyện của phòng Chat.

        Tin nhắn luôn bao gồm một nút hành động trên phụ kiện mà người dùng có thể nhấp vào, khiến ứng dụng Chat đề cập đến người quản lý không gian bằng @ để yêu cầu họ trả lời.

  • Ứng dụng Chat sẽ nhận được một thông báo trong vòng đời từ API Sự kiện của Google Workspace cho biết gói thuê bao của phòng Chat sắp hết hạn:

    1. Ứng dụng Chat gửi yêu cầu gia hạn gói thuê bao bằng cách gọi phương thức subscriptions.patch trong API Sự kiện của Google Workspace.
  • Ứng dụng Chat bị xoá khỏi không gian Chat:

    1. Ứng dụng Chat xoá gói thuê bao bằng cách gọi phương thức subscriptions.delete trong API Sự kiện của Google Workspace.

    2. Ứng dụng Chat sẽ xoá dữ liệu của phòng Chat khỏi Firestore.

Xem xét các sản phẩm mà ứng dụng Chat (trợ lý tri thức AI) sử dụng

Ứng dụng trợ lý tri thức AI trong Chat sử dụng các sản phẩm sau đây của Google Workspace và Google Cloud:

  • Vertex AI API với Gemini: Một nền tảng AI tạo sinh sử dụng công nghệ của Gemini. Ứng dụng Chat của trợ lý tri thức AI sử dụng API Vertex AI với Gemini để nhận dạng, hiểu và trả lời câu hỏi của nhân viên.
  • API Chat: Một API để phát triển những ứng dụng Google Chat có chức năng nhận và phản hồi các sự kiện tương tác trong Chat, chẳng hạn như tin nhắn. Ứng dụng trợ lý tri thức AI trong Chat sử dụng API Chat để:
    • Nhận và trả lời các sự kiện tương tác do Chat gửi.
    • Liệt kê các tin nhắn đã gửi trong không gian.
    • Đăng câu trả lời cho câu hỏi của người dùng trong một không gian.
    • Định cấu hình các thuộc tính xác định cách xuất hiện trong Chat, chẳng hạn như tên và hình đại diện.
  • API Sự kiện của Google Workspace: API này cho phép bạn đăng ký sự kiện và quản lý thông báo thay đổi trên các ứng dụng của Google Workspace. Ứng dụng Chat của Trợ lý kiến thức AI sử dụng API Sự kiện của Google Workspace để theo dõi các tin nhắn được đăng trong một không gian Chat. Nhờ đó, ứng dụng có thể phát hiện và trả lời các câu hỏi ngay cả khi không được đề cập.
  • Firestore: Cơ sở dữ liệu tài liệu không máy chủ. Trợ lý tri thức AI Ứng dụng Chat sử dụng Firestore để lưu trữ dữ liệu về tin nhắn gửi trong phòng Chat.
  • Pub/Sub: Pub/Sub là một dịch vụ nhắn tin không đồng bộ và có thể mở rộng. Dịch vụ này sẽ tách riêng các dịch vụ tạo tin nhắn khỏi các dịch vụ xử lý các tin nhắn đó. Ứng dụng Chat của trợ lý kiến thức AI sử dụng Pub/Sub để nhận các sự kiện đăng ký từ các phòng Chat.
  • Eventarc: Eventarc cho phép bạn xây dựng các kiến trúc hướng sự kiện mà không cần phải triển khai, tuỳ chỉnh hoặc duy trì cơ sở hạ tầng chưa có đủ. Trợ lý tri thức ứng dụng Chat sử dụng Eventarc để định tuyến các sự kiện từ Pub/Sub đến một phòng Chat và Hàm đám mây nhận và xử lý các sự kiện liên quan đến gói thuê bao.
  • Chức năng đám mây: Một dịch vụ điện toán không máy chủ gọn nhẹ cho phép bạn tạo các hàm độc lập và mục đích duy nhất, có thể phản hồi các sự kiện đăng ký và tương tác trong Chat mà không cần quản lý máy chủ hoặc môi trường thời gian chạy. Ứng dụng Chat của trợ lý tri thức AI sử dụng hai Cloud Functions có tên là:
    • app: Lưu trữ điểm cuối HTTP mà Chat gửi các sự kiện tương tác đến và dưới dạng nền tảng điện toán để chạy logic xử lý và phản hồi các sự kiện này.
    • eventsApp: Nhận và xử lý các sự kiện trong không gian Chat như tin nhắn từ gói thuê bao Pub/Sub.
    Cloud Functions sử dụng các sản phẩm sau đây của Google Cloud để xây dựng và lưu trữ tài nguyên điện toán:
    • Cloud Build: Một nền tảng tích hợp, phân phối và triển khai liên tục được quản lý toàn diện, chạy các bản dựng tự động.
    • Cloud Run: Một môi trường được quản lý toàn diện để chạy các ứng dụng trong vùng chứa.

Chuẩn bị môi trường

Phần này trình bày cách tạo và định cấu hình dự án trên Google Cloud cho ứng dụng Chat.

Tạo dự án trên Google Cloud

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > IAM và Quản trị viên > Tạo dự án.

    Chuyển đến phần Tạo dự án

  2. Trong trường Project Name (Tên dự án), hãy nhập tên mô tả cho dự án của bạn.

    Không bắt buộc: Để chỉnh sửa Mã dự án, hãy nhấp vào Chỉnh sửa. Bạn không thể thay đổi mã dự án sau khi tạo dự án, vì vậy, hãy chọn một mã đáp ứng nhu cầu của bạn trong suốt thời gian hoạt động của dự án.

  3. Trong trường Vị trí, hãy nhấp vào Duyệt xem để hiển thị các vị trí tiềm năng cho dự án của bạn. Sau đó, hãy nhấp vào Chọn.
  4. Nhấp vào Tạo. Bảng điều khiển của Google Cloud sẽ chuyển bạn đến Trang tổng quan và dự án của bạn sẽ được tạo trong vòng vài phút.

Giao diện dòng lệnh (CLI) của gcloud

Ở một trong các môi trường phát triển sau đây, hãy truy cập vào Google Cloud CLI (gcloud):

  • Cloud Shell: Để sử dụng thiết bị đầu cuối trực tuyến đã thiết lập gcloud CLI, hãy kích hoạt Cloud Shell.
    Kích hoạt Cloud Shell
  • Local Shell: Để sử dụng môi trường phát triển cục bộ, hãy cài đặtkhởi động CLI của gcloud.
    Để tạo dự án trên Cloud, hãy sử dụng lệnh gcloud projects create:
    gcloud projects create PROJECT_ID
    Thay thế PROJECT_ID bằng cách đặt mã nhận dạng cho dự án bạn muốn tạo.

Bật tính năng thanh toán cho dự án trên Google Cloud

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến phần Thanh toán. Nhấp vào biểu tượng Trình đơn > Thanh toán > Dự án của tôi.

    Chuyển đến phần Thanh toán cho Dự án của tôi

  2. Trong phần Chọn tổ chức, hãy chọn tổ chức được liên kết với dự án Google Cloud của bạn.
  3. Trong hàng dự án, hãy mở trình đơn Actions (Thao tác) (), nhấp vào Change billing (Thay đổi thông tin thanh toán) rồi chọn tài khoản Cloud Billing.
  4. Nhấp vào Đặt tài khoản.

gcloud CLI

  1. Để liệt kê các tài khoản thanh toán hiện có, hãy chạy:
    gcloud billing accounts list
  2. Cách liên kết tài khoản thanh toán với một dự án trên Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Thay thế đoạn mã sau:

    • PROJECT_IDMã dự án của dự án trên Google Cloud mà bạn muốn bật tính năng thanh toán.
    • BILLING_ACCOUNT_IDmã tài khoản thanh toán để liên kết với dự án trên Google Cloud.

Bật API

Bảng điều khiển Google Cloud

  1. Trong Google Cloud Console, hãy bật API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub, API Google Workspace Events, API Eventarc và API Quản trị Cloud Run.

    Bật API

  2. Xác nhận rằng bạn đang bật các API trong đúng dự án trên Google Cloud, sau đó nhấp vào Tiếp theo.

  3. Xác nhận rằng bạn đang bật đúng API, sau đó nhấp vào Bật.

gcloud CLI

  1. Nếu cần, hãy đặt dự án hiện tại trên Google Cloud thành dự án mà bạn đã tạo:

    gcloud config set project PROJECT_ID

    Thay thế PROJECT_ID bằng Mã dự án của dự án trên Google Cloud mà bạn đã tạo.

  2. Bật API Google Chat, API Vertex AI, API Cloud Functions, API Firestore, API Cloud Build, API Pub/Sub, API Google Workspace Events, API Eventarc và API quản trị Cloud Run:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

Thiết lập tính năng xác thực và uỷ quyền

Tính năng xác thực và uỷ quyền cho phép ứng dụng Chat truy cập vào các tài nguyên trong Google Workspace và Google Cloud.

Trong hướng dẫn này, bạn sẽ phát hành ứng dụng Google Chat trong nội bộ để có thể sử dụng thông tin về phần giữ chỗ. Trước khi phát hành ứng dụng Google Chat ra bên ngoài, hãy thay thế thông tin phần giữ chỗ bằng thông tin thực tế cho màn hình xin phép.

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > API và dịch vụ > Màn hình xin phép bằng OAuth.

    Chuyển đến màn hình xin phép bằng OAuth

  2. Trong mục Loại người dùng, hãy chọn Nội bộ, rồi nhấp vào Tạo.

  3. Trong App name (Tên ứng dụng), hãy nhập AI knowledge assistant.

  4. Trong mục Email hỗ trợ người dùng, hãy chọn địa chỉ email của bạn hoặc một nhóm Google thích hợp.

  5. Trong phần Thông tin liên hệ của nhà phát triển, hãy nhập địa chỉ email của bạn.

  6. Nhấp vào Lưu và tiếp tục.

  7. Nhấp vào Add or Remove Scopes (Thêm hoặc xoá phạm vi). Một bảng điều khiển sẽ xuất hiện với danh sách phạm vi cho từng API mà bạn đã bật trong dự án trên Google Cloud.

  8. Trong mục Thêm phạm vi theo cách thủ công, hãy dán phạm vi sau:

    • https://www.googleapis.com/auth/chat.messages
  9. Nhấp vào Thêm vào bảng.

  10. Nhấp vào Cập nhật.

  11. Nhấp vào Lưu và tiếp tục.

  12. Xem lại thông tin tóm tắt về quá trình đăng ký ứng dụng, sau đó nhấp vào Quay lại trang tổng quan.

Tạo thông tin xác thực cho mã ứng dụng khách OAuth

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > API và dịch vụ > Thông tin xác thực.

    Chuyển đến phần Thông tin xác thực

  2. Nhấp vào Tạo thông tin xác thực > Mã ứng dụng khách OAuth.

  3. Nhấp vào Loại ứng dụng > Ứng dụng web.

  4. Trong trường Name (Tên), hãy nhập tên cho thông tin xác thực. Tên này chỉ xuất hiện trong Google Cloud Console.

  5. Trong mục URI chuyển hướng được uỷ quyền, hãy nhấp vào Thêm URI.

  6. Trong URI 1, hãy nhập nội dung sau:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Thay thế đoạn mã sau:

    • REGION: khu vực của Hàm trên đám mây, chẳng hạn như us-central1. Sau đó, khi tạo hai Hàm trên đám mây, bạn phải đặt khu vực của các hàm đó thành giá trị này.
    • PROJECT_ID: Mã dự án của dự án trên Google Cloud bạn đã tạo.
  7. Nhấp vào Tạo.

  8. Trong cửa sổ Ứng dụng OAuth đã tạo, hãy nhấp vào Tải JSON xuống.

  9. Lưu tệp đã tải xuống dưới dạng client_secrets.json. Sau đó, khi tạo hai Hàm trên đám mây, bạn sẽ thêm tệp client_secrets.json vào mỗi lần triển khai.

  10. Nhấp vào OK.

Tạo chủ đề Pub/Sub

Chủ đề Pub/Sub hoạt động với API Sự kiện của Google Workspace để đăng ký các sự kiện trong một không gian Chat như tin nhắn và thông báo cho ứng dụng Chat theo thời gian thực.

Dưới đây là cách tạo chủ đề Pub/Sub:

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > Pub/Sub.

    Truy cập Pub/Sub

  2. Nhấp vào Tạo chủ đề.

  3. Trong Mã chủ đề, hãy nhập events-api.

  4. Bỏ chọn Add a default subscription (Thêm gói thuê bao mặc định).

  5. Trong phần Mã hoá, hãy chọn Khoá mã hoá do Google quản lý.

  6. Nhấp vào Tạo. Chủ đề Pub/Sub sẽ xuất hiện.

  7. Để chủ đề Pub/Sub này và API Sự kiện của Google Workspace hoạt động cùng nhau, hãy cấp quyền cho người dùng Chat IAM để đăng lên chủ đề Pub/Sub:

    1. Trong bảng điều khiển events-api, trong phần PERMISSIONS (QUYỀN), hãy nhấp vào Add Principal (Thêm tài khoản chính).

    2. Trong phần Thêm hiệu trưởng, trong phần Hiệu trưởng mới, hãy nhập chat-api-push@system.gserviceaccount.com.

    3. Trong phần Chỉ định vai trò, trong mục Chọn vai trò, hãy chọn Pub/Sub > Nhà xuất bản Pub/Sub.

    4. Nhấp vào Lưu.

Giao diện dòng lệnh (CLI) của gcloud

  1. Tạo một chủ đề trong Pub/Sub có mã chủ đề events-api:

    gcloud pubsub topics create events-api
  2. Cấp quyền cho người dùng Chat IAM để đăng lên chủ đề Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Tạo cơ sở dữ liệu Firestore

Cơ sở dữ liệu Firestore lưu trữ và truy xuất dữ liệu từ các phòng Chat, chẳng hạn như tin nhắn. Bạn không xác định mô hình dữ liệu. Mô hình này được đặt ngầm trong mã mẫu bằng các tệp model/message.jsservices/firestore-service.js.

Cơ sở dữ liệu của ứng dụng Chat hỗ trợ trí tuệ nhân tạo (AI) sử dụng mô hình dữ liệu NoSQL dựa trên tài liệu được sắp xếp thành bộ sưu tập. Để tìm hiểu thêm, hãy xem bài viết Khôi phục mô hình dữ liệu.

Sơ đồ dưới đây là thông tin tổng quan về mô hình dữ liệu của ứng dụng Chat trên trợ lý trí tuệ nhân tạo:

Mô hình dữ liệu của cơ sở dữ liệu Firestore.

Phần gốc chứa hai tập hợp:

  1. spaces, trong đó mỗi tài liệu đại diện cho một phòng Chat mà ứng dụng Chat sẽ được thêm vào. Mỗi thông báo được biểu thị bằng một tài liệu trong bộ sưu tập con messages.

  2. users, trong đó mỗi tài liệu đại diện cho một người dùng đã thêm ứng dụng Chat vào một không gian Chat.

Xem định nghĩa về bộ sưu tập, tài liệu và trường

spaces

Một không gian Chat có ứng dụng Chat trợ lý tri thức AI.

Trường
Document IDString
Mã nhận dạng duy nhất của một không gian cụ thể. Một phần của tên tài nguyên của không gian trong API Chat.
messagesSubcollection of Documents (messages)
Tin nhắn được gửi trong phòng Chat. Tương ứng với Document ID của message trong Firebase.
spaceNameString
Tên riêng biệt của không gian trong API Chat. Tương ứng với tên tài nguyên của không gian trong API Chat.

messages

Tin nhắn được gửi trong phòng Chat.

Trường
Document IDString
Mã nhận dạng duy nhất của một thông báo cụ thể.
nameString
Tên duy nhất của một tin nhắn trong Chat API. Tương ứng với tên tài nguyên của tin nhắn trong API Chat.
textString
Nội dung văn bản của tin nhắn.
timeString (Timestamp format)
Thời gian tạo thông báo.

users

Những người dùng đã thêm trợ lý tri thức ứng dụng Chat vào phòng Chat.

Trường
Document IDString
Mã nhận dạng duy nhất của một người dùng cụ thể.
accessTokenString
Mã truy cập được cấp trong quá trình uỷ quyền người dùng OAuth 2.0 dùng để gọi các API của Google Workspace.
refreshTokenString
Mã làm mới được cấp trong quá trình uỷ quyền cho người dùng OAuth 2.0.

Dưới đây là cách tạo cơ sở dữ liệu Firestore:

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > Firestore.

    Chuyển đến Firestore

  2. Nhấp vào Tạo cơ sở dữ liệu.

  3. Trong phần Chọn chế độ Firestore, hãy nhấp vào Chế độ gốc.

  4. Nhấp vào Tiếp tục.

  5. Định cấu hình cơ sở dữ liệu:

    1. Trong phần Đặt tên cho cơ sở dữ liệu, hãy để Mã cơ sở dữ liệu(default).

    2. Trong mục Loại vị trí, hãy chọn Khu vực.

    3. Trong mục Region (Khu vực), hãy chỉ định một khu vực cho cơ sở dữ liệu của bạn, chẳng hạn như us-central1. Để có hiệu suất tốt nhất, hãy chọn vị trí giống hoặc gần với vị trí của Hàm trên đám mây trong ứng dụng Chat.

  6. Nhấp vào Tạo cơ sở dữ liệu.

gcloud CLI

  • Tạo cơ sở dữ liệu Firestore ở chế độ Gốc:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Thay thế LOCATION bằng tên của một Vùng khôi phục dữ liệu, chẳng hạn như us-central1. Để đạt được hiệu suất tốt nhất, hãy chọn vị trí giống hoặc gần với vị trí của Hàm trên đám mây trong ứng dụng Chat.

Tạo và triển khai ứng dụng Chat

Sau khi tạo và định cấu hình dự án trên Google Cloud, bạn đã sẵn sàng xây dựng và triển khai ứng dụng Chat. Trong phần này, bạn sẽ thực hiện những việc sau:

  1. Tạo và triển khai hai Chức năng trên đám mây. Một mã để phản hồi các sự kiện tương tác trong Chat và một mã khác để phản hồi các sự kiện Pub/Sub.
  2. Tạo và triển khai ứng dụng Chat trên trang cấu hình API Google Chat.

Tạo và triển khai Cloud Functions

Trong phần này, bạn sẽ tạo và triển khai 2 Cloud Functions có tên là:

  • app: Lưu trữ và chạy mã của ứng dụng Chat để phản hồi các sự kiện nhận được từ Chat dưới dạng yêu cầu HTTP.
  • eventsApp: Nhận và xử lý các sự kiện trong phòng Chat, chẳng hạn như tin nhắn từ Pub/Sub.

Đồng thời, các Chức năng đám mây này tạo thành logic ứng dụng của ứng dụng Chat của trợ lý trí tuệ nhân tạo.

Trước khi tạo Cloud Functions, hãy dành chút thời gian để xem và làm quen với mã mẫu được lưu trữ trên GitHub (không bắt buộc).

Xem trên GitHub

Tạo và triển khai app

Bảng điều khiển Google Cloud

  1. Tải mã xuống từ GitHub dưới dạng tệp zip.

    Tải tệp zip xuống

  2. Giải nén tệp zip đã tải xuống.

    Thư mục đã trích xuất chứa toàn bộ kho lưu trữ các mẫu trên Google Workspace.

  3. Trong thư mục đã giải nén, hãy chuyển đến thư mục google-chat-samples-main/node/ai-knowledge-assistant.

  4. Trong thư mục google-chat-samples/node/ai-knowledge-assistant, hãy thêm tệp client_secrets.json mà bạn đã tải xuống khi tạo thông tin xác thực mã ứng dụng khách OAuth để xác thực và uỷ quyền.

  5. Nén nội dung của thư mục ai-knowledge-assistant thành một tệp zip.

    Thư mục gốc của tệp zip phải chứa các tệp và thư mục sau:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > Hàm trên đám mây.

    Chuyển đến Cloud Functions

    Hãy đảm bảo rằng bạn đã chọn dự án Google Cloud cho ứng dụng Chat.

  7. Nhấp vào Tạo hàm.

  8. Trên trang Tạo hàm, hãy thiết lập hàm của bạn:

    1. Trong mục Môi trường, hãy chọn Chức năng chạy Cloud.
    2. Trong Function name (Tên hàm), hãy nhập app.
    3. Trong Khu vực, hãy chọn một khu vực, chẳng hạn như us-central1. Khu vực này phải khớp với khu vực bạn đặt trong URI chuyển hướng được uỷ quyền khi bạn tạo thông tin xác thực mã ứng dụng khách OAuth để xác thực và uỷ quyền.
    4. Trong mục Loại điều kiện kích hoạt, hãy chọn HTTPS.
    5. Trong phần Xác thực, hãy chọn Cho phép các lệnh gọi chưa được xác thực.
    6. Nhấp vào Tiếp theo.
  9. Trong Runtime (Thời gian chạy), hãy chọn Node.js 20.

  10. Trong Entry point (Điểm truy cập), hãy xoá văn bản mặc định rồi nhập app.

  11. Trong phần Mã nguồn, hãy chọn Tải tệp ZIP lên.

  12. Trong Bộ chứa đích, hãy create hoặc chọn một bộ chứa:

    1. Nhấp vào Duyệt xem.
    2. Chọn một bộ chứa.
    3. Nhấp vào Chọn.

    Google Cloud sẽ tải tệp zip lên và trích xuất các tệp thành phần trong bộ chứa này. Sau đó, Cloud Functions sẽ sao chép các tệp thành phần vào Cloud Function.

  13. Trong mục Tệp ZIP, hãy tải tệp zip mà bạn đã tải xuống từ GitHub, giải nén và nén lại lên:

    1. Nhấp vào Duyệt xem.
    2. Di chuyển đến và chọn tệp zip.
    3. Nhấp vào Mở.
  14. Nhấp vào Triển khai.

    Trang Chi tiết hàm đám mây sẽ mở ra và hàm của bạn sẽ xuất hiện cùng với hai chỉ báo tiến trình: một chỉ báo cho bản dựng và một chỉ báo cho dịch vụ. Khi cả hai chỉ báo tiến trình biến mất và được thay thế bằng một dấu kiểm, tức là chức năng của bạn sẽ được triển khai và sẵn sàng.

  15. Chỉnh sửa mã mẫu để đặt hằng số:

    1. Trên trang Chi tiết về hàm trên đám mây, hãy nhấp vào Chỉnh sửa.
    2. Nhấp vào Tiếp theo.
    3. Trong Mã nguồn, chọn Trình chỉnh sửa cùng dòng.
    4. Trong trình chỉnh sửa cùng dòng, hãy mở và chỉnh sửa tệp env.js:
      1. Đặt giá trị của project thành Mã dự án trên Google Cloud.
      2. Đặt giá trị của location thành vùng của Hàm đám mây, chẳng hạn như us-central1.
  16. Nhấp vào Triển khai.

gcloud CLI

  1. Sao chép mã lấy từ GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Chuyển sang thư mục chứa mã cho ứng dụng trợ lý trợ lý ảo AI này:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. Trong thư mục google-chat-samples/node/ai-knowledge-assistant, hãy thêm tệp client_secrets.json mà bạn đã tải xuống khi tạo thông tin xác thực mã ứng dụng khách OAuth để xác thực và uỷ quyền.

  4. Chỉnh sửa tệp env.js để đặt biến môi trường:

    1. Đặt giá trị của project thành Mã dự án trên Google Cloud.
    2. Đặt giá trị của location thành vùng của Hàm đám mây, chẳng hạn như us-central1.
  5. Triển khai Hàm trên đám mây cho Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    Thay thế REGION bằng giá trị của khu vực của Hàm trên đám mây để khớp với giá trị được đặt trong tệp env.js, chẳng hạn như us-central1.

Tạo và triển khai eventsApp

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > Hàm trên đám mây.

    Chuyển đến Cloud Functions

    Hãy đảm bảo rằng bạn đã chọn dự án Google Cloud cho ứng dụng Chat.

  2. Nhấp vào Tạo hàm.

  3. Trên trang Tạo hàm, hãy thiết lập hàm của bạn:

    1. Trong mục Môi trường, hãy chọn Chức năng chạy Cloud.
    2. Trong Function name (Tên hàm), hãy nhập eventsApp.
    3. Trong Khu vực, hãy chọn một khu vực, chẳng hạn như us-central1. Khu vực này phải khớp với khu vực bạn đặt trong URI chuyển hướng được uỷ quyền khi bạn tạo thông tin xác thực mã ứng dụng khách OAuth để xác thực và uỷ quyền.
    4. Trong phần Loại điều kiện kích hoạt, hãy chọn Cloud Pub/Sub.
    5. Trong chủ đề Cloud Pub/Sub, hãy chọn tên chủ đề Pub/Sub mà bạn đã tạo, có định dạng projects/PROJECT/topics/events-api, trong đó PROJECT là mã dự án Cloud của bạn.
    6. Nếu bạn thấy thông báo bắt đầu bằng Service account(s) might not have enough permissions to deploy the function with the selected trigger., hãy nhấp vào Cấp tất cả.
    7. Nhấp vào Tiếp theo.
  4. Trong Thời gian chạy, hãy chọn Node.js 20.

  5. Trong Entrypoint (Điểm truy cập), hãy xoá văn bản mặc định rồi nhập eventsApp.

  6. Trong phần Mã nguồn, hãy chọn Tệp ZIP từ Cloud Storage.

  7. Trong mục Vị trí Cloud Storage, hãy nhấp vào Duyệt qua.

  8. Chọn bộ chứa mà bạn đã tải tệp zip lên khi tạo app Cloud Function.

  9. Nhấp vào tệp zip mà bạn đã tải lên.

  10. Nhấp vào Chọn.

  11. Nhấp vào Triển khai.

    Trang Chi tiết hàm đám mây sẽ mở ra và hàm của bạn sẽ xuất hiện với 3 chỉ báo tiến trình: một chỉ báo cho bản dựng, một chỉ báo cho dịch vụ và một chỉ báo cho điều kiện kích hoạt. Khi cả ba chỉ báo tiến trình biến mất và được thay thế bằng dấu kiểm, hàm của bạn đã được triển khai và sẵn sàng.

  12. Chỉnh sửa mã mẫu để đặt hằng số:

    1. Trên trang Chi tiết về hàm trên đám mây, hãy nhấp vào Chỉnh sửa.
    2. Nhấp vào Tiếp theo.
    3. Trong Mã nguồn, chọn Trình chỉnh sửa cùng dòng.
    4. Trong trình chỉnh sửa cùng dòng, hãy mở và chỉnh sửa tệp env.js:
      1. Đặt giá trị của project thành Mã dự án trên Google Cloud.
      2. Đặt giá trị của location thành khu vực của Hàm trên đám mây, chẳng hạn như us-central1.
  13. Nhấp vào Triển khai.

Giao diện dòng lệnh (CLI) của gcloud

  1. Trong gcloud CLI, nếu bạn chưa sao chép, hãy chuyển sang thư mục chứa mã cho ứng dụng trợ lý kiến thức AI này trong Chat mà trước đây bạn đã sao chép từ GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. Trong thư mục google-chat-samples/node/ai-knowledge-assistant, hãy thêm tệp client_secrets.json mà bạn đã tải xuống khi tạo thông tin xác thực mã ứng dụng khách OAuth để xác thực và uỷ quyền.

  3. Chỉnh sửa tệp env.js để đặt các biến môi trường:

    1. Đặt giá trị của project thành Mã dự án trên Google Cloud.
    2. Đặt giá trị của location thành khu vực của Hàm trên đám mây, chẳng hạn như us-central1.
  4. Triển khai Hàm trên đám mây cho Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    Thay thế REGION bằng giá trị khu vực của Hàm đám mây để khớp với giá trị được đặt trong tệp env.js, chẳng hạn như us-central1.

Sao chép URL của điều kiện kích hoạt của Hàm trên đám mây app

Bạn sẽ dán URL kích hoạt Hàm đám mây app vào phần tiếp theo khi Định cấu hình ứng dụng Chat trong bảng điều khiển Google Cloud.

Bảng điều khiển Google Cloud

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến Trình đơn > Cloud Functions.

    Chuyển đến Cloud Functions

  2. Trong cột Name (Tên) của danh sách Cloud Functions, hãy nhấp vào app.

  3. Nhấp vào Điều kiện kích hoạt.

  4. Sao chép URL.

gcloud CLI

  1. Mô tả Chức năng đám mây app:

    gcloud functions describe app
  2. Sao chép thuộc tính url.

Định cấu hình ứng dụng Chat trong Google Cloud Console

Phần này trình bày cách định cấu hình API Chat trong Google Cloud Console bằng thông tin về ứng dụng Chat, bao gồm tên ứng dụng Chat và URL điều kiện kích hoạt của Hàm trên đám mây của ứng dụng Chat mà ứng dụng này gửi sự kiện tương tác trên Chat.

  1. Trong bảng điều khiển Google Cloud, hãy nhấp vào Trình đơn > Sản phẩm khác > Google Workspace > Thư viện sản phẩm > API Google Chat > Quản lý > Cấu hình.

    Chuyển đến phần cấu hình API Chat

  2. Trong Tên ứng dụng, hãy nhập AI knowledge assistant.

  3. Trong URL hình đại diện, hãy nhập https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. Trong mục Mô tả, hãy nhập Answers questions with AI.

  5. Nhấp vào nút bật/tắt Bật tính năng tương tác để chuyển sang vị trí bật.

  6. Trong phần Chức năng, hãy chọn Tham gia không gian và cuộc trò chuyện nhóm.

  7. Trong phần Connection settings (Cài đặt kết nối), hãy chọn HTTP cuối URL (URL điểm cuối HTTP).

  8. Trong URL điểm cuối HTTP, hãy dán URL của điều kiện kích hoạt từ Hàm trên đám mây app có định dạng là https://REGION-PROJECT_ID.cloudfunctions.net/app, trong đó REGION là khu vực của Hàm trên đám mây, chẳng hạn như us-central1PROJECT_IDMã dự án của dự án trên đám mây mà bạn đã tạo.

  9. Trong phần Chế độ hiển thị, hãy chọn Cung cấp ứng dụng Chat này cho những người và nhóm cụ thể trong miền Workspace của bạn rồi nhập địa chỉ email của bạn.

  10. Trong phần Nhật ký, bạn có thể chọn Ghi lỗi vào tính năng Ghi nhật ký.

  11. Nhấp vào Lưu. Một thông báo đã lưu cấu hình sẽ xuất hiện, tức là ứng dụng Chat đã sẵn sàng để thử nghiệm.

Kiểm thử ứng dụng Chat

Kiểm thử ứng dụng trợ lý kiến thức AI trong Chat trong phòng Chat có tin nhắn bằng cách đặt câu hỏi mà trợ lý tri thức AI mà ứng dụng Chat có thể trả lời.

Sau đây là một số cách để kiểm thử ứng dụng Chat của trợ lý tri thức AI:

  • Thêm ứng dụng trợ lý kiến thức AI trong Chat vào một phòng Chat hiện có và đặt câu hỏi liên quan đến không gian đó.
  • Tạo một phòng Chat và đăng một vài tin nhắn để sử dụng làm nguồn dữ liệu. Tin nhắn có thể được lấy từ Gemini bằng câu lệnh như Answer 20 common onboarding questions employees ask their teams. Hoặc bạn có thể dán một vài đoạn trong hướng dẫn tổng quan về quá trình phát triển với Chat rồi đặt câu hỏi về tin nhắn đó.

Đối với hướng dẫn này, hãy tạo một phòng Chat và dán một vài đoạn trong hướng dẫn Tổng quan về hoạt động phát triển bằng Chat.

  1. Mở Google Chat.

    Truy cập Google Chat

  2. Cách tạo không gian Chat:

    1. Nhấp vào Cuộc trò chuyện mới > Tạo không gian.

    2. Trong Tên không gian, hãy nhập Testing AI knowledge assistant app.

    3. Trong phần Không gian này dùng để làm gì?, hãy chọn Cộng tác.

    4. Trong phần Cài đặt quyền truy cập, hãy chọn những người có thể truy cập vào không gian.

    5. Nhấp vào Tạo.

  3. Thêm thư để dùng làm nguồn dữ liệu:

    1. Trong trình duyệt web, hãy truy cập vào hướng dẫn tổng quan về việc phát triển bằng Chat.

    2. Sao chép và dán nội dung của hướng dẫn vào phòng Chat mà bạn đã tạo.

  4. Thêm ứng dụng Chat trợ lý tri thức dựa trên AI:

    1. Trong thanh soạn tin nhắn, hãy nhập @AI knowledge assistant. Trong trình đơn đề xuất xuất hiện, hãy chọn ứng dụng Chat trợ lý tri thức AI rồi nhấn enter.

    2. Một thông báo sẽ xuất hiện hỏi xem bạn có muốn thêm ứng dụng Chat của Trợ lý kiến thức AI vào không gian không. Nhấp vào Thêm vào không gian.

    3. Nếu đây là lần đầu tiên bạn thêm ứng dụng Chat vào không gian, bạn phải định cấu hình tính năng xác thực và uỷ quyền cho ứng dụng Chat:

      1. Nhấp vào Định cấu hình.
      2. Một cửa sổ trình duyệt hoặc thẻ mới mở ra yêu cầu bạn chọn một Tài khoản Google. Chọn tài khoản mà bạn đang thử nghiệm.
      3. Xem xét các quyền mà Trợ lý kiến thức AI trong ứng dụng Chat yêu cầu. Để cấp quyền, hãy nhấp vào Cho phép.
      4. Một thông báo có nội dung You may close this page now. sẽ xuất hiện. Đóng thẻ hoặc cửa sổ trình duyệt rồi quay lại phòng Chat.
  5. Đặt câu hỏi:

    1. Trong thanh soạn tin nhắn, hãy nhập một câu hỏi như What are Google Chat apps?

    2. Ứng dụng Chat của trợ lý kiến thức AI sẽ trả lời.

    3. Nếu câu trả lời chưa chính xác hoặc chưa đủ để giúp AI cải thiện nhật ký trò chuyện, hãy nhấp vào Get trợ giúp (không bắt buộc). Ứng dụng Chat của trợ lý tri thức AI đề cập đến một người quản lý không gian và yêu cầu họ trả lời câu hỏi. Lần sau, ứng dụng Chat với trợ lý tri thức AI sẽ biết câu trả lời!

Những điều cần cân nhắc, lựa chọn cấu trúc thay thế và các bước tiếp theo

Phần này xem xét các cách khác để xây dựng ứng dụng Chat của trợ lý kiến thức AI.

Firestore, Cloud Storage hoặc gọi List Messages trong API Chat

Hướng dẫn này đề xuất lưu trữ dữ liệu phòng Chat (chẳng hạn như tin nhắn) trong cơ sở dữ liệu Firestore vì cách này giúp cải thiện hiệu suất so với việc gọi phương thức list trên tài nguyên Message bằng API Chat mỗi khi ứng dụng Chat trả lời một câu hỏi. Ngoài ra, việc gọi list messages nhiều lần có thể khiến ứng dụng Chat đạt đến giới hạn hạn mức API.

Tuy nhiên, nếu nhật ký trò chuyện của phòng Chat trở nên quá dài, thì việc sử dụng Firestore có thể gây tốn kém.

Cloud Storage là giải pháp thay thế cho Firestore. Mỗi không gian mà trợ lý tri thức AI mà ứng dụng Chat đang hoạt động sẽ có một đối tượng riêng và mỗi đối tượng là một tệp văn bản chứa tất cả tin nhắn trong không gian đó. Ưu điểm của phương pháp này là toàn bộ nội dung của tệp văn bản có thể được cung cấp cho Vertex AI bằng Gemini cùng một lúc, nhưng nhược điểm là bạn sẽ mất nhiều công sức hơn để cập nhật nhật ký trò chuyện vì bạn không thể thêm vào một đối tượng trong Bộ nhớ trên đám mây, mà chỉ có thể thay thế đối tượng đó. Phương pháp này không phù hợp nếu bạn thường xuyên cập nhật nhật ký thư, nhưng sẽ là lựa chọn phù hợp nếu bạn cập nhật hàng loạt nhật ký thư theo định kỳ, chẳng hạn như một lần mỗi tuần.

Khắc phục sự cố

Khi ứng dụng Google Chat hoặc thẻ trả về lỗi, giao diện Chat sẽ hiển thị thông báo "Đã xảy ra lỗi". hoặc "Không thể xử lý yêu cầu của bạn". Đôi khi, giao diện người dùng Chat không hiển thị thông báo lỗi nào, nhưng ứng dụng Chat hoặc thẻ lại tạo ra kết quả không mong muốn; ví dụ: thông báo thẻ có thể không xuất hiện.

Mặc dù thông báo lỗi có thể không xuất hiện trong giao diện người dùng của Chat, nhưng chúng tôi cung cấp dữ liệu nhật ký và thông báo lỗi mô tả để giúp bạn khắc phục lỗi khi bật tính năng ghi nhật ký lỗi cho các ứng dụng trong Chat. Để được trợ giúp xem, gỡ lỗi và sửa lỗi, hãy xem bài viết Khắc phục sự cố và sửa lỗi Google Chat.

Dọn dẹp

Để tránh bị tính phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được sử dụng trong hướng dẫn này, bạn nên xoá dự án trên Cloud.

  1. Trong Google Cloud Console, hãy chuyển đến trang Quản lý tài nguyên. Nhấp vào biểu tượng Trình đơn > IAM và Quản trị viên > Quản lý tài nguyên.

    Chuyển đến Trình quản lý tài nguyên

  2. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá rồi nhấp vào biểu tượng Xoá .
  3. Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Shut down (Tắt) để xoá dự án.