선택적으로 Dialogflow 가상 에이전트와 최종 사용자 간에 대화를 만들 수 있습니다. 가상 에이전트는 상담사에게 에스컬레이션하기 전에 직접 고객 대화를 해결하려고 시도합니다. 가상 에이전트 없이 Agent Assist를 사용하는 경우 최종 사용자는 중간 단계로 먼저 가상 에이전트와 상호작용하지 않고 상담사에게 바로 연결됩니다.
시작하기 전에
- Dialogflow 기본사항 읽기
- 설정 단계 수행
- Dialogflow ES 또는 Dialogflow CX를 사용하여 에이전트를 만듭니다. Agent Assist 시뮬레이터를 사용하여 이 가상 에이전트를 테스트하려면 가상 에이전트가 Dialogflow ES 에이전트여야 하며 Agent Assist 콘솔에서 사용하려는 것과 동일한 GCP 프로젝트와도 연결되어야 합니다. 시뮬레이터를 사용하여 가상 에이전트를 테스트하지 않으려면 에이전트는 ES 또는 CX 에이전트일 수 있으며 모든 GCP 프로젝트와 연결될 수 있습니다.
에이전트로 예시 파일 가져오기
이 가이드의 단계에서는 에이전트가 있다고 가정하므로 이 가이드를 위해 준비된 에이전트를 가져와야 합니다. 이 단계에서는 가져올 때 모든 에이전트 설정, 인텐트, 항목을 덮어쓰는 restore 옵션을 사용합니다.
파일을 가져오려면 다음 단계를 따르세요.
room-booking-agent.zip
파일을 다운로드합니다.- Dialogflow ES 콘솔로 이동합니다.
- 에이전트를 선택합니다.
- 에이전트 이름 옆에 있는 설정 settings 버튼을 클릭합니다.
- 내보내기 및 가져오기 탭을 선택합니다.
- ZIP 파일에서 복원을 선택하고 안내에 따라 다운로드한 ZIP 파일을 복원합니다.
Dialogflow 에이전트 구성하기
이 섹션에서는 대화 프로필을 만들고 구성하는 방법을 보여줍니다. 대화 프로필은 대화 중 에이전트에 제공되는 추천을 제어하는 매개변수 집합을 구성합니다.
대화 프로필 만들기
대화를 만들려면 먼저 대화 프로필을 만들어야 합니다. 대화 프로필은 대화를 위한 에이전트 및 연결된 서비스를 구성하는 데 사용됩니다. 아래 단계에서는 위의 단계에서 만든 Dialogflow 에이전트를 사용하여 대화 프로필을 만들기 위해 API를 사용합니다. 또는 Agent Assist 콘솔을 사용하여 대화 프로필을 만들 수도 있습니다.
REST 및 명령줄
대화 프로필을 만들려면ConversationProfile
리소스에서 create
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversationProfiles
JSON 요청 본문:
{ "displayName": "My Contact Center Solution", "automatedAgentConfig": { "agent": "projects/PROJECT_ID/agent/environments/-" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "My Contact Center Solution", "automatedAgentConfig": { "agent": "projects/PROJECT_ID/agent/environments/-" } }
conversationProfiles
다음의 경로 세그먼트에 새 대화 프로필 ID가 있습니다.
런타임 중 대화 처리
대화 만들기
최종 사용자와 상담사 또는 가상 에이전트의 대화가 시작될 때 대화를 만듭니다. 추천을 보려면 최종 사용자 참여자를 만들어 대화에 추가해야 합니다. 다음 섹션에서는 이러한 프로세스를 안내합니다.
REST 및 명령줄
대화를 만들려면conversations
리소스에서 create
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
- CONVERSATION_PROFILE_ID: 대화 프로필을 만들 때 받은 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations
JSON 요청 본문:
{ "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z" }
conversations
다음의 경로 세그먼트에 새 대화 ID가 있습니다.
참여자 만들기
이제 참여자를 대화에 추가해야 합니다. 최종 사용자만이 대화에 추가해야 하는 참여자입니다.
REST 및 명령줄
참여자를 만들려면participants
리소스에서 create
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
- CONVERSATION_ID: 대화 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
JSON 요청 본문:
{ "role": "END_USER", }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID", "role": "END_USER" }
participants
다음의 경로 세그먼트에 새 참여자 ID가 있습니다.
콘텐츠 분석 및 자동 응답 받기
최종 사용자 참여자를 만든 후에는 해당 최종 사용자의 입력을 API로 보낼 수 있습니다. API가 인텐트 인식 요청으로 입력을 전송하고 응답을 반환합니다.
REST 및 명령줄
텍스트를 보내려면participants
리소스에서 analyzeContent
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
- CONVERSATION_ID: 대화 ID
- PARTICIPANT_ID: 최종 사용자 참여자 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
JSON 요청 본문:
{ "textInput": { "text": "I want to book a room", "languageCode": "en-US" } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "replyText": "I can help with that. Where would you like to reserve a room?", "automatedAgentReply": { "detectIntentResponse": { "responseId": "38e5d378-12e5-453b-9c37-ac6828b86673", "queryResult": { "queryText": "I want to book a room", "action": "room.reservation", "parameters": { "date": "", "duration": "", "guests": "", "location": "", "time": "" }, "fulfillmentText": "I can help with that. Where would you like to reserve a room?", "fulfillmentMessages": [ { "text": { "text": [ "I can help with that. Where would you like to reserve a room?" ] } } ], "intent": { "name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228", "displayName": "room.reservation" }, "intentDetectionConfidence": 0.8, "languageCode": "en-us" }, "webhookStatus": {} } } }
대화 완료
대화가 끝나면 종료하여 done
으로 표시합니다. 완료된 대화는 일정 기간이 지나면 정리됩니다.
REST 및 명령줄
대화를 종료하려면conversations
리소스에서 complete
메서드를 호출합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: GCP 프로젝트 ID
- CONVERSATION_ID: 대화를 만들 때 받은 ID
HTTP 메서드 및 URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "COMPLETED", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z", "endTime": "2018-11-06T03:50:26.930Z" }