Google Dialogflow로 이메일 전송 챗봇 구축

Google Dialogflow로 이메일 전송 챗봇 구축

​​​​​​챗봇은 현대 기업에서 점점 더 중요한 도구가 되고 있습니다. 기업은 올바른 도구와 노하우로 고객과 실제 대화를 나눌 수 있는 채팅 에이전트를 만듭니다.





Google Dialogflow ES는 시장에서 가장 강력하고 무료인 챗봇 구축 도구 중 하나입니다. 그러나 어떻게 그 잠재력을 최대한 발휘할 수 있습니까?





MAKEUSEOF 오늘의 비디오

1단계: Dialogflow ES 에이전트 만들기

고유한 Dialogflow ES 에이전트를 만드는 것은 이 프로세스의 첫 번째 단계입니다. 모든 Google 계정이 작동하며 다음으로 이동하여 시작합니다. Google Dialogflow EN 웹사이트 . 클릭 에이전트 생성 클릭하기 전에 로그인하고 양식에 세부 정보를 입력한 후 만들다 . Dialogflow를 사용하여 엔터테인먼트용 챗봇 만들기 , 자동화 또는 고객 서비스. 이 프로젝트는 후자를 다룹니다.





  Dialogflow es 에이전트 만들기

2단계: Dialogflow 후속 조치 인텐트 추가

새 에이전트에는 기본 시작 인텐트와 기본 폴백 인텐트만 있습니다. 인텐트는 대화의 단편 또는 단계입니다.

시작하려면 기존 기본 시작 인텐트에 두 개의 후속 인텐트를 추가해야 합니다. 마우스 오버 기본 시작 의도 , 클릭 후속 조치 추가 , 그리고 선택 드롭다운 메뉴에서. 드롭다운 메뉴에서 아니요를 선택하여 프로세스를 반복하여 두 번째 후속 조치 의도를 만듭니다.



  예 및 아니오 후속 조치 의도

후속 조치 없음은 대화를 종료하고 사용자에게 작별 인사를 합니다. 열기 후속 조치 의도 없음 일련의 텍스트 응답을 추가하여 대화를 종료합니다. 활성화 이 의도를 대화의 끝으로 설정 슬라이더.

  Dialogflow 대화 최종 의도

기본 의도 화면으로 돌아가서 네 후속 조치 의도 그것을 열려면.





3단계: JSON으로 풍부한 Dialogflow 응답 목록 작성

이제 이러한 인텐트를 설정했으므로 사용자가 액세스할 수 있도록 사용자에게 질문을 던질 차례입니다. 열기 기본 시작 의도 그리고 삭제 생성된 응답입니다. 딸깍 하는 소리 응답 추가 그리고 선택 커스텀 페이로드 메뉴에서.

  환영 의도 사용자 정의 페이로드

아래 JSON 코드는 두 가지 유형의 풍부한 응답을 추가합니다. 정보와 칩.





죽은 하드 드라이브를 수정하는 방법
{ 
"richContent": [
[
{
"type": "chips",
"options": [
{
"text": "Yes"
},
{
"text": "No"
}
]
},
{
"image": {
"src": {
"rawUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/TK_email_icon.svg/1024px-TK_email_icon.svg.png"
}
},
"title": "Tell me about yourself :)",
"subtitle": "Give me some of your personal information. I'll send it to you in an email. That's the deal; absolutely no funny business. Promise! You in?",
"type": "info"
}
]
]
}

4단계: 사용자 이름을 Dialogflow 매개변수로 수집

다음으로, 사용자로부터 데이터를 수집하기 위해 또 다른 후속 인텐트를 추가할 차례입니다. 2단계에서 설명한 대로 사용자 이름을 묻는 Yes 후속 조치가 이미 있어야 합니다. 마우스 오버 네 후속 조치 의도 기본 의도 메뉴에서 후속 조치 추가 , 선택 관습 목록에서.

  예를 선택하십시오. 후속 조치 의도

이렇게 하면 학습 문구 없이 새로운 후속 인텐트가 생성됩니다. Training Phrases 섹션으로 이동하여 상자에 이름을 입력하고 Enter 키를 눌러 새 구문으로 추가합니다. 그러면 @sys.person 엔터티 유형이 있는 새 매개변수 생성이 트리거됩니다. 클릭 @sys.person 엔터티로 변경하고 @sys.given-name 실재.

  dialogflow 주어진 이름 매개변수 설정

