Jawab pertanyaan berdasarkan percakapan Chat dengan aplikasi Chat Gemini AI

Tutorial ini menunjukkan cara membuat aplikasi Google Chat yang menjawab pertanyaan pertanyaan berdasarkan percakapan di ruang Chat dengan alat AI yang didukung Vertex AI dengan Gemini. Aplikasi Chat menggunakan Google Workspace Events API plus Pub/Sub untuk mengenali dan menjawab pertanyaan yang diposting di ruang Chat secara real time, bahkan saat tidak disebutkan.

Aplikasi Chat menggunakan semua pesan yang dikirim dalam ruang sebagai sumber data dan pusat informasi: ketika seseorang mengajukan pertanyaan, Aplikasi Chat memeriksa jawaban yang dibagikan sebelumnya, lalu membagikan satu. Jika tidak ditemukan jawaban, artinya tidak dapat menjawab. Pada setiap jawaban, pengguna dapat mengklik tombol tindakan aksesori untuk @menyebut pengelola ruang dan memintanya untuk menemukan suatu jawaban. Dengan menggunakan Gemini AI, aplikasi Google Chat beradaptasi dan mengembangkan basis pengetahuannya sambil terus melatih percakapan dalam ruang yang ditambahkannya.

Berikut cara kerja aplikasi Chat dalam orientasi karyawan dan ruang dukungan:

  • Menyebutkan aplikasi asisten pengetahuan AI akan menambahkannya ke ruang.
    Gambar 1. Candra menambahkan aplikasi Chat asisten pengetahuan AI ke ruang Chat.
  • Dana mengajukan pertanyaan.
    Gambar 2. Dana bertanya apakah perusahaan menawarkan pelatihan berbicara di depan umum.
  • Aplikasi Chat asisten pengetahuan AI menjawab pertanyaan.
    Gambar 3. Aplikasi Chat asisten pengetahuan AI meminta Vertex AI dengan Gemini untuk menjawab pertanyaan Dana berdasarkan histori percakapan ruang Chat lalu membagikan jawabannya.

Prasyarat

Tujuan

  • Membangun aplikasi Chat yang menggunakan AI generatif untuk menjawab pertanyaan berdasarkan pengetahuan yang dibagikan di ruang Chat percakapan.
  • Dengan AI generatif:
    • Mendeteksi dan menjawab pertanyaan karyawan.
    • Terus belajar dari percakapan yang sedang berlangsung di Chat spasi.
  • Memproses dan merespons pesan di ruang Chat secara nyata waktu bahkan saat aplikasi Chat tidak secara langsung mengirim pesan.
  • Mempertahankan pesan dengan menulis ke, dan membaca dari, database Firestore.
  • Memfasilitasi kolaborasi di ruang Chat dengan menyebutkan ruang manajer ketika tidak ada jawaban atas pertanyaan yang ditemukan.

Arsitektur

Diagram berikut menunjukkan arsitektur Google Workspace dan Resource Google Cloud yang digunakan oleh asisten pengetahuan AI Aplikasi Chat.

Diagram arsitektur untuk aplikasi Chat asisten pengetahuan AI

