Dialogflow ES 에이전트 만들기

이 가이드에서는 Dialogflow 콘솔을 사용하여 간단한 에이전트를 빌드하고 테스트하는 방법을 설명합니다.

시작하기 전에

이 가이드를 읽기 전에 다음을 수행해야 합니다.

  1. Dialogflow 기본사항 읽기
  2. 설정 단계 수행

에이전트 만들기

아직 에이전트를 만들지 않은 경우 지금 만듭니다.

  1. Dialogflow ES 콘솔로 이동합니다.
  2. 로그인 메시지가 표시되면 Dialogflow 콘솔에 로그인합니다. 자세한 내용은 Dialogflow 콘솔 개요를 참조하세요.
  3. 왼쪽 사이드바 메뉴에서 에이전트 만들기를 클릭합니다. 이미 다른 에이전트가 있는 경우 에이전트 이름을 클릭하고 아래로 스크롤하여 새 에이전트 만들기를 클릭합니다.
  4. 에이전트 이름, 기본 언어, 기본 시간대를 입력합니다.
  5. 프로젝트를 이미 만든 경우 해당 프로젝트를 입력합니다. Dialogflow 콘솔이 프로젝트를 만들 수 있게 하려면 새 Google 프로젝트 만들기를 선택하세요.
  6. 만들기 버튼을 클릭합니다.

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

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

이 가이드를 위해 준비된 에이전트는 사용자 정의 인텐트나 항목이 없는 새 에이전트입니다.

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

  1. new-agent.zip 파일을 다운로드합니다.
  2. Dialogflow ES 콘솔로 이동합니다.
  3. 에이전트를 선택합니다.
  4. 에이전트 이름 옆에 있는 설정 버튼을 클릭합니다.
  5. 내보내기 및 가져오기 탭을 선택합니다.
  6. Zip 파일에서 복원을 선택하고 안내에 따라 다운로드 한 zip 파일을 복원합니다.

인텐트

인텐트는 한 번의 대화 차례를 위한 최종 사용자의 의도를 분류합니다. 각 에이전트에 대해 다수의 인텐트를 정의합니다. 조합된 인텐트는 전체 대화를 처리할 수 있습니다.

기본 인텐트

에이전트를 만들 때 2개의 기본 인텐트가 생성됩니다.

  • 기본 시작 인텐트: 이 인텐트는 최종 사용자가 에이전트와 대화를 시작할 때 일치됩니다. 이 인텐트는 대화를 시작하기 위해 최종 사용자에게 에이전트가 무엇을 하는지 또는 대화를 시작하기 위해 무엇을 말할 수 있는지를 알려주는 응답을 반환해야 합니다.
  • 기본 대체 인텐트: 이 인텐트는 에이전트가 최종 사용자 표현을 다른 인텐트와 일치시킬 수 없을 때 일치합니다.

이러한 인텐트를 보려면 에이전트의 인텐트 목록으로 이동합니다.

  1. Dialogflow ES 콘솔로 이동합니다.
  2. 방금 만든 에이전트를 선택합니다.
  3. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.

콘솔 중간에 에이전트의 인텐트 목록이 표시됩니다.

인텐트 목록 스크린샷

기본 대체 인텐트 테스트

시뮬레이터 스크린샷

Dialogflow 시뮬레이터는 콘솔 오른쪽에 있습니다. 시뮬레이터를 사용하여 메시지를 말하거나 입력해서 에이전트를 테스트할 수 있습니다.

지금 에이전트를 시험해 봅니다.

  • 지금 사용해 보기 필드를 클릭합니다.
  • What is your name?을 입력합니다.
  • Enter 키를 누릅니다.

에이전트 응답이 기본 응답 섹션에 표시됩니다. 사용자 입력과 일치된 인텐트가 없으므로 기본 대체 인텐트가 일치되었고 기본 응답 중 하나를 수신했습니다.

새 인텐트 만들기

이 섹션의 단계에서는 'what is your name?'이라는 질문에 답변할 수 있는 인텐트를 만듭니다. 인텐트마다 다수의 학습 문구를 정의합니다. 학습 문구는 최종 사용자가 에이전트에 입력하거나 말할 수 있는 문구의 예시로, 최종 사용자 표현이라고도 합니다. 인텐트와 일치하는 다양한 표현과 함께 Dialogflow를 제공하는 여러 학습 문구를 정의해야 합니다.

인텐트 만들기:

  1. 왼쪽 사이드바 메뉴의 인텐트 옆에 있는 인텐트 추가 버튼을 클릭합니다.
  2. 인텐트 이름 필드에 get-agent-name을 입력합니다.
  3. 학습 문구 섹션에서 학습 문구 추가를 클릭합니다.
  4. 각 학습 문구를 입력하고 각 항목을 입력한 후 Enter 키를 누릅니다.

    • What is your name?
    • Do you have a name?
    • Tell me your name

    학습 문구 스크린샷

  5. 응답 섹션의 텍스트 응답 섹션에 다음을 입력합니다.

    • My name is Dialogflow!

    학습 문구 스크린샷

  6. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

