Jawab pertanyaan berdasarkan percakapan Chat dengan aplikasi Chat Gemini AI

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

Aplikasi Chat menggunakan semua pesan yang dikirim di ruang sebagai sumber data dan basis pengetahuan: saat seseorang mengajukan pertanyaan, aplikasi Chat akan memeriksa jawaban yang sebelumnya dibagikan, lalu membagikan salah satunya. Jika tidak ada jawaban yang ditemukan, Gemini akan mengatakan bahwa ia tidak dapat menjawab. Di setiap jawaban, pengguna dapat mengklik tombol tindakan aksesori untuk @menyebut pengelola ruang dan meminta jawaban. Dengan menggunakan AI Gemini, aplikasi Google Chat akan beradaptasi dan mengembangkan basis pengetahuannya karena terus dilatih berdasarkan percakapan di ruang tempat aplikasi tersebut ditambahkan.

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

  • Menyebutkan aplikasi asisten pengetahuan AI akan menambahkannya ke ruang.
    Gambar 1. Charlie 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 tersebut.
    Gambar 3. Aplikasi Chat asisten pengetahuan AI akan meminta Vertex AI dengan Gemini untuk menjawab pertanyaan Dana berdasarkan histori percakapan ruang Chat, lalu membagikan jawabannya.

Prasyarat

Tujuan

  • Buat aplikasi Chat yang menggunakan AI generatif untuk menjawab pertanyaan berdasarkan pengetahuan yang dibagikan dalam percakapan ruang Chat.
  • Dengan AI generatif:
    • Mendeteksi dan menjawab pertanyaan karyawan.
    • Terus belajar dari percakapan yang sedang berlangsung di ruang Chat.
  • Mendengarkan dan merespons pesan di ruang Chat secara real time, meskipun aplikasi Chat tidak menerima pesan secara langsung.
  • Mempertahankan pesan dengan menulis ke, dan membaca dari, database Firestore.
  • Memfasilitasi kolaborasi di ruang Chat dengan menyebutkan pengelola ruang jika tidak ada jawaban untuk suatu pertanyaan.

Arsitektur

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

Diagram arsitektur untuk aplikasi Chat asisten pengetahuan AI

Aplikasi Chat asisten pengetahuan AI berfungsi seperti ini:

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

    1. Aplikasi Chat akan meminta pengguna yang menambahkannya ke ruang Chat untuk mengonfigurasi autentikasi 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 mulai memproses peristiwa seperti pesan di ruang. Endpoint notifikasi langganan adalah topik Pub/Sub yang menggunakan Eventarc untuk meneruskan peristiwa ke aplikasi Chat.

    4. Aplikasi Chat memposting pesan pengantar ke ruang.

  • Pengguna di ruang Chat memposting pesan:

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

    2. Aplikasi Chat menambahkan pesan ke database Firestore.

      Jika pengguna mengedit atau menghapus pesan nanti, aplikasi Chat akan menerima peristiwa yang diperbarui atau dihapus secara real time, lalu memperbarui atau menghapus pesan di database Firestore.

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

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

      2. Jika Vertex AI dengan Gemini menjawab pertanyaan, aplikasi Chat akan memposting jawaban dengan memanggil metode spaces.messages.create di Chat API menggunakan autentikasi aplikasi.

        Jika Vertex AI dengan Gemini tidak dapat menjawab pertanyaan, aplikasi Chat akan memposting pesan yang menyatakan bahwa aplikasi tersebut tidak dapat menemukan jawaban atas pertanyaan tersebut dalam histori ruang Chat.

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

  • Aplikasi Chat menerima notifikasi siklus proses dari Google Workspace Events API bahwa langganan ruang Chat akan segera berakhir:

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

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

    2. Aplikasi Chat menghapus data ruang Chat dari Firestore.

