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 intersepsi Cloud Pub/Sub dan layanan konektor UI. Interceptor memproses notifikasi peristiwa terkait fitur dari Dialogflow menggunakan topik Cloud Pub/Sub, lalu konektor UI akan 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
  • Interceptor Cloud Pub/Sub
  • Memorystore for Redis
  • Konektor UI

Cloud Pub/Sub

Topik Cloud Pub/Sub dikonfigurasi di 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 {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}, yang menunjukkan awal percakapan.

Interceptor Cloud Pub/Sub

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

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

Redis

Redis menggunakan Memorystore for Redis untuk melakukan hal berikut:

  • Catat informasi ID server konektor UI untuk setiap percakapan dalam pemetaan <conversation_name, connector_id>.
  • Teruskan notifikasi peristiwa yang dipublikasikan oleh interceptor 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 WebSocket SocketIO 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 penampung yang sama di Cloud Run selama masa aktif koneksi. Oleh karena itu, setiap server konektor UI menangani percakapan yang berbeda dan berlangganan saluran 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 di desktop agen. Saat mengirim permintaan ke Dialogflow API atau koneksi WebSocket, konektor UI akan memvalidasi JWT yang terlampir, bukan memeriksa token agen asli.
  • Membuat koneksi WebSocket SocketIO dengan desktop agen yang diautentikasi berdasarkan nama percakapan tertentu.
  • Berlangganan pesan peristiwa ke saluran Pub/Sub Redis untuk percakapan yang ditanganinya.
  • Mendorong peristiwa Agent Assist ke UI desktop saat diterima.

Secret Manager

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

Direktori

Berikut adalah garis besar struktur direktori dalam repositori kode. Hubungi perwakilan Google Anda untuk mendapatkan izin jika Anda tidak dapat mengakses repositori.

.
├── cloud-pubsub-interceptor
│   ├── Dockerfile: Builds Docker image for Cloud Pub/Sub interceptor deployment on Cloud Run.
│   ├── main.py: A starter for flask app.
│   ├── requirements.txt
│   └── unit_test.py: Unit test code for Cloud Pub/Sub interceptor.
└── ui-connector
    ├── auth.py: Handles JWT validation and registration.
    ├── config.py: Configures variables about authentication, logging and CORS origins.
    ├── dialogflow.py: Includes Dialogflow utilities for handling conversations at runtime.
    ├── Dockerfile: Builds Docker image for UI connector deployment on Cloud Run.
    ├── main.py: A starter for flask app.
    ├── requirements.txt
    ├── templates
    │   └── index.html: A simple interactive demo.
    └── unit_test.py: Unit test code for UI connector.

Langkah selanjutnya

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