Dialogflow 가상 에이전트

선택적으로 Dialogflow 가상 에이전트와 최종 사용자 간에 대화를 만들 수 있습니다. 가상 에이전트는 상담사에게 에스컬레이션하기 전에 직접 고객 대화를 해결하려고 시도합니다. 가상 에이전트 없이 Agent Assist를 사용하는 경우 최종 사용자는 중간 단계로 먼저 가상 에이전트와 상호작용하지 않고 상담사에게 바로 연결됩니다.

시작하기 전에

  1. Dialogflow 기본사항 읽기
  2. 설정 단계 수행
  3. Dialogflow ES 또는 Dialogflow CX를 사용하여 에이전트를 만듭니다. Agent Assist 시뮬레이터를 사용하여 이 가상 에이전트를 테스트하려면 가상 에이전트가 Dialogflow ES 에이전트여야 하며 Agent Assist 콘솔에서 사용하려는 것과 동일한 GCP 프로젝트와도 연결되어야 합니다. 시뮬레이터를 사용하여 가상 에이전트를 테스트하지 않으려면 에이전트는 ES 또는 CX 에이전트일 수 있으며 모든 GCP 프로젝트와 연결될 수 있습니다.

에이전트로 예시 파일 가져오기

이 가이드의 단계에서는 에이전트가 있다고 가정하므로 이 가이드를 위해 준비된 에이전트를 가져와야 합니다. 이 단계에서는 가져올 때 모든 에이전트 설정, 인텐트, 항목을 덮어쓰는 restore 옵션을 사용합니다.

파일을 가져오려면 다음 단계를 따르세요.

  1. room-booking-agent.zip 파일을 다운로드합니다.
  2. Dialogflow ES 콘솔로 이동합니다.
  3. 에이전트를 선택합니다.
  4. 에이전트 이름 옆에 있는 설정 버튼을 클릭합니다.
  5. 내보내기 및 가져오기 탭을 선택합니다.
  6. 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"
}