Meninjau 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 oleh Gemini. Asisten pengetahuan AI Aplikasi chat menggunakan Vertex AI API dengan Gemini untuk mengenali, memahami, dan menjawab pertanyaan karyawan.
  • Chat API: API untuk mengembangkan aplikasi Google Chat yang menerima dan merespons peristiwa interaksi Chat, seperti pesan. Aplikasi Chat asisten pengetahuan AI menggunakan Chat API untuk:
    • Menerima dan merespons peristiwa interaksi yang dikirim oleh Chat.
    • Mencantumkan pesan yang dikirim dalam ruang.
    • Memposting jawaban atas pertanyaan pengguna di ruang.
    • Konfigurasi atribut yang menentukan tampilannya di Chat, seperti nama dan gambar avatar.
  • Google Workspace Events API: API ini memungkinkan Anda berlangganan acara dan mengelola notifikasi perubahan di seluruh aplikasi Google Workspace. Aplikasi Chat asisten pengetahuan AI menggunakan Google Workspace Events API untuk memantau pesan yang diposting di ruang Chat sehingga dapat mendeteksi dan menjawab pertanyaan meskipun tidak disebutkan.
  • Firestore: Database dokumen serverless. Aplikasi Chat asisten pengetahuan AI menggunakan Firestore untuk menyimpan data tentang pesan yang dikirim di ruang Chat.
  • Pub/Sub: Pub/Sub adalah layanan pesan asinkron dan skalabel yang memisahkan layanan yang menghasilkan pesan dari layanan yang memproses pesan tersebut. 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 menerapkan, menyesuaikan, atau memelihara infrastruktur yang mendasarinya. Aplikasi Chat asisten pengetahuan AI menggunakan Eventarc untuk merutekan peristiwa dari Pub/Sub ke ruang Chat dan Cloud Function yang menerima dan memproses peristiwa langganan.
  • Cloud Functions: Layanan komputasi serverless yang ringan yang memungkinkan Anda membuat fungsi mandiri dengan tujuan tunggal yang dapat merespons interaksi Chat dan peristiwa langganan tanpa perlu mengelola server atau lingkungan runtime. Aplikasi Chat asisten pengetahuan AI menggunakan dua Cloud Functions bernama:
    • app: Menampung endpoint HTTP yang mengirimkan peristiwa interaksi ke Chat dan sebagai platform komputasi untuk menjalankan logika yang memproses dan merespons peristiwa ini.
    • eventsApp: Menerima dan memproses peristiwa ruang Chat seperti pesan dari langganan Pub/Sub.
    Cloud Functions menggunakan produk Google Cloud berikut untuk mem-build dan menghosting resource komputasi:
    • Cloud Build: Platform continuous integration, pengiriman, dan deployment yang terkelola sepenuhnya yang menjalankan build otomatis.
    • Cloud Run: Lingkungan 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 > Create a Project.

    Buka Membuat 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 project dibuat, jadi pilih ID yang sesuai dengan kebutuhan Anda sepanjang waktu project tersebut.

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

gcloud CLI

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

  • Cloud Shell: Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell.
    Aktifkan Cloud Shell
  • Shell Lokal: Untuk menggunakan lingkungan pengembangan lokal, instal dan lakukan 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 Penagihan. Klik Menu > Penagihan > Project Saya.

    Buka Penagihan untuk Project Saya

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

gcloud CLI

  1. Untuk mencantumkan 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 dengan 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 di project Cloud yang benar, lalu klik Berikutnya.

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

gcloud CLI

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

    gcloud config set project PROJECT_ID

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

  2. 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:

    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

Autentikasi dan otorisasi memungkinkan aplikasi Chat mengakses resource di Google Workspace dan Google Cloud.

Dalam tutorial ini, Anda memublikasikan aplikasi Google Chat secara internal sehingga Anda dapat menggunakan informasi pengganti. Sebelum memublikasikan aplikasi Google Chat secara eksternal, ganti informasi placeholder dengan informasi sebenarnya untuk layar izin.

  1. Di konsol Google Cloud, buka Menu > > Branding.

    Buka Branding

  2. Jika Anda telah mengonfigurasi , Anda dapat mengonfigurasi setelan Layar Izin OAuth berikut di Branding, Audiens, dan Akses Data. Jika Anda melihat pesan yang menyatakan belum dikonfigurasi, klik Mulai:

    1. Di bagian App Information, pada App name, ketik AI knowledge assistant.
    2. Di bagian User support email, pilih alamat email Anda atau grup Google yang sesuai.
    3. Klik Berikutnya.
    4. Di bagian Audiens, pilih Internal. Jika Anda tidak dapat memilih Internal, pilih Eksternal.
    5. Klik Berikutnya.
    6. Di bagian Informasi Kontak, masukkan Alamat email tempat Anda dapat menerima notifikasi tentang perubahan apa pun pada project Anda.
    7. Klik Berikutnya.
    8. Di bagian Selesai, tinjau Kebijakan Data Pengguna Layanan Google API dan jika Anda setuju, pilih Saya setuju dengan Kebijakan Data Pengguna Layanan Google API.
    9. Klik Lanjutkan.
    10. Klik Buat.
    11. Jika Anda memilih Eksternal untuk jenis pengguna, tambahkan pengguna penguji:
      1. Klik Audiens.
      2. Di bagian Pengguna pengujian, klik Tambahkan pengguna.
      3. Masukkan alamat email Anda dan pengguna uji coba resmi lainnya, lalu klik Simpan.
  3. Klik Akses Data > Tambahkan atau Hapus Cakupan. Panel akan muncul dengan daftar cakupan untuk setiap API yang telah Anda aktifkan di project Google Cloud Anda.

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

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

    3. Klik Perbarui.

    4. Setelah memilih cakupan yang diperlukan oleh aplikasi Anda, di halaman Akses Data, klik Simpan.

