빠른 시작: 콘솔을 사용한 에이전트 빌드 및 상호작용

이 빠른 시작에서는 Dialogflow 콘솔을 사용하여 간단한 에이전트를 제작하고 이 에이전트와 상호작용하는 방법을 보여줍니다.

GCP 프로젝트 및 인증 설정

에이전트 만들기

인텐트

인텐트는 사용자의 의도를 분류하고 사용자 입력을 작업 및 응답에 매핑하는 데 사용됩니다. 각 에이전트에 대해 다수의 인텐트를 정의합니다. 기본적인 인텐트의 경우 다음을 정의합니다.

  • 인텐트에 대한 일치를 트리거할 수 있는 사용자 발화의 예
  • 발화에서 추출할 특정 데이터 유형
  • 응답

기본 인텐트

에이전트 설정의 인텐트 목록으로 이동합니다.

  1. Dialogflow 콘솔로 이동합니다.
  2. 방금 만든 에이전트를 선택합니다.
  3. 에이전트 이름 옆의 에이전트 설정 settings 버튼을 클릭합니다.
  4. 왼쪽 사이드바 메뉴에서 인텐트가 선택되지 않은 경우 인텐트를 클릭합니다.

콘솔 중간에는 에이전트의 기본 인텐트 목록이 표시됩니다. 에이전트가 사용자의 말을 이해하지 못하면 기본 대체 인텐트가 일치됩니다. 기본 시작 인텐트는 사용자에게 인사할 때 사용됩니다.

시뮬레이터에서 시험해 보기

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

지금 에이전트를 시험해 보세요.

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

Dialogflow 에이전트와 대화를 해 보았습니다. 그런데 에이전트가 사용자의 말을 이해하지 못한 것 같습니다. 사용자 입력과 일치된 인텐트가 없으므로 기본 대체 인텐트가 일치되고 기본 응답 중 하나가 수신됩니다.

새 인텐트 생성 및 학습

인텐트마다 다수의 학습 문구를 정의합니다. 학습 문구는 사용자가 에이전트에 말할 수 있는 문구, 즉 사용자 발화의 예입니다. 예를 들어 사용자는 'what is your name?', 'Do you have a name?'이라고 묻거나 단순히 'name?'이라고 물을 수 있습니다. 이러한 각 사용자 발화는 모두 고유하지만 에이전트의 이름을 확인하고자 하는 동일한 의도를 가지고 있습니다.

다음 단계에 따라 이 시나리오를 처리할 인텐트를 만듭니다.

  1. 왼쪽 사이드바 메뉴의 인텐트 옆에 있는 인텐트 추가(add) 버튼을 클릭합니다.
  2. 인텐트 이름 필드에 name을 입력합니다.
  3. 학습 문구 섹션에서 빈 텍스트 필드를 클릭합니다. 다음을 입력합니다(한 항목의 입력이 끝날 때마다 Enter 키 누름).

    • What is your name?
    • Do you have a name?
    • name
  4. 응답 섹션에서 텍스트 필드를 클릭하고 다음을 입력합니다.

    • My name is Dialogflow!
  5. 저장 버튼을 클릭하고 학습이 완료되었다는 에이전트 학습 팝업 메시지가 나타날 때까지 기다립니다.

시뮬레이터에서 시험해 보기

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

사용자의 쿼리가 제공된 학습 문구와 약간 다르지만 에이전트가 쿼리에 올바르게 응답합니다. 머신러닝을 사용했기 때문에 가능한 일입니다.

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

개체로 데이터 추출

Dialogflow가 사용자 발화에서 추출하도록 하려는 특정 데이터 유형인 개체로 학습 문구를 주석 처리할 수 있습니다. Dialogflow는 학습 문구에서 일치된 개체를 매개변수로 추출할 수 있습니다.

인텐트에 매개변수 추가

매개변수가 있는 새 인텐트를 만들려면 다음 안내를 따르세요.

  1. 왼쪽 사이드바 메뉴의 인텐트 옆에 있는 더하기(add) 버튼을 클릭합니다.

  2. 인텐트 양식 맨 위에서 인텐트 이름을 Languages로 지정합니다.

  3. 다음 학습 문구를 추가합니다.

    • I know English
    • I speak French
    • I know how to write in German
  4. 저장을 클릭합니다.

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

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

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

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

매개변수 값을 응답에 사용할 수 있습니다. 이 경우 응답에 $language를 사용할 수 있으며, 이는 사용자 쿼리에 지정된 언어로 바뀝니다.

응답 섹션에서 다음 응답을 추가하고 저장 버튼을 클릭하세요.

  • Wow! I didn't know you knew $language

시뮬레이터에서 시험해 보기

시뮬레이터에서 에이전트에게 I know Russian이라고 말해 보세요.

Dialogflow가 language 매개변수를 'Russian' 값과 함께 정확히 추출하고, 'Russian'이 응답에서 매개변수 값이 사용된 위치에 정확히 삽입되는 것을 볼 수 있습니다.

고유한 개체 만들기

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

개발자 개체를 만들려면 다음 안내를 따르세요.

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

    참조 값 동의어
    자바스크립트 자바스크립트, js, ECMAScript
    자바 자바
    Python Python, py
  4. 저장을 클릭합니다.