Cara kerja aplikasi Chat asisten pengetahuan AI adalah seperti ini:

  • Pengguna menambahkan aplikasi Chat asisten pengetahuan AI ke ruang Chat:

    1. Aplikasi Chat meminta pengguna yang menambahkannya ke ruang Chat untuk mengonfigurasi yaitu otentikasi dan otorisasi.

    2. Aplikasi Chat mengambil pesan ruang dengan memanggil metode spaces.messages.list di Chat API dan kemudian menyimpan pesan yang diambil dalam database Firestore.

    3. Aplikasi Chat memanggil Metode subscriptions.create di Google Workspace Events API untuk memulai untuk mendengarkan peristiwa seperti pesan dalam ruang. Tujuan endpoint notifikasi langganan adalah topik Pub/Sub yang menggunakan Eventarc untuk meneruskan peristiwa ke aplikasi Chat.

    4. Aplikasi Chat memposting pesan perkenalan kepada yang besar.

  • Pengguna di ruang Chat memposting pesan:

    1. Aplikasi Chat menerima pesan secara real time dari topik Pub/Sub.

    2. Aplikasi Chat menambahkan pesan ke Firestore di skrip untuk menyiapkan database.

      Jika nanti pengguna mengedit atau menghapus pesan, Aplikasi Chat menerima peristiwa yang diperbarui atau dihapus secara real time, lalu memperbarui atau menghapus pesan di Firestore di skrip untuk menyiapkan database.

    3. Aplikasi Chat mengirimkan pesan ke Vertex AI dengan Gemini:

      1. Perintah menginstruksikan Vertex AI dengan Gemini untuk memeriksa apakah pesan berisi pertanyaan. Jika ya, Gemini akan menjawab pertanyaan berdasarkan pada histori pesan ruang Chat yang disimpan di Firestore dan aplikasi Google Chat kemudian mengirimkan pesan ke Ruang Chat. Jika tidak, jangan tanggapi.

      2. Jika Vertex AI dengan Gemini menjawab pertanyaan, Aplikasi Chat memposting jawab dengan memanggil metode spaces.messages.create dalam Chat API menggunakan autentikasi aplikasi.

        Jika Vertex AI dengan Gemini tidak dapat menjawab pertanyaan, Aplikasi Chat memposting pesan yang mengatakan bahwa komputer tidak dapat menemukan jawaban atas pertanyaan itu di histori ruang Chat.

        Pesan selalu menyertakan tombol tindakan aksesori yang dapat digunakan pengguna klik, yang menyebabkan aplikasi Chat @menyebut pengelola ruang untuk memintanya menjawab pertanyaan.

  • Aplikasi Chat menerima notifikasi siklus proses dari Google Workspace Events API yang langganan ruang Chat akan kedaluwarsa:

    1. Aplikasi Chat mengirimkan permintaan untuk memperpanjang langganan dengan memanggil metode subscriptions.patch di Google Workspace Events API.
  • Aplikasi Chat dihapus dari Chat alamat:

    1. Aplikasi Chat menghapus langganan dengan memanggil metode subscriptions.delete di Google Workspace Events API.

    2. Aplikasi Chat menghapus Chat data space dari Firestore.

Tinjau produk yang digunakan oleh aplikasi Chat asisten pengetahuan AI

Aplikasi Chat asisten pengetahuan AI menggunakan produk Google Workspace dan Google Cloud berikut:

  • Vertex AI API dengan Gemini: Platform AI generatif yang didukung Gemini. Asisten pengetahuan AI Aplikasi Chat menggunakan Vertex AI API dengan Gemini untuk mengenali, memahami, dan menjawab pertanyaan karyawan.
  • API Chat: API untuk mengembangkan aplikasi Google Chat yang menerima dan merespons Peristiwa interaksi chat, seperti pesan. AI Aplikasi Chat asisten pengetahuan menggunakan Chat API untuk:
    • Menerima dan merespons peristiwa interaksi yang dikirim oleh Chat.
    • Mencantumkan pesan yang dikirim dalam ruang.
    • Memposting jawaban atas pertanyaan pengguna dalam ruang.
    • Konfigurasikan atribut yang menentukan bagaimana atribut itu muncul Chat, seperti nama dan gambar avatar.
  • Google Workspace Events API: API ini memungkinkan Anda berlangganan acara dan mengelola mengubah notifikasi di seluruh aplikasi Google Workspace. Tujuan Aplikasi Chat asisten pengetahuan AI menggunakan Google Workspace Events API untuk memproses pesan yang diposting di Ruang Chat agar dapat mendeteksi dan menjawab pertanyaan bahkan saat tidak disebutkan.
  • Firestore: Database dokumen serverless. Asisten pengetahuan AI Aplikasi Chat menggunakan Firestore untuk menyimpan data tentang pesan yang dikirim ke ruang Chat.
  • Pub/Sub: Pub/Sub adalah layanan pesan asinkron dan skalabel yang memisahkan layanan yang menghasilkan pesan dari layanan yang memproses pesan-pesan tersebut. Tujuan Aplikasi Chat asisten pengetahuan AI menggunakan Pub/Sub untuk menerima peristiwa langganan dari ruang Chat.
  • Eventarc: Eventarc memungkinkan Anda membangun arsitektur berbasis peristiwa tanpa harus mengimplementasikan, menyesuaikan, atau memelihara infrastruktur pendukungnya. AI aplikasi Chat asisten pengetahuan menggunakan Eventarc untuk mengarahkan peristiwa dari Pub/Sub ke ruang Chat dan Cloud Function yang menerima dan memproses peristiwa langganan.
  • Cloud Functions: Layanan komputasi serverless yang ringan untuk membuat fungsi mandiri dengan tujuan tunggal yang dapat merespons Chat peristiwa langganan dan interaksi tanpa perlu mengelola server atau runtime lingkungan fleksibel App Engine. Aplikasi Chat asisten pengetahuan AI menggunakan dua Cloud Functions bernama:
    • app: Menghosting endpoint HTTP yang dikirim Chat peristiwa interaksi ke dan sebagai platform komputasi untuk menjalankan logika memproses dan merespons peristiwa ini.
    • eventsApp: Menerima dan memproses ruang Chat seperti pesan dari langganan Pub/Sub.
    Cloud Functions menggunakan produk Google Cloud berikut untuk membangun dan untuk resource komputasi host:
    • Cloud Build: Platform deployment, pengiriman, dan continuous integration yang terkelola sepenuhnya yang menjalankan build otomatis.
    • Cloud Run: Lingkungan yang terkelola sepenuhnya untuk menjalankan aplikasi dalam container.