인텐트 테스트

시뮬레이터 스크린샷

시뮬레이터에서 What's your name?을 입력하고 Enter 키를 누릅니다.

사용자의 표현이 제공된 학습 문구와 약간 다르지만 에이전트가 표현에 올바르게 응답합니다.

Dialogflow는 학습 문구를 머신러닝 모델의 예시로 사용하여 최종 사용자의 표현을 인텐트에 일치시킵니다. 이 모델은 사용자의 표현을 에이전트의 모든 인텐트와 대조하며 확인하여 각 인텐트에 점수를 부여합니다. 그리고 가장 점수가 높은 인텐트가 일치됩니다. 가장 점수가 높은 인텐트에 매우 낮은 점수가 매겨질 경우 대체 인텐트가 일치됩니다.

매개변수 및 항목

런타임 시 인텐트가 일치할 때 Dialogflow는 최종 사용자 표현에서 추출된 값을 매개변수로 제공합니다. 각 매개변수에는 데이터가 정확히 어떻게 추출되는지를 나타내는 항목 유형이라는 유형이 있습니다. 원시 최종 사용자 입력과 달리 매개변수는 일부 로직을 수행하거나 응답을 생성할 때 손쉽게 사용할 수 있는 구조화된 데이터입니다.

에이전트를 만들 때 학습 문구의 일부를 주석 처리하고 관련 매개변수를 구성하여 데이터 추출 방식을 제어할 수 있습니다.

매개변수 만들기

매개변수를 사용하여 새 인텐트를 만듭니다.

  1. 왼쪽 사이드바 메뉴의 인텐트 옆에 있는 더하기 버튼을 클릭합니다.
  2. 인텐트 양식 맨 위에서 인텐트 이름을 set-language로 지정합니다.
  3. 다음 학습 문구를 추가합니다.
    • I know English
    • I speak French
    • I know how to write in German
  4. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

    주석 처리된 학습 문구 스크린샷

Dialogflow는 학습 문구에서 시스템 개체로 인식되는 매개변수를 자동으로 감지합니다. 시스템 항목은 Dialogflow에서 위치, 색, 날짜와 같은 여러 일반적인 데이터 유형에 제공하는 항목입니다.

학습 문구 섹션 아래에서 Dialogflow는 작업 및 매개변수 테이블에 행을 만듭니다.

주석 처리된 학습 문구 스크린샷

  • 필수: 이 체크박스가 선택되어 있지 않으므로 이 매개변수는 선택사항입니다.
  • 매개변수 이름: 이 매개변수는 언어로 인식되므로 language라는 이름이 자동으로 지정됩니다.
  • 항목: 항목 유형입니다. @sys.language 시스템 항목으로 인식됩니다.
  • 값: 이 매개변수의 값을 참조할 때 사용하는 식별자입니다.
  • 목록: 이 체크박스가 선택되어 있지 않으므로 매개변수는 목록이 아닙니다.

응답에 매개변수 데이터 사용

매개변수 값을 응답에 사용할 수 있습니다. 예를 들어 에이전트를 만들 때 응답에서 $language 매개변수 참조를 사용할 수 있습니다. 이는 런타임에 최종 사용자 표현에 지정된 언어로 대체됩니다.

매개변수를 사용하는 응답을 추가합니다.

  1. 응답 섹션까지 아래로 스크롤합니다.
  2. 다음 텍스트 응답 Wow! I didn't know you knew $language.를 추가합니다.
  3. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

매개변수 테스트

시뮬레이터 스크린샷

시뮬레이터에서 I know Russian을 입력합니다.

Dialogflow는 Russian 값을 사용하여 language 매개변수를 올바르게 추출하며 응답에서 매개변수 참조가 사용된 위치에 Russian이 올바르게 삽입되었음을 알 수 있습니다.

고유한 항목 만들기

대부분의 경우 시스템 항목에서 제공하지 않는, 사용자에게서 수집해야 하는 특정 데이터가 있습니다. 커스텀 항목을 만들어 이러한 데이터를 처리할 수 있습니다.

커스텀 항목 만들기:

  1. 왼쪽 사이드바 메뉴에서 항목 옆에 있는 항목 추가 버튼을 클릭합니다.
  2. 항목 이름으로 language-programming를 입력합니다.
  3. 다음 항목(행)을 추가합니다.

    참조 값 동의어
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

항목 사용 스크린샷

복수 및 대소문자와 같은 간단한 부분은 Dialogflow에서 처리할 수 있지만 항목에 가능한 모든 동의어는 개발자가 추가해야 합니다. 동의어를 많이 추가할수록 에이전트가 항목을 더 잘 결정할 수 있습니다.

새 항목 사용

새 항목을 사용하는 학습 문구를 set-language 인텐트에 추가합니다.

  1. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.
  2. set-language 인텐트를 클릭합니다.
  3. 다음 학습 문구를 추가합니다.
    • I know javascript
    • I know how to code in Java
  4. 이 학습 문구의 프로그래밍 언어는 자동으로 주석 처리되고 작업 및 매개변수 섹션의 매개변수에 추가됩니다.
  5. 응답 섹션에서 두 번째 텍스트 응답 $language-programming is an excellent programming language.를 추가합니다.
  6. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