각 개체에는 다음 항목이 있어야 합니다.

  • 이름
  • 하나 이상의 개체 항목
  • 각 개체 항목에 대한 참조 값과 하나 이상의 동의어

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

새 개체 사용

새 개체를 사용하는 'Languages' 인텐트에 학습 문구를 추가합니다.

  1. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.

  2. 'Languages' 인텐트를 클릭합니다.

  3. 다음 학습 문구를 추가합니다.

    • I know javascript
    • I know how to code in Java
  4. 이러한 학습 문구의 프로그래밍 언어는 자동으로 주석 처리되며 매개변수 목록에 추가됩니다.

  5. 응답 섹션에서 $ProgrammingLanguage is cool을 추가합니다.

  6. 저장을 클릭합니다.

시뮬레이터에서 시험해 보기

시뮬레이터에서 에이전트에게 I know how to code in py라고 말해 보세요.

Dialogflow에서 py 개체를 올바르게 추출하고 Python 개체로 이를 식별하고 응답에 값을 삽입한 것을 볼 수 있습니다.

컨텍스트로 상태 관리

Dialogflow 컨텍스트는 자연어 컨텍스트와 비슷합니다. 누군가 여러분에게 'they are orange'라고 말한다면 무엇을 가리켜 하는 말인지 이해하기 위해서는 컨텍스트가 필요합니다. 마찬가지로, Dialogflow도 이와 같은 사용자 발화를 처리하려면 인텐트를 정확하게 일치시키기 위한 컨텍스트를 받아야 합니다.

일반적으로 Dialogflow는 학습 문구가 사용자의 발화와 근접한 경우 인텐트를 일치시킵니다. 그러나 인텐트에 컨텍스트를 적용하는 경우 Dialogflow는 컨텍스트가 활성인 경우에만 해당 인텐트를 일치 대상으로 고려합니다. 컨텍스트를 사용하면 인텐트 일치를 위해 필요한 대화 상태를 정의하여 대화의 흐름을 제어할 수 있습니다. 또한 일치된 인텐트에서 다음 인텐트로 정보를 전달할 수도 있습니다.

후속 조치 인텐트 추가

후속 조치 인텐트는 수동으로 컨텍스트를 만들고 관리할 필요 없이 대화를 제어할 수 있는 간편한 방법을 제공합니다. 이러한 특수한 인텐트는 상위 인텐트 아래에 중첩됩니다. Dialogflow는 '예', '아니요', '취소', '다음'과 같은 사용자의 일반적인 응답을 처리하기 위한 사전 정의된 후속 조치 인텐트를 제공합니다. 커스텀 후속 조치 인텐트를 만들 수도 있습니다.

후속 조치 인텐트를 만들면 출력 컨텍스트가 상위 인텐트에 추가되며 같은 이름의 입력 컨텍스트가 하위 인텐트에 추가됩니다. 이는 후속 조치 인텐트는 이전 대화 차례에서 상위 인텐트가 일치될 때만 일치된다는 것을 의미합니다.

'Languages' 인텐트에 커스텀 후속 조치 인텐트를 추가하려면 다음 안내를 따르세요.

  1. 이전 단계에서 만든 'Languages' 인텐트를 선택합니다.

  2. 응답 섹션에서 텍스트 응답을 업데이트합니다.

    • Wow! I didn't know you knew $language. How long have you known $language?
  3. 저장을 클릭합니다.

  4. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.

  5. 'Languages' 인텐트 위로 마우스를 가져가서 후속 조치 인텐트 추가를 클릭합니다.

  6. 표시되는 목록에서 커스텀을 클릭합니다.

Dialogflow에서 후속 조치 인텐트 이름을 자동으로 'Languages - custom'이라고 지정합니다.

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

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

  1. 왼쪽 사이드바 메뉴에서 인텐트를 클릭합니다.

  2. 'Languages - custom' 인텐트를 클릭합니다.

  3. 다음 학습 문구를 추가합니다.

    • 3 years
    • about 4 days
    • for 5 years

시뮬레이터에서 시험해 보기

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

두 번째 쿼리('about 2 weeks')에 대한 응답은 없지만 쿼리가 올바른 인텐트('Languages - custom')에 일치되고 기간 매개변수가 올바르게 파싱된 것을 볼 수 있습니다('2 weeks').

인텐트 및 컨텍스트

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

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

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

활성 출력 컨텍스트와 일치되는 입력 컨텍스트가 있는 인텐트는 Dialogflow가 인텐트를 일치시킬 때 우선적으로 고려합니다.

컨텍스트 및 매개변수

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

'Languages - custom' 인텐트에서 여러분은 사용자가 그 언어를 안 기간만 물었으며 언급된 언어 자체에 대해서는 묻지 않았습니다. 'Languages - custom' 인텐트에 다음 응답을 추가하고 저장 버튼을 클릭합니다.

  • I can't believe you've known #languages-followup.language for $duration!

시뮬레이터에서 시험해 보기

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

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Dialogflow 문서
도움이 필요하시나요? 지원 페이지를 방문하세요.