RBM 에이전트는 webhook 사용자가 에이전트에 메시지를 보내면 Google의 RBM 서비스는 메시지를 구성된 웹훅으로 전송합니다. 그런 다음 에이전트는 메시지를 디코딩합니다. 사용자에게 응답을 보낼 수 있습니다.
사용자는 RCS 클라이언트에서 허용하는 모든 텍스트, 위치, 파일을 전송할 수 있습니다. 에이전트는 사용자가 전송할 수 있는 모든 텍스트, 위치 또는 파일을 해당 메시지가 트리거할 수 있는 오류 상태도 확인할 수 있습니다
수신 메시지 처리
에이전트가 사용자의 메시지를 처리하고 이에 응답하는 방법은 크게 달라집니다. 비즈니스 로직에 집중할 수 있습니다 그러나 일반적으로 사용자에게 응답하는 단계는 확인할 수 있습니다
1단계: 사용자가 보낸 메시지 유형 확인하기
사용자는 다음 4가지 유형의 메시지를 보낼 수 있습니다.
- 문자 메시지는 자유 형식의 응답입니다.
- 제안 메시지에는 포스트백 데이터와 사용자가 탭한 추천 작업 또는 추천 답장
위치 메시지에는 위도 및 경도 값이 포함됩니다.
파일 메시지에는 파일의 URI 및 관련 데이터가 포함됩니다.
2단계: 메일 내용 처리
사용자 메시지의 내용은 에이전트의 로직과 다음 응답을 가이드해야 합니다. 할 수 있습니다.
사용자 의도를 식별하는 가장 쉬운 방법은 추천 답장 또는 추천 작업 어떤 텍스트든 포스트백 데이터는 컴퓨터에서 읽을 수 있습니다.
사용자가 문자 메시지를 보내면 에이전트가 NLU (예: Dialogflow)를 통해 사용자의 메시지를 처리하고 찾아낼 수 있습니다
위치 및 파일 메시지에는 텍스트 또는 포스트백 데이터가 포함되지 않으므로 상담사는 대화의 맥락과 최근 메시지를 고려해야 함 하세요.
에이전트가 사용자의 메시지에 응답하는 방법을 모르는 경우 오류 상태로 응답하고 입력 문장의 입력을 요청하여 사용자에게 추가 정보를 사용자의 관심을 끌 수 있는 추천 답장 및 추천 작업을 제시하여 에이전트가 응답하는 방법을 알고 있습니다.
3단계: 상호작용을 위한 비즈니스 로직 처리
에이전트가 사용자 메시지에 대한 올바른 응답을 식별하면 인프라에서 필요한 정보를 수집하고 다른 시스템과의 연결을 통해 상호작용하지 않습니다.
4단계: 사용자에게 응답하기
에이전트는 상호작용을 위한 비즈니스 로직을 처리한 후 다른 메시지를 보내고 사용자와 대화를 계속합니다.
예
다음 코드는 에이전트가 메시지를 수신하는 방법을 보여줍니다. 서식 지정 및 자세한 내용은 UserMessage의 상태를 확인합니다.
상담사가 문자 메시지를 받음
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "text": "Hello, world!" }
상담사가 추천을 통해 메시지를 받음
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "suggestionResponse": { "postbackData": "suggestion_1", "text": "Suggestion #1" } }
상담사가 위치를 수신합니다.
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "location": { "latitude": 37.422000, "longitude": -122.084056 } }
에이전트가 파일 수신
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
수신 이벤트 처리
에이전트는 사용자에게 보내는 메시지가 다음과 같을 때 알림을 수신합니다. 읽을 수 있습니다
다음 코드는 에이전트가 메시지를 수신하는 방법을 보여줍니다. 서식 지정 및 자세한 내용은 UserEvent는
사용자에게 메시지 전송됨
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "DELIVERED" }
사용자가 메시지를 읽음
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "READ" }
사용자가 입력 중
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "agentId": "AGENT_ID" }