Menyiapkan lingkungan

Bagian ini menunjukkan cara membuat dan mengonfigurasi project Google Cloud untuk Aplikasi Chat.

Membuat project Google Cloud

Konsol Google Cloud

  1. Di konsol Google Cloud, buka Menu > IAM & Admin > Buat Project.

    Buka bagian Create a Project

  2. Di kolom Project Name, masukkan nama deskriptif untuk project Anda.

    Opsional: Untuk mengedit Project ID, klik Edit. Project ID tidak dapat diubah setelah proyek dibuat, jadi pilihlah ID yang sesuai dengan kebutuhan Anda sepanjang waktu proyek.

  3. Di kolom Lokasi, klik Jelajahi untuk menampilkan potensi lokasi untuk proyek. Kemudian, klik Select.
  4. Klik Buat. Konsol Google Cloud membuka halaman Dashboard dan project Anda telah dibuat dalam beberapa menit.

gcloud CLI

Di salah satu lingkungan pengembangan berikut, akses paket Google Cloud CLI (`gcloud`):

  • Cloud Shell: Untuk menggunakan terminal online dengan gcloud CLI sudah disiapkan, aktifkan Cloud Shell.
    Mengaktifkan Cloud Shell
  • Local Shell: Untuk menggunakan lingkungan pengembangan lokal, instal dan inisialisasi gcloud CLI.
    Untuk membuat project Cloud, gunakan perintah `gcloud projects create`:
    gcloud projects create PROJECT_ID
    Ganti PROJECT_ID dengan menetapkan ID untuk project yang ingin Anda buat.

Mengaktifkan penagihan untuk project Cloud

Konsol Google Cloud

  1. Di konsol Google Cloud, buka Billing. Klik Menu > Penagihan > Project Saya.

    Buka Penagihan untuk Project Saya

  2. Di bagian Pilih organisasi, pilih organisasi yang dikaitkan dengan project Google Cloud Anda.
  3. Di baris project, buka menu Tindakan (), klik Ubah penagihan, lalu pilih Akun Penagihan Cloud Anda.
  4. Klik Tetapkan akun.

gcloud CLI

  1. Untuk menampilkan daftar akun penagihan yang tersedia, jalankan:
    gcloud billing accounts list
  2. Tautkan akun penagihan dengan project Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Ganti kode berikut:

    • PROJECT_ID adalah Project ID untuk Project cloud yang penagihannya ingin Anda aktifkan.
    • BILLING_ACCOUNT_ID adalah ID akun penagihan yang akan ditautkan project Google Cloud.

Mengaktifkan API

Konsol Google Cloud

  1. Di konsol Google Cloud, aktifkan Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API dan Cloud Run Admin API.

    Aktifkan API

  2. Pastikan Anda mengaktifkan API dengan lalu klik Berikutnya.

  3. Pastikan Anda mengaktifkan API yang benar, lalu klik Enable.

gcloud CLI

  1. Jika perlu, tetapkan project Cloud saat ini ke project yang Anda dibuat:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan Project ID dari Project Cloud yang telah Anda buat.

  2. Mengaktifkan Google Chat API, Vertex AI API, Cloud Functions API, Firestore API, Cloud Build API, Pub/Sub API, Google Workspace Events API, Eventarc API, dan Admin Cloud Run API:

    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
    

Menyiapkan autentikasi dan otorisasi

Otentikasi dan otorisasi memungkinkan Referensi akses aplikasi Chat di Google Workspace dan Google Cloud.

Dalam tutorial ini, Anda akan memublikasikan aplikasi Google Chat secara internal sehingga Boleh menggunakan informasi placeholder. Sebelum memublikasikan Aplikasi Google Chat secara eksternal, ganti informasi placeholder dengan yang akurat untuk layar izin.

  1. Di Konsol Google Cloud, buka Menu > API & Layanan > Layar izin OAuth.

    Buka layar izin OAuth

  2. Di bagian Jenis pengguna, pilih Internal, lalu klik Buat.

  3. Di App name, ketik AI knowledge assistant.

  4. Di bagian Email dukungan pengguna, pilih alamat email Anda atau alamat Grup Google.

  5. Di bagian Informasi kontak developer, masukkan alamat email Anda.

  6. Klik Simpan dan Lanjutkan.

  7. Klik Add or Remove Scopes. Panel akan muncul dengan daftar cakupan untuk setiap API yang telah Anda aktifkan di project Cloud.

  8. Di bagian Tambahkan cakupan secara manual, tempel cakupan berikut:

    • https://www.googleapis.com/auth/chat.messages
  9. Klik Tambahkan ke Tabel.

  10. Klik Perbarui.

  11. Klik Simpan dan Lanjutkan.

  12. Tinjau ringkasan pendaftaran aplikasi, lalu klik Kembali ke Dasbor.