Membuat kredensial client ID OAuth

  1. Di Konsol Google Cloud, buka Menu > APIs & Services > Credentials.

    Buka Kredensial

  2. Klik Create Credentials > OAuth client ID.

  3. Klik Application type > Web application.

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

  5. Di bagian Authorized redirect URIs, klik Add URI.

  6. Di URIs 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 Function, Anda harus menyetel regionnya ke nilai ini.
    • PROJECT_ID: Project ID project Cloud yang Anda buat.
  7. Klik Buat.

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

  9. Simpan file yang didownload sebagai credentials.json. Kemudian, saat membuat dua Cloud Function, Anda menyertakan file credentials.json di setiap deployment.

  10. Klik Oke.

Membuat topik Pub/Sub

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

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. Hapus centang Tambahkan langganan default.

  5. Di bagian Encryption, pilih Google-managed encryption key.

  6. Klik Buat. Topik Pub/Sub akan muncul.

  7. Agar topik Pub/Sub dan Google Workspace Events API ini dapat bekerja bersama, berikan izin kepada pengguna IAM Chat untuk memposting ke topik Pub/Sub:

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

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

    3. Di bagian Assign roles, pada Select a role, 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. Beri pengguna IAM Chat izin untuk memposting ke topik Pub/Sub:

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

Buat database Firestore

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

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

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

Model data database Firestore.

Root berisi dua koleksi:

  1. spaces, dengan setiap dokumen merepresentasikan ruang Chat tempat aplikasi Chat ditambahkan. Setiap pesan 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 menyertakan 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 saat pesan dibuat.

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 cara membuat database Firestore:

Konsol Google Cloud

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

    Buka Firestore

  2. Klik Buat database.

  3. Dari Pilih mode Firestore Anda, klik Native mode.

  4. Klik Lanjutkan.

  5. Konfigurasi database:

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

    2. Di bagian Jenis lokasi, pilih Region.

    3. Di Region, tentukan region untuk database Anda, seperti us-central1. Untuk mendapatkan performa terbaik, pilih lokasi yang sama atau terdekat 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 region Firestore, seperti us-central1. Untuk mendapatkan performa terbaik, pilih lokasi yang sama atau terdekat dengan Cloud Functions aplikasi Chat.

Membuat dan men-deploy aplikasi Chat

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

  1. Buat dan deploy dua Cloud Function. Satu untuk merespons peristiwa interaksi Chat dan satu untuk merespons peristiwa Pub/Sub.
  2. Buat dan deploy aplikasi Chat di halaman konfigurasi Google Chat API.

Membuat dan men-deploy Cloud Functions

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

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

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

Sebelum membuat Cloud Functions, luangkan waktu untuk meninjau dan memahami contoh kode yang dihosting di GitHub.

Lihat di GitHub

Buat dan deploy app