이것은 에이전트가 사용할 수 있도록 사용자의 입력을 저장합니다. 응답 섹션으로 이동하여 다음을 사용하여 응답을 추가하십시오. $given-name 그 안에. 이렇게 하면 수집한 name 매개변수가 호출되어 채팅에 표시될 수 있습니다.

  Dialogflow 이름 매개변수 응답

5단계: Dialogflow 커스텀 페이로드를 사용하여 인텐트 트리거

방금 추가한 후속 인텐트 내에서 응답 추가를 클릭하고 목록에서 사용자 지정 페이로드를 선택합니다. 이 섹션에 아래 JSON 코드를 추가하면 사용자에게 색상을 선택하도록 요청하는 목록이 풍부한 응답이 트리거됩니다.

  Dialogflow 리치 콘텐츠 목록

이 JSON 코드의 가장 중요한 부분은 각 항목이 있는 이벤트 섹션입니다. 클릭하면 각 목록 항목은 지금까지 수집된 이름 및 색상 매개변수를 사용하여 COLOR라는 이벤트를 호출합니다. 인텐트에는 이를 트리거할 이벤트가 할당될 수 있습니다.

{ 
"richContent": [
[
{
"event": {
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Red"
},
"name": "COLOR"
},
"title": "Red",
"type": "list"
},
{
"type": "divider"
},
{
"event": {
"name": "COLOR",
"languageCode": "en",
"parameters": {
"name": "$given-name",
"color": "Green"
}
},
"type": "list",
"title": "Green"
},
{
"type": "divider"
},
{
"type": "list",
"title": "Blue",
"event": {
"languageCode": "en",
"name": "COLOR",
"parameters": {
"name": "$given-name",
"color": "Blue"
}
}
}
]
]
}

6단계: 인텐트 간에 Dialogflow 매개변수 이동

기본 의도 메뉴로 돌아가서 인텐트 생성 . 새 인텐트에 이름을 지정하고 다음을 입력합니다. 색깔 누르기 전에 이벤트 섹션에서 입력하다 .

  이벤트가 있는 색상 의도

교육 문구 섹션으로 이동하여 문구 목록에 이름과 색상을 추가하여 새 매개변수 생성을 트리거합니다. 변경 @sys.person 매개변수 엔터티 @sys.given-name 엔터티 및 색상 엔터티가 다음으로 설정되어 있는지 확인하십시오. @sys.color .

  색상 훈련 및 매개변수

이제 $given-name 및 $color를 사용하여 응답을 추가하여 사용자의 입력이 채팅 창에 표시되도록 할 수 있습니다.

  매개변수가 있는 색상 의도 응답

마지막으로 다시 컨텍스트 섹션을 페이지 상단에 표시하고 고유한 이름으로 출력을 추가합니다. 이것은 이 인텐트에서 다음 인텐트로 매개변수를 전달합니다.

  색상 의도 출력 컨텍스트

7단계: Dialogflow 매개변수로 사용자의 국가 및 전화번호 수집

기본 의도 메뉴로 돌아가서 색상 의도 방금 생성하고 다음을 클릭합니다. 후속 조치 추가 . 새 인텐트의 컨텍스트 섹션을 확인하십시오. 입력 및 출력 섹션 모두의 마지막 단계에서 생성한 색상 컨텍스트가 포함되어 있는지 확인하십시오. 현재 의도에 대한 다른 출력 컨텍스트를 추가합니다.

  Dialogflow 색상 국가 후속 조치 의도

로 이동 훈련 문구 섹션을 누르고 명중하기 전에 목록에 국가 이름을 추가하십시오. 입력하다 . 그러면 새 매개변수가 생성됩니다. 매개변수의 엔티티 유형을 다음으로 변경하십시오. @sys.geo-country 응답 섹션에 매개변수를 추가하기 전에

  국가 교육 및 매개변수