Membuat kredensial client ID OAuth

  1. Di Konsol Google Cloud, buka Menu > API & Layanan > Kredensial.

    Buka Kredensial

  2. Klik Create Credentials > Client ID OAuth.

  3. Klik Application type > Aplikasi web.

  4. Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya yang ditampilkan di Konsol Google Cloud.

  5. Di bagian URI pengalihan yang diotorisasi, klik Tambahkan URI.

  6. Pada URI 1, ketik berikut ini:

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

    Ganti kode berikut:

    • REGION: region Cloud Function, seperti us-central1. Selanjutnya, saat membuat dua Cloud Functions, Anda harus mengatur region ke nilai ini.
    • PROJECT_ID: Project ID dari project Cloud yang Anda buat.
  7. Klik Buat.

  8. Dari jendela OAuth client created, klik Download JSON.

  9. Simpan file yang didownload sebagai client_secrets.json. Nanti, saat Anda membuat kedua Cloud Functions, Anda menyertakan file client_secrets.json di setiap deployment.

  10. Klik Oke.

Membuat topik Pub/Sub

Topik Pub/Sub berfungsi dengan Google Workspace Events API untuk berlangganan peristiwa di Chat ruang seperti pesan dan memberi tahu aplikasi Chat secara nyata baik.

Berikut cara membuat topik Pub/Sub:

Konsol Google Cloud

  1. Di Konsol Google Cloud, buka Menu > Pub/Sub.

    Buka Pub/Sub

  2. Klik Buat Topik.

  3. Di Topic ID, ketik events-api.

  4. Batalkan pilihan Tambahkan langganan default.

  5. Di bagian Enkripsi, pilih Kunci enkripsi yang dikelola Google.

  6. Klik Buat. Topik Pub/Sub muncul.

  7. Agar topik Pub/Sub dan Google Workspace Events API ini berfungsi bersama-sama, beri pengguna IAM Chat izin untuk memposting ke topik Pub/Sub:

    1. Di panel events-api, di bagian PERMISSIONS, klik Tambahkan Principal.

    2. Di bagian Add principals, di New principals, ketik chat-api-push@system.gserviceaccount.com.

    3. Di bagian Tetapkan peran, di bagian Pilih peran, pilih Pub/Sub > Pub/Sub Publisher.

    4. Klik Simpan.

gcloud CLI

  1. Buat topik Pub/Sub dengan ID topik events-api:

    gcloud pubsub topics create events-api
    
  2. Memberikan izin memposting ke pengguna IAM Chat topik Pub/Sub:

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

Membuat database Firestore

Database Firestore tetap ada dan mengambil dari ruang Chat, seperti pesan. Anda tidak menentukan data khusus, yang ditetapkan secara implisit dalam kode contoh oleh model/message.js dan services/firestore-service.js file.

Database aplikasi Chat asisten pengetahuan AI menggunakan model data NoSQL berdasarkan dokumen diatur ke dalam koleksi. Untuk mempelajari lebih lanjut, lihat Model data Firestore.

Diagram berikut adalah ringkasan asisten pengetahuan AI Model data aplikasi Chat:

Model data dari database Firestore.

Root berisi dua koleksi:

  1. spaces, dengan setiap dokumen mewakili ruang Chat yang tempat aplikasi Chat ditambahkan. Setiap pesan direpresentasikan diwakili oleh dokumen dalam subkoleksi messages.

  2. users, dengan setiap dokumen mewakili pengguna yang menambahkan Aplikasi Chat ke ruang Chat.

Melihat definisi koleksi, dokumen, dan kolom

spaces

Ruang Chat yang mencakup aplikasi Chat asisten pengetahuan AI.

Kolom
Document IDString
ID unik ruang tertentu. Bagian dari nama resource ruang di Chat API.
messagesSubcollection of Documents (messages)
Pesan yang dikirim di ruang Chat. Sesuai dengan Document ID dari message di Firebase.
spaceNameString
Nama unik ruang di Chat API. Sesuai dengan nama resource ruang di Chat API.

messages

Pesan yang dikirim di ruang Chat.