Konsol Google Cloud

  1. Download kode dari GitHub sebagai file ZIP.

    Download file ZIP

  2. Ekstrak file zip yang didownload.

    Folder yang diekstrak berisi seluruh repositori contoh Google Workspace.

  3. Di folder yang diekstrak, buka direktori google-chat-samples-main/node/ai-knowledge-assistant.

  4. Di direktori google-chat-samples/node/ai-knowledge-assistant, tambahkan file credentials.json yang Anda download saat membuat kredensial ID klien OAuth untuk autentikasi dan otorisasi.

  5. Kompresi konten folder ai-knowledge-assistant menjadi file zip.

    File zip harus berisi file dan folder berikut:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Di konsol Google Cloud, buka Menu > Cloud Functions.

    Buka Cloud Functions

    Pastikan project Google Cloud untuk aplikasi Chat Anda dipilih.

  7. Klik Create Function.

  8. Di halaman Create function, siapkan fungsi Anda:

    1. Di Environment, pilih Cloud Run Function.
    2. Di Function name, ketik app.
    3. Di Region, pilih wilayah, seperti us-central1. Region ini harus cocok dengan region yang Anda tetapkan di URI pengalihan yang diizinkan saat Anda membuat kredensial client ID OAuth untuk autentikasi dan otorisasi.
    4. Di Trigger type, pilih HTTPS.
    5. Di bagian Autentikasi, pilih Izinkan pemanggilan yang tidak diautentikasi.
    6. Klik Berikutnya.
  9. Di Runtime, pilih Node.js 20.

  10. Di Entry point, hapus teks default dan masukkan app.

  11. Di Kode sumber, pilih Upload ZIP.

  12. Di Destination bucket, buat atau pilih bucket:

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

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

  13. Di File ZIP, upload file ZIP yang Anda download dari GitHub, ekstrak, dan kompresi ulang:

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

    Halaman Cloud Functions detail akan terbuka, dan fungsi Anda akan muncul dengan dua indikator progres: satu untuk build dan satu untuk layanan. Saat kedua indikator progres menghilang dan digantikan 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. Tetapkan nilai project ke project ID Cloud Anda.
      2. Tetapkan nilai location ke region Cloud Function, seperti us-central1.
  16. Klik Deploy.

gcloud CLI

  1. Clone kode dari GitHub:

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

    cd google-chat-samples/node/ai-knowledge-assistant
  3. Di direktori google-chat-samples/node/ai-knowledge-assistant, tambahkan file credentials.json yang Anda download saat membuat kredensial ID klien OAuth untuk autentikasi dan otorisasi.

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

    1. Tetapkan nilai project ke ID project Cloud Anda.
    2. Tetapkan nilai location ke region Cloud Function, 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 region Cloud Function agar cocok dengan yang ditetapkan dalam file env.js, seperti us-central1.

Buat dan deploy eventsApp

Konsol Google Cloud

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

    Buka Cloud Functions

    Pastikan project Google Cloud untuk aplikasi Chat Anda dipilih.

  2. Klik Create Function.

  3. Di halaman Create function, siapkan fungsi Anda:

    1. Di Environment, pilih Cloud Run Function.
    2. Di Function name, ketik eventsApp.
    3. Di Region, pilih wilayah, seperti us-central1. Region ini harus cocok dengan region yang Anda tetapkan di URI pengalihan yang diizinkan saat Anda membuat kredensial client ID OAuth untuk autentikasi dan otorisasi.
    4. Di Trigger type, pilih Cloud Pub/Sub.
    5. Di Cloud Pub/Sub topic, pilih nama topik Pub/Sub yang Anda buat, yang memiliki format projects/PROJECT/topics/events-api dengan PROJECT adalah project ID Cloud Anda.
    6. Jika Anda melihat pesan yang diawali dengan Service account(s) might not have enough permissions to deploy the function with the selected trigger., klik Izinkan Semua.
    7. Klik Berikutnya.
  4. Di Runtime, pilih Node.js 20.

  5. Di Entry point, hapus teks default dan masukkan eventsApp.

  6. Di Kode sumber, pilih Zip dari Cloud Storage.

  7. Di bagian Lokasi Cloud Storage, klik Telusuri.

  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 Cloud Functions detail akan terbuka, dan fungsi Anda akan muncul dengan tiga indikator progres: satu untuk build, satu untuk layanan, dan satu 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. Tetapkan nilai project ke project ID Cloud Anda.
      2. Tetapkan nilai location ke region Cloud Function, seperti us-central1.
  13. Klik Deploy.

gcloud CLI

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

    cd google-chat-samples/node/ai-knowledge-assistant
  2. Di direktori google-chat-samples/node/ai-knowledge-assistant, tambahkan file credentials.json yang Anda download saat membuat kredensial ID klien OAuth untuk autentikasi dan otorisasi.

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

    1. Tetapkan nilai project ke ID project Cloud Anda.
    2. Tetapkan nilai location ke region Cloud Function, 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 region Cloud Function agar cocok dengan yang ditetapkan dalam file env.js, seperti us-central1.

Salin URL pemicu Cloud Function app