메인 인텐트 메뉴로 돌아가서 방금 생성한 인텐트에 대한 새로운 후속 인텐트를 생성합니다. 방금 취한 단계를 반복하되 전화번호를 사용하십시오. 훈련 문구 부분. 생성된 매개변수에 @sys.phone-number 엔티티 유형.

  전화번호 교육 및 매개변수

메인 인텐트 메뉴로 돌아가서 방금 생성한 인텐트에 대한 두 개의 새로운 후속 인텐트를 생성합니다. 예 및 아니오 후속 조치 의도. 후속 조치 없음을 설정하여 대화를 종료할 수 있습니다.

  전화번호 예 아니오 후속 조치

예 후속 인텐트에는 이전에 생성한 인텐트의 모든 컨텍스트가 있어야 합니다.

  후속 입력 컨텍스트

마지막으로, 메인 Intents 메뉴로 돌아가서 방금 생성한 Yes 후속 의도에 대한 새로운 후속 Intent를 생성합니다. 교육 문구 섹션에 이메일 주소를 추가하고 생성된 매개변수가 @sys.email 엔터티 유형으로.

  Dialogflow 이메일 매개변수

로 이동 응답 섹션, 클릭 응답 추가 , 선택 커스텀 페이로드 목록에서. 다음 JSON 코드는 SENDEMAIL이라는 이벤트를 호출하는 목록 유형의 풍부한 응답을 추가합니다. 지금까지 요청한 모든 사용자 매개변수가 이 인텐트로 전송됩니다.

{ 
"richContent": [
[
{
"title": "Send Email",
"event": {
"parameters": {
"name": "#Color-followup.name",
"country": "#Color-country-followup.country",
"email": "$email",
"color": "#Color-followup.color",
"phone": "#Color-country-phonenum-followup.phone-number"
},
"name": "SENDEMAIL",
"languageCode": "en"
},
"type": "list"
}
]
]
}

8단계: Dialogflow Node.js 인라인 편집기를 사용하여 이메일 보내기

딸깍 하는 소리 인텐트 생성 기본 의도 메뉴에서 추가하다 이메일을 보내 ~로 이벤트 섹션 및 히트 입력하다 . 수집한 모든 매개변수를 추가하여 이를 따르십시오. 작업 및 매개변수 부분.

  이메일 이벤트 및 매개변수

로 이동 이행 페이지 하단의 섹션을 클릭하고 레이블이 지정된 슬라이더를 활성화합니다. 이 인텐트에 대한 웹훅 호출 사용 . 이렇게 하면 이 인텐트에 사용자 지정 코드를 추가할 수 있습니다.

  대화 흐름 의도 이행

고르다 이행 페이지 왼쪽의 메인 메뉴에서 슬라이더를 활성화하여 인라인 편집기 . 이렇게 하려면 Google 프로젝트에 결제 계정을 추가해야 할 수 있습니다.

  Dialogflow 활성 인라인 편집기

클릭 패키지.json 탭을 누르고 파일 맨 아래로 스크롤합니다. 종속성 섹션을 다음 코드로 교체하여 프로젝트에 Nodemailer API를 추가합니다.

"dependencies": { 
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.13.1",
"firebase-functions": "^2.0.2",
"dialogflow": "^0.6.0",
"nodemailer": "^4.4.2",
"dialogflow-fulfillment": "^0.5.0"
}

index.js 파일로 돌아가서 기존 코드를 에서 찾은 샘플로 바꿉니다. 이 CodePen 프로젝트 클릭하기 전에 배포 . Gmail 자격 증명을 자신의 계정 자격 증명으로 교체해야 합니다. 이를 위해서는 앱 비밀번호를 사용해야 합니다. 완료되면 챗봇은 성공적인 대화가 끝날 때 수집한 모든 세부 정보를 사용자에게 이메일로 보냅니다. 당신은 할 수 있습니다 Node.js에 대해 자세히 알아보기 그리고 우리의 편리한 가이드와 함께 그것을 사용하는 방법.

웹사이트에서 Dialogflow ES 사용

새 챗봇은 사용자 정보를 수집하고 이메일을 보낼 수 있지만 Dialogflow ES는 훨씬 더 많은 일을 할 수 있습니다. 거의 모든 API를 이 서비스에 연결할 수 있으며 Dialogflow API를 사용하여 자신의 웹사이트에서 챗봇을 제어할 수 있습니다.