Kolom
Document IDString
ID unik pesan tertentu.
nameString
Nama unik pesan di Chat API. Sesuai dengan nama resource pesan di Chat API.
textString
Isi teks pesan.
timeString (Timestamp format)
Waktu pembuatan pesan.

users

Pengguna yang menambahkan aplikasi Chat asisten pengetahuan AI ke ruang Chat.

Kolom
Document IDString
ID unik pengguna tertentu.
accessTokenString
Token akses yang diberikan selama otorisasi pengguna OAuth 2.0 yang digunakan untuk memanggil Google Workspace API.
refreshTokenString
Token refresh yang diberikan selama otorisasi pengguna OAuth 2.0.

Berikut adalah cara membuat database Firestore:

Konsol Google Cloud

  1. Di Konsol Google Cloud, buka Menu > Firestore.

    Buka Firestore

  2. Klik Buat database.

  3. Dari Select your Firestore mode, klik Native mode.

  4. Klik Lanjutkan.

  5. Konfigurasikan database:

    1. Di bagian Name your database, biarkan Database ID sebagai (default).

    2. Pada Location type, pilih Region.

    3. Di Region, tentukan region untuk database Anda, seperti us-central1. Untuk performa terbaik, pilih lokasi yang sama atau berdekatan dengan Cloud Functions aplikasi Chat.

  6. Klik Buat database.

gcloud CLI

  • Buat database Firestore dalam mode Native:

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

    Ganti LOCATION dengan nama Firestore region, seperti sebagai us-central1. Untuk performa terbaik, pilih lokasi yang sama atau berdekatan dengan Cloud Functions aplikasi Chat.

Membuat dan men-deploy aplikasi Chat

Setelah project Google Cloud dibuat dan dikonfigurasi, Anda siap membangun dan men-deploy aplikasi Chat. Di bagian ini, Anda melakukan berikut ini:

  1. Membuat dan men-deploy dua Cloud Functions. Satu tombol untuk merespons Chat dan satu lagi untuk merespons peristiwa Pub/Sub.
  2. Membuat dan men-deploy aplikasi Chat di Google Chat API halaman konfigurasi Google Cloud.

Membuat dan men-deploy Cloud Functions

Di bagian ini, Anda akan membuat dan men-deploy dua Cloud Functions bernama:

  • app: Menghosting dan menjalankan aplikasi Chat kode yang merespons peristiwa yang diterima dari Chat sebagai HTTP permintaan.
  • eventsApp: Menerima dan memproses ruang Chat seperti pesan dari Pub/Sub.

Bersama-sama, Cloud Functions ini membentuk asisten pengetahuan AI Logika aplikasi aplikasi Chat.

Secara opsional, sebelum membuat Cloud Functions, luangkan waktu sejenak untuk meninjau dan membiasakan diri dengan kode contoh yang dihosting di GitHub.

Lihat di GitHub

Membuat dan men-deploy app

Konsol Google Cloud

  1. Download kode dari GitHub sebagai file ZIP.

    Mendownload file ZIP

  2. Ekstrak file zip yang didownload.

    Folder yang diekstrak berisi seluruh contoh Google Workspace repositori resource.

  3. Dalam folder yang baru diekstrak, buka Direktori google-chat-samples-main/node/ai-knowledge-assistant.

  4. Dalam direktori google-chat-samples/node/ai-knowledge-assistant, menambahkan file client_secrets.json yang Anda unduh saat Anda membuat kredensial client ID OAuth untuk otentikasi dan otorisasi.

  5. Kompresi konten folder ai-knowledge-assistant ke dalam zip .

    Direktori utama file zip harus berisi hal berikut file dan folder:

    • .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. Di Konsol Google Cloud, buka Menu > Cloud Functions.

    Buka Cloud Functions

    Pastikan bahwa project Google Cloud untuk Aplikasi Chat dipilih.

  7. Klik Create Function.

  8. Di halaman Create function, siapkan fungsi Anda:

    1. Di Environment, pilih 2nd generasi.
    2. Di Function name, ketik app.
    3. Di Region, pilih wilayah, seperti us-central1. Wilayah ini harus cocok dengan region yang Anda tetapkan dalam URI pengalihan yang diberi otorisasi saat Anda membuat kredensial client ID OAuth untuk otentikasi dan otorisasi.
    4. Di Jenis pemicu, pilih HTTPS.
    5. Di bagian Authentication, pilih Izinkan pemanggilan yang tidak diautentikasi.
    6. Klik Berikutnya.
  9. Di Runtime, pilih Node.js 20.

  10. Di Titik entri, hapus teks default, lalu masukkan app.

  11. Di Source code, pilih Zip upload.

  12. Di Bucket tujuan, buat atau pilih bucket:

    1. Klik Browse.
    2. Pilih bucket.
    3. Klik Pilih.

    Google Cloud mengupload file zip ke dan mengekstrak file komponen dalam bucket ini. Cloud Functions kemudian menyalin file komponen ke dalam Cloud Function.

  13. Di File zip, upload file zip yang Anda download dari GitHub, diekstrak, dan dikompresi ulang:

    1. Klik Browse.
    2. Buka dan pilih file ZIP.
    3. Klik Buka.
  14. Klik Deploy.

    Halaman detail Cloud Functions akan terbuka, dan fungsi Anda akan muncul dengan dua indikator progres: satu untuk build dan satu untuk layanan. Saat kedua indikator progres menghilang dan diganti dengan tanda centang fungsi Anda telah di-deploy dan siap.

  15. Edit kode contoh untuk menetapkan konstanta:

    1. Di halaman Detail Cloud Function, klik Edit.
    2. Klik Berikutnya.
    3. Di Source code, pilih Inline editor.
    4. Di editor inline, buka dan edit file env.js:
      1. Setel nilai project ke ID project Cloud.
      2. Tetapkan nilai location ke Cloud Function region, seperti us-central1.
  16. Klik Deploy.