Anda menempelkan URL pemicu app Cloud Function di bagian berikutnya saat Anda Mengonfigurasi 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. Mendeskripsikan app Cloud Function:

    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 dengan informasi tentang aplikasi Chat Anda, termasuk nama aplikasi Chat dan URL pemicu Cloud Function aplikasi Chat yang mengirimkan peristiwa interaksi Chat.

  1. Di konsol Google Cloud, klik Menu > More products > Google Workspace > Product Library > Google Chat API > Manage > Configuration.

    Buka konfigurasi Chat API

  2. Di Nama aplikasi, 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. Di Deskripsi, ketik Answers questions with AI.

  5. Klik tombol Aktifkan fitur Interaktif ke posisi aktif.

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

  7. Di bagian Connection settings, pilih HTTP endpoint URL.

  8. Di HTTP endpoint URL, tempel URL Pemicu dari Cloud Function app yang 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 Anda buat.

  9. Di bagian Visibilitas, pilih Jadikan aplikasi Chat ini tersedia untuk orang dan grup tertentu di domain 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, yang berarti aplikasi Chat siap diuji.

Menguji aplikasi Chat

Uji aplikasi Chat asisten pengetahuan AI di ruang Chat dengan pesan dengan mengajukan pertanyaan yang dapat dijawab oleh aplikasi Chat asisten pengetahuan AI.

Berikut beberapa cara untuk menguji asisten pengetahuan AI Aplikasi Chat:

  • Tambahkan aplikasi Chat asisten pengetahuan AI ke ruang Chat yang ada dan ajukan pertanyaan yang relevan dengan ruang tersebut.
  • Buat ruang Chat dan kirim 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 Chat, lalu mengajukan pertanyaan tentangnya.

Untuk tutorial ini, mari buat ruang Chat dan tempel beberapa paragraf dari panduan Ringkasan pengembangan 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 Anda memilih jenis ruang ini?, pilih Kolaborasi.

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

    5. Klik Buat.

  3. Tambahkan pesan untuk digunakan sebagai sumber data:

    1. Di browser web, buka panduan ringkasan pengembangan dengan Chat.

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

  4. Menambahkan aplikasi Chat asisten pengetahuan AI:

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

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

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

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

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

    2. Aplikasi Chat menjawab pertanyaan asisten pengetahuan AI.

    3. Jika jawaban tidak akurat atau memadai, untuk membantu meningkatkan kualitas histori percakapan AI, klik Dapatkan bantuan. Aplikasi Chat asisten pengetahuan AI menyebutkan pengelola ruang dan memintanya untuk menjawab pertanyaan. Lain kali, aplikasi Chat asisten pengetahuan AI akan mengetahui jawabannya.

Pertimbangan, pilihan arsitektur alternatif, dan langkah berikutnya

Bagian ini meninjau cara lain aplikasi Chat asisten pengetahuan AI dapat dibuat.

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

Tutorial ini merekomendasikan penyimpanan data ruang Chat seperti pesan dalam database Firestore karena meningkatkan performa dibandingkan dengan memanggil metode list pada resource Message dengan Chat API setiap kali aplikasi Chat menjawab pertanyaan. Selain itu, memanggil list messages berulang kali dapat menyebabkan aplikasi Chat mencapai batas kuota API.

Namun, jika histori percakapan ruang Chat menjadi terlalu panjang, penggunaan Firestore dapat menjadi mahal.

Cloud Storage adalah alternatif untuk Firestore. Setiap ruang tempat aplikasi Chat asisten pengetahuan AI aktif memiliki objeknya sendiri, dan setiap objek adalah file teks yang berisi semua pesan di ruang tersebut. Keuntungan dari pendekatan ini adalah seluruh isi file teks dapat dimasukkan ke Vertex AI dengan Gemini sekaligus, tetapi kerugiannya adalah perlu lebih banyak upaya untuk memperbarui histori percakapan karena Anda tidak dapat menambahkan ke objek di Cloud Storage, hanya menggantinya. Pendekatan ini tidak masuk akal jika Anda memperbarui histori pesan secara rutin, tetapi akan menjadi pilihan yang baik jika Anda memperbarui histori pesan secara berkelompok secara berkala, misalnya seminggu sekali.

Memecahkan masalah

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

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

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, sebaiknya hapus project Cloud tersebut.

  1. Di Konsol Google Cloud, buka halaman Manage resources. Klik Menu > IAM & Admin > 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 project.