Dasar-dasar modul backend Agent Assist

Agent Assist kini menawarkan modul backend, opsi siap pakai untuk mengintegrasikan Agent Assist ke dalam sistem Anda. Modul backend mencakup layanan interseptor Cloud Pub/Sub dan layanan konektor UI. Interseptor memproses notifikasi peristiwa terkait fitur dari Dialogflow menggunakan topik Cloud Pub/Sub, lalu konektor UI mengirimkannya ke UI desktop agen. Konektor UI juga mendukung sinyal masukan dari desktop agen dan mengirimkannya ke Dialogflow.

Struktur modul backend

Komponen modul backend

Modul backend memerlukan produk Google berikut untuk mengintegrasikan Agent Assist ke dalam sistem Anda:

  • Cloud Pub/Sub
  • Interseptor Cloud Pub/Sub
  • Memorystore for Redis
  • Konektor UI

Cloud Pub/Sub

Topik Cloud Pub/Sub dikonfigurasi dalam profil percakapan. Agent Assist kemudian akan memublikasikan saran, pesan baru, notifikasi hasil pengenalan baru, dan peristiwa terkait siklus proses percakapan ke topik. Saran dalam bentuk HumanAgentAssistantEvent, dan pesan baru serta peristiwa siklus proses percakapan dalam bentuk ConversationEvent. Untuk setiap profil percakapan, keempat jenis pesan peristiwa ini dipublikasikan ke topik yang berbeda. Misalnya, pesan peristiwa siklus proses percakapan mungkin berupa {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}, yang menunjukkan awal percakapan.

Interseptor Cloud Pub/Sub

Interseptor Cloud Pub/Sub di-deploy di Cloud Run. Fungsi setiap instance container (server) dari layanan Cloud Run ini identik dengan instance lainnya, termasuk:

  • Memproses pesan peristiwa yang diposting oleh topik Cloud Pub/Sub menggunakan permintaan HTTP.
  • Memublikasikan pesan yang diterima ke channel Redis Pub/Sub, khusus untuk nama percakapan dan ID server konektor UI. Format channel-nya adalah {connector_id}:{conversation_name}.

Redis

Redis menggunakan Memorystore for Redis untuk melakukan hal berikut:

  • Mencatat informasi ID server konektor UI untuk setiap percakapan dalam pemetaan <conversation_name, connector_id>.
  • Meneruskan notifikasi peristiwa yang dipublikasikan oleh interseptor Cloud Pub/Sub ke server konektor UI yang sesuai menggunakan mekanisme Redis Pub/Sub.

Konektor UI

Konektor UI adalah aplikasi yang mengekspos proxy Dialogflow API RESTful dan endpoint SocketIO WebSocket untuk melakukan streaming pesan Dialogflow yang berasal dari Agent Assist. Konektor UI di-deploy di Cloud Run. Karena koneksi WebSocket bersifat stateful, desktop agen akan tetap terhubung ke container yang sama di Cloud Run selama masa aktif koneksi. Oleh karena itu, setiap server konektor UI menangani percakapan yang berbeda dan berlangganan ke channel Redis Pub/Sub yang berbeda ({connector_id}:*) untuk percakapan yang ditanganinya. Tugas untuk setiap server konektor UI:

  • Mendukung metode autentikasi yang disesuaikan untuk desktop agen.
  • Menghasilkan JWT sementara setelah mengautentikasi token yang disesuaikan untuk desktop agen. Saat mengirim permintaan ke koneksi Dialogflow API atau WebSocket, konektor UI akan memvalidasi JWT terlampir, bukan memeriksa token agen asli.
  • Membuat koneksi SocketIO WebSocket dengan desktop agen yang diautentikasi berdasarkan nama percakapan tertentu.
  • Berlangganan pesan peristiwa ke channel Redis Pub/Sub untuk percakapan yang ditanganinya.
  • Mengirim peristiwa Agent Assist ke UI desktop saat diterima.

Secret Manager

Konektor UI memerlukan kunci rahasia JWT untuk menghasilkan JWT sementara bagi desktop agen yang diautentikasi. Kunci rahasia ini disimpan di Secret Manager.

Direktori

Berikut adalah ringkasan struktur direktori di repositori kode. Hubungi perwakilan Google Anda untuk mendapatkan izin jika Anda tidak dapat mengakses repositori.

.
├── cloud-pubsub-interceptor
│   ├── Dockerfile: Docker-image creation for Cloud Pub/Sub Interceptor deployment on Cloud Run
│   ├── main.py: A starter for flask app
│   ├── requirements.txt: Python packages for running Cloud Pub/Sub Interceptor service
│   └── unit_test.py: Unit test code for Cloud Pub/Sub Interceptor
├── cloudbuild.yaml: An example configuration file for Cloud Build
├── deploy.sh: An automated deployment script
├── images
├── readme.md
└── ui-connector
    ├── Dockerfile: Builds Docker image for UI Connector deployment on Cloud Run
    ├── auth.py: JWT validation and registration handling
    ├── auth_options.py: Support for authentication through different identity providers
    ├── config.py: Configuration for variables about authentication, logging, and CORS origins
    ├── dialogflow.py: With Dialogflow utilities for runtime-conversation handling
    ├── main.py: A starter for flask app
    ├── requirements.txt: Python packages for running UI Connector
    ├── templates
    │   └── index.html: A simple interactive demo
    └── unit_test.py: Unit test code for UI Connector

Harga dan kuota

Integrasi Agent Assist mencakup layanan berikut, yang memiliki harga dan batas kuota yang berlaku.

Langkah berikutnya

Lihat panduan penginstalan modul backend untuk mengetahui informasi selengkapnya tentang cara memulai metode integrasi ini.