gcloud CLI

  1. Clone kode dari GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. Beralihlah ke direktori yang menyimpan kode untuk pengetahuan AI ini aplikasi Chat asisten:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. Dalam direktori google-chat-samples/node/ai-knowledge-assistant, menambahkan file client_secrets.json yang Anda unduh saat Anda membuat kredensial client ID OAuth untuk otentikasi dan otorisasi.

  4. Edit file env.js untuk menetapkan variabel lingkungan:

    1. Tetapkan nilai project ke project Cloud Anda ke ID.
    2. Tetapkan nilai location ke Cloud Function region, seperti us-central1.
  5. Deploy Cloud Function ke Google Cloud:

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

    Ganti REGION dengan nilai fungsi Cloud Function wilayah untuk mencocokkan dengan yang ditetapkan dalam file env.js, seperti us-central1.

Membuat dan men-deploy eventsApp

Konsol Google Cloud

  1. Di Konsol Google Cloud, buka Menu > Cloud Functions.

    Buka Cloud Functions

    Pastikan bahwa project Google Cloud untuk Aplikasi Chat dipilih.

  2. Klik Create Function.

  3. Di halaman Create function, siapkan fungsi Anda:

    1. Di Environment, pilih 2nd generasi.
    2. Di Function name, ketik eventsApp.
    3. Di Region, pilih wilayah, seperti us-central1. Wilayah ini harus cocok dengan region yang Anda tetapkan dalam URI pengalihan yang diberi otorisasi saat Anda membuat kredensial client ID OAuth untuk otentikasi dan otorisasi.
    4. Di Jenis pemicu, pilih Cloud Pub/Sub.
    5. Di topik Cloud Pub/Sub, pilih nama topik Pub/Sub yang Anda dibuat, yang memiliki format projects/PROJECT/topics/events-api di mana PROJECT adalah ID project Cloud Anda.
    6. Jika Anda melihat pesan yang dimulai dengan Service account(s) might not have enough permissions to deploy the function with the selected trigger., klik Grant All.
    7. Klik Berikutnya.
  4. Di Runtime, pilih Node.js 20.

  5. Di Titik entri, hapus teks default, lalu masukkan eventsApp.

  6. Di Source code, pilih Zip dari Cloud Storage.

  7. Di lokasi Cloud Storage, klik Browse.

  8. Pilih bucket tempat Anda mengupload file zip saat membuat app Cloud Function.

  9. Klik file ZIP yang Anda upload.

  10. Klik Pilih.

  11. Klik Deploy.

    Halaman detail Cloud Functions akan terbuka, dan fungsi Anda akan muncul dengan tiga indikator progres: satu untuk build, satu untuk layanan, dan satu lagi untuk pemicu. Saat ketiga indikator progres menghilang dan diganti dengan tanda centang, fungsi Anda telah di-deploy dan siap.

  12. Edit kode contoh untuk menetapkan konstanta:

    1. Di halaman Detail Cloud Function, klik Edit.
    2. Klik Berikutnya.
    3. Di Source code, pilih Inline editor.
    4. Di editor inline, buka dan edit file env.js:
      1. Setel nilai project ke ID project Cloud.
      2. Tetapkan nilai location ke Cloud Function region, seperti us-central1.
  13. Klik Deploy.