새 항목 테스트

시뮬레이터 스크린샷

시뮬레이터에서 I know how to code in py를 입력합니다.

Dialogflow에서 language-programming 매개변수에 대해 py를 올바르게 추출하고 Python 항목으로 이를 식별하고 응답에 값을 삽입한 것을 볼 수 있습니다.

컨텍스트

대화의 흐름을 제어하려면 컨텍스트 를 사용할 수 있습니다.

후속 조치 인텐트 추가

후속 조치 인텐트는 수동으로 컨텍스트를 만들고 관리할 필요 없이 대화를 제어할 수 있는 간편한 방법을 제공합니다.

후속 조치 인텐트를 만들면 출력 컨텍스트가 상위 인텐트에 추가되며 같은 이름의 입력 컨텍스트가 하위 인텐트에 추가됩니다. 즉, 후속 조치 인텐트는 이전 대화 차례에서 상위 인텐트가 일치했을 경우에만 일치시킨다는 의미입니다.

커스텀 후속 조치 인텐트를 set-language 인텐트에 추가합니다.

  1. 이전 단계에서 만든 set-language 인텐트를 선택합니다.
  2. 응답 섹션에서 텍스트 응답을 업데이트합니다.
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.
  4. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.
  5. 마우스로 set-language 인텐트를 가리키고 후속 조치 인텐트 추가를 클릭합니다.
  6. 표시되는 목록에서 커스텀을 클릭합니다.
  7. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

Dialogflow는 자동으로 후속 조치 인텐트 이름을 set-language - custom으로 지정합니다.

후속 조치 스크린샷

후속 조치 인텐트를 사용한 인텐트 일치

후속 조치 인텐트는 상위 인텐트가 일치된 후에만 일치됩니다. set-language - custom 인텐트는 set-language 인텐트가 일치된 후에만 일치되므로 사용자가 조금 전에 How long have you known $language?라는 질문을 받았다고 가정할 수 있습니다. 이제 이 질문에 예상 가능한 사용자 답변에 대한 학습 문구를 추가할 수 있습니다.

  1. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.
  2. set-language - custom 인텐트를 클릭합니다.
  3. 다음 학습 문구를 추가합니다.
    • 3 years
    • about 4 days
    • for 5 years
  4. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

후속 조치 인텐트 테스트

시뮬레이터에 I know French를 입력한 다음 How long have you known French 질문에 about 2 weeks로 대답합니다.

두 번째 표현(about 2 weeks)에 대한 응답이 없지만 표현이 올바른 인텐트(set-language - custom)와 일치하고 기간 매개변수가 올바르게 파싱(2 weeks)된 것을 확인할 수 있습니다.

인텐트 및 컨텍스트

set-language 인텐트를 검사하여 2로 시작하는 set-language-followup이 출력 컨텍스트로 나열되는지 확인합니다. 이 숫자를 수명이라고 합니다.

출력 컨텍스트 스크린샷

set-language 인텐트가 일치된 후 set-language-followup 컨텍스트가 활성화되어 2회 동안 대화에 연결됩니다(수명 2). 따라서 사용자가 How long have you known $language? 질문에 응답하면 set-language-followup 컨텍스트가 활성화됩니다.

set-language - custom 인텐트를 검사하여 set-language-followupset-language 인텐트의 출력 컨텍스트와 동일한 입력 컨텍스트로 나열되는지 확인합니다.

활성 컨텍스트와 일치하는 입력 컨텍스트가 있는 인텐트는 Dialogflow에서 인텐트를 일치할 때 우선적으로 고려됩니다.

컨텍스트 및 매개변수

컨텍스트는 매개변수 값을 저장하며 출력 컨텍스트가 활성일 때 set-language 인텐트에 정의된 매개변수의 값에 액세스할 수 있습니다.

set-language - custom 인텐트에서는 사용자가 그 언어를 안 기간만 물었으며 언급된 언어 자체에 대해서는 묻지 않았습니다.

응답에서 언어를 참조하려면 다음 안내를 따르세요.

  1. set-language - custom 인텐트 텍스트 응답을 I can't believe you've known #set-language-followup.language for $duration!으로 업데이트합니다.
  2. 저장 버튼을 클릭하고 에이전트 학습 대화상자가 학습이 완료되었음을 표시할 때까지 기다립니다.

#set-language-followup.language 참조를 활성 컨텍스트에 대한 매개변수 참조라고 합니다.

컨텍스트 매개변수 테스트

시뮬레이터에 I know French를 입력한 다음 질문에 1 week로 응답합니다. language 매개변수 값이 컨텍스트에서 검색되는 것을 볼 수 있습니다.

생산화

프로덕션에서 에이전트를 실행하기 전에 생산화 권장사항을 구현해야 합니다.

다음 단계

fulfillment 빠른 시작을 사용해 보기