이제 Agent Assist에서 Agent Assist를 시스템에 통합하는 기본 옵션인 백엔드 모듈을 제공합니다. 백엔드 모듈에는 Cloud Pub/Sub 인터셉터 서비스와 UI 커넥터 서비스가 포함됩니다. 인터셉터는 Cloud Pub/Sub 주제를 사용하여 Dialogflow의 기능 관련 이벤트 알림을 처리하고 UI 커넥터는 이를 에이전트 데스크톱 UI로 푸시합니다. UI 커넥터는 상담사 데스크톱의 피드백 신호도 지원하며 이를 Dialogflow로 전송합니다.
백엔드 모듈 구조
백엔드 모듈 구성요소
백엔드 모듈에는 다음과 같은 Google 제품이 필요합니다.
- Cloud Pub/Sub
- Cloud Pub/Sub 인터셉터
- Redis용 Memorystore
- UI 커넥터
Cloud Pub/Sub
Cloud Pub/Sub 주제는 대화 프로필에서 구성됩니다.
그러면 Agent Assist가 제안, 새 메시지, 새 인식 결과 알림, 대화 수명 주기 관련 이벤트를 주제에 게시합니다. 추천은 HumanAgentAssistantEvent
형식이며, 새 메시지와 대화 수명 주기 이벤트는 ConversationEvent
형식입니다.
각 대화 프로필에 대해 이러한 네 가지 종류의 이벤트 메시지가 서로 다른 주제에 게시됩니다. 예를 들어 대화 수명 주기 이벤트 메시지는 대화의 시작을 나타내는 {"conversation":"projects/your-project-id/locations/global/conversations/your-conversation-id","type":"CONVERSATION_STARTED"}
일 수 있습니다.
Cloud Pub/Sub 인터셉터
Cloud Pub/Sub 인터셉터는 Cloud Run에 배포됩니다. 이 Cloud Run 서비스의 각 컨테이너 인스턴스 (서버)의 기능은 다음을 비롯하여 각 인스턴스와 동일합니다.
- HTTP 요청을 사용하여 Cloud Pub/Sub 주제에서 게시한 이벤트 메시지를 처리합니다.
- 수신된 메시지를 Redis Pub/Sub 채널에 게시합니다. 이는 대화 이름과 UI 커넥터 서버 ID에 따라 다릅니다. 채널 형식은
{connector_id}:{conversation_name}
입니다.
Redis
Redis는 Redis용 Memorystore를 사용하여 다음 작업을 실행합니다.
- 매핑
<conversation_name, connector_id>
에서 각 대화의 UI 커넥터 서버 ID 정보를 기록합니다. - Redis Pub/Sub 메커니즘을 사용하여 Cloud Pub/Sub 인터셉터에서 게시한 이벤트 알림을 해당 UI 커넥터 서버로 전달합니다.
UI 커넥터
UI 커넥터는 RESTful Dialogflow API 프록시와 SocketIO WebSocket 엔드포인트를 노출하여 Agent Assist에서 시작된 Dialogflow 메시지를 스트리밍하는 애플리케이션입니다.
UI 커넥터는 Cloud Run에 배포됩니다.
WebSocket 연결은 스테이트풀(Stateful)이므로 상담사 데스크톱은 연결 수명 동안 Cloud Run의 동일한 컨테이너에 계속 연결을 유지합니다. 따라서 모든 UI 커넥터 서버는 서로 다른 대화를 처리하고 처리하는 대화에 대해 별도의 Redis Pub/Sub 채널 ({connector_id}:*
)을 구독합니다. 각 UI 커넥터 서버의 작업:
- 상담사 데스크톱의 맞춤 인증 방법을 지원합니다.
- 상담사 데스크톱의 맞춤설정된 토큰을 인증한 후 임시 JWT를 생성합니다. Dialogflow API 또는 WebSocket 연결에 요청을 보내면 UI 커넥터는 원래 에이전트 토큰을 확인하는 대신 첨부된 JWT를 검증합니다.
- 지정된 대화 이름을 기반으로 인증된 상담사 데스크톱과의 SocketIO WebSocket 연결을 설정합니다.
- 처리하는 대화의 Redis Pub/Sub 채널에 이벤트 메시지를 구독합니다.
- 수신되는 대로 Agent Assist 이벤트를 데스크톱 UI로 푸시합니다.
Secret Manager
UI 커넥터에는 인증된 상담사 데스크톱을 위한 임시 JWT를 생성하기 위한 JWT 보안 비밀 키가 필요합니다. 이 보안 비밀 키는 Secret Manager에 저장됩니다.
디렉터리
다음은 코드 저장소의 디렉터리 구조 개요입니다. 저장소에 액세스할 수 없는 경우 Google 담당자에게 권한을 요청하세요.
. ├── 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
가격 책정 및 할당량
Agent Assist 통합에는 자체 적용 가능한 가격 책정 및 할당량 한도가 있는 다음 서비스가 포함됩니다.
다음 단계
이 통합 방법을 시작하는 방법에 관한 자세한 내용은 백엔드 모듈 설치 가이드를 참고하세요.