gcloud CLI

  1. Di gcloud CLI, jika Anda belum melakukannya, beralihlah ke direktori yang menyimpan kode untuk pengetahuan AI ini, aplikasi Chat asisten yang sebelumnya Anda di-clone dari GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. Dalam direktori google-chat-samples/node/ai-knowledge-assistant, menambahkan file client_secrets.json yang Anda unduh saat Anda membuat kredensial client ID OAuth untuk otentikasi dan otorisasi.

  3. Edit file env.js untuk menetapkan variabel lingkungan:

    1. Tetapkan nilai project ke project Cloud Anda ke ID.
    2. Tetapkan nilai location ke Cloud Function region, seperti us-central1.
  4. Deploy Cloud Function ke Google Cloud:

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

    Ganti REGION dengan nilai fungsi Cloud Function wilayah untuk mencocokkan dengan yang ditetapkan dalam file env.js, seperti us-central1.

Salin URL pemicu Cloud Function app

Anda menempelkan URL pemicu Cloud Function app di bagian berikutnya saat Anda Konfigurasikan aplikasi Chat di Konsol Google Cloud.

Konsol Google Cloud

  1. Di Konsol Google Cloud, buka Menu > Cloud Functions.

    Buka Cloud Functions

  2. Di kolom Name pada daftar Cloud Functions, klik app.

  3. Klik Pemicu.

  4. Salin URL.

gcloud CLI

  1. Menjelaskan Cloud Function app:

    gcloud functions describe app
    
  2. Salin properti url.

Mengonfigurasi aplikasi Chat di Konsol Google Cloud

Bagian ini menunjukkan cara mengonfigurasi Chat API di Konsol Google Cloud yang berisi informasi tentang aplikasi Chat Anda, termasuk nama aplikasi Chat dan URL pemicu dari Cloud aplikasi Chat Fungsi yang akan dikirimi peristiwa interaksi Chat.

  1. Di Konsol Google Cloud, klik Menu > Produk lainnya > Google Workspace > Library Produk > Google Chat API > Kelola > Konfigurasi.

    Buka konfigurasi Chat API

  2. Di App name, ketik AI knowledge assistant.

  3. Di Avatar URL, ketik https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. Pada Description, ketik Answers questions with AI.

  5. Klik tombol Enable Interactive features ke posisi aktif.

  6. Di bagian Functionality, pilih Join spaces and group conversations.

  7. Di bagian Connection settings, pilih App URL.

  8. Di App URL, tempel URL Pemicu dari Cloud Function app diformat sebagai https://REGION-PROJECT_ID.cloudfunctions.net/app dengan REGION adalah region Cloud Function, seperti us-central1 dan PROJECT_ID adalah Project ID dari Project Cloud yang telah Anda buat.

  9. Di bagian Visibility, pilih Sediakan aplikasi Chat ini untuk orang dan grup tertentu di Workspace Anda, lalu masukkan alamat email Anda.

  10. Secara opsional, di bagian Logs, pilih Log errors to Logging.

  11. Klik Simpan. Pesan konfigurasi tersimpan akan muncul, artinya Aplikasi Chat adalah siap diuji.

Menguji aplikasi Chat

Uji aplikasi Chat asisten pengetahuan AI di Ruang chat dengan pesan melalui pertanyaan yang diajukan oleh AI aplikasi Chat asisten pengetahuan dapat menjawab.

Berikut beberapa cara untuk menguji asisten pengetahuan AI Aplikasi Chat:

  • Menambahkan aplikasi Chat asisten pengetahuan AI ke ruang Chat yang ada dan mengajukan pertanyaan yang relevan dengan bidang tersebut.
  • Buat ruang Chat dan posting beberapa pesan untuk digunakan sebagai sumber data. Pesan dapat bersumber dari Gemini dengan perintah seperti Answer 20 common onboarding questions employees ask their teams. Atau, Anda dapat menempelkan beberapa paragraf dari Panduan mengembangkan dengan ringkasan Chat dan kemudian mengajukan pertanyaan tentang hal itu.

Untuk tutorial ini, mari buat ruang Chat dan tempelkan beberapa paragraf yang berasal dari panduan mengembangkan dengan Chat.

  1. Buka Google Chat.

    Buka Google Chat

  2. Membuat ruang Chat:

    1. Klik Chat Baru > Buat ruang.

    2. Di Nama ruang, ketik Testing AI knowledge assistant app.

    3. Di bagian Apa tujuan ruang ini?, pilih Kolaborasi.

    4. Di bagian Setelan akses, pilih siapa saja yang dapat mengakses ruang.

    5. Klik Buat.

  3. Menambahkan pesan yang akan digunakan sebagai sumber data:

    1. Di browser web, buka mengembangkan dengan ringkasan Chat kami.

    2. Salin dan tempel konten panduan ke ruang Chat yang Anda buat.

  4. Tambahkan aplikasi Chat asisten pengetahuan AI:

    1. Di kolom tulis pesan, ketik @AI knowledge assistant dan di menu saran yang muncul, pilih asisten pengetahuan AI Aplikasi Chat, lalu tekan enter.

    2. Sebuah pesan yang menanyakan apakah Anda ingin menambahkan asisten pengetahuan AI akan muncul aplikasi Chat ke ruang. Klik Tambahkan ke ruang.

    3. Jika ini pertama kalinya Anda menambahkan aplikasi Chat ke sebuah ruang, Anda harus mengonfigurasi otentikasi dan otorisasi untuk Aplikasi Chat:

      1. Klik Configure.
      2. Jendela atau tab browser baru akan terbuka dan meminta Anda untuk memilih Akun Google. Pilih akun yang digunakan untuk pengujian.
      3. Meninjau izin yang diberikan asisten pengetahuan AI Permintaan aplikasi Chat. Untuk memberikan izin, klik Izinkan.
      4. Pesan yang bertuliskan You may close this page now. akan muncul. Tutup jendela atau tab browser, lalu kembali ke Ruang Chat.
  5. Ajukan pertanyaan:

    1. Di kolom tulis pesan, ketik pertanyaan seperti What are Google Chat apps?

    2. Aplikasi Chat asisten pengetahuan AI menjawab.

    3. Secara opsional, jika jawabannya tidak akurat atau tidak memadai, untuk membantu kemampuan kualitas histori percakapan, klik Dapatkan bantuan. Aplikasi Chat asisten pengetahuan AI menyebutkan pengelola ruang dan meminta mereka untuk menjawab pertanyaan. Lain kali, Aplikasi Chat asisten pengetahuan AI akan mengetahui jawabannya.

Pertimbangan, pilihan arsitektur alternatif, dan langkah selanjutnya

Bagian ini meninjau cara lain asisten pengetahuan AI Aplikasi Chat dapat dibangun.

Firestore, Cloud Storage, atau memanggil List Messages di Chat API

Tutorial ini merekomendasikan penyimpanan data ruang Chat seperti dalam database Firestore karena meningkatkan performa dibandingkan dengan memanggil metode list pada Message dengan Chat API setiap kali Aplikasi Chat menjawab sebuah pertanyaan. Selanjutnya, menelepon list messages berulang kali dapat menyebabkan Aplikasi Chat mencapai batas kuota API.

Namun, jika histori percakapan ruang Chat menjadi terlalu lama, maka penggunaan Firestore bisa menjadi biaya yang mahal.

Penyimpanan Cloud adalah alternatif untuk Firestore. Setiap ruang asisten pengetahuan AI Aplikasi Chat yang aktif akan mendapatkan objeknya sendiri, dan setiap objek adalah file teks yang berisi semua pesan dalam ruang. Keuntungan dari pendekatan ini adalah bahwa seluruh isi file teks dapat dimasukkan ke Vertex AI dengan Gemini sekaligus, tetapi kelemahannya adalah dibutuhkan lebih banyak upaya memperbarui histori percakapan karena Anda tidak dapat menambahkan item di Cloud Penyimpanan, ganti saja. Pendekatan ini tidak masuk akal jika Anda secara teratur memperbarui riwayat pesan, namun akan menjadi pilihan baik jika Anda melakukan {i>batch-update<i} riwayat pesan secara berkala, misalnya sekali per minggu.

Memecahkan masalah

Saat aplikasi Google Chat atau kartu menampilkan error, Antarmuka Chat menampilkan pesan yang bertuliskan "Terjadi masalah". atau "Tidak dapat memproses permintaan Anda". Terkadang UI Chat tidak menampilkan pesan error apa pun, tetapi aplikasi Chat atau memberikan hasil yang tidak diharapkan; misalnya, pesan kartu mungkin tidak akan muncul.

Meskipun pesan error mungkin tidak ditampilkan di UI Chat, pesan error deskriptif dan data log tersedia untuk membantu Anda memperbaiki error saat logging error untuk aplikasi Chat diaktifkan. Untuk bantuan melihat, men-debug, dan memperbaiki error, melihat Memecahkan masalah dan memperbaiki error Google Chat.

Pembersihan

Agar tidak menimbulkan biaya ke akun Google Cloud Anda untuk sumber daya yang digunakan dalam tutorial ini, sebaiknya Anda menghapus project Google Cloud.

  1. Di Konsol Google Cloud, buka halaman Manage resources. Klik Menu &gt; IAM & Admin &gt; Kelola Resource.

    Buka Resource Manager

  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Hapus .
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus menyelesaikan proyek tersebut.