카카오 톡 오픈 챗 봇 | 초간단 카카오톡 봇 만드는법!! 177 개의 가장 정확한 답변

당신은 주제를 찾고 있습니까 “카카오 톡 오픈 챗 봇 – 초간단 카카오톡 봇 만드는법!!“? 다음 카테고리의 웹사이트 you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 개굴잉 이(가) 작성한 기사에는 조회수 116,764회 및 좋아요 1,604개 개의 좋아요가 있습니다.

카카오 톡 오픈 챗 봇 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 초간단 카카오톡 봇 만드는법!! – 카카오 톡 오픈 챗 봇 주제에 대한 세부정보를 참조하세요

많은 리알분들이 궁금하다고 하셔서 영상으로 올리게 되었습니다
많은 도움이 되었으면 좋겠습니다 ㅎㅎ
아 그리구 제 채팅방은 봇 사용이 엄격히 금지되어있으니
주의하시길 바랍니당 쓰면 강퇴해버릴끄야 히힣
도움이 되셨다면 구독과 좋아요 버튼 한번씩만 부탁드려용
알림설정을 하시면 좋은 정보를 빠르게 얻으실 수 있습니당
카톡 오픈채팅방: https://open.kakao.com/o/g6DZIVsb
디스코드 서버 :https://discord.gg/AX8wsCA

카카오 톡 오픈 챗 봇 주제에 대한 자세한 내용은 여기를 참조하세요.

카카오톡 봇 – 나무위키:대문

보통은 카카오톡의 채팅방의 한 종류인 오픈채팅방에서 사용하지만 일반 단체 채팅방이나 1:1 채팅방에서도 사용할 수 있다. 원래는 카카오에서 공식 지원 …

+ 여기에 더 보기

Source: namu.wiki

Date Published: 6/9/2022

View: 9076

[카카오톡 활용하기] 봇이 대신 자동응답을, ‘오픈채팅방 방장봇 …

방 이름과 해시태그까지 입력하면 새 오픈채팅방이 생성된다. 입장 후 오른쪽 상단 줄 세개 모양을 터치하여 오픈채팅방 설정에 들어간다. ‘방장봇 활성화 …

+ 여기를 클릭

Source: it.donga.com

Date Published: 9/17/2021

View: 9750

주요 기능 사용법 · 도움말 – 챗봇 관리자센터 – Kakao

가운데 파란 ‘+ 봇 만들기’ 버튼이 봇 생성버튼입니다. Step 2. 우측 상단의 봇 만들기 버튼을 누르고, 카카오톡 챗봇을 선택합니다. intro …

+ 여기를 클릭

Source: i.kakao.com

Date Published: 7/25/2022

View: 7830

카카오톡 방장봇 만들기 (설정, 사용법 총정리) – IT슬림

1. 내가 방장으로 개설한 오픈채팅방을 실행합니다. · 2. 우측 상단에서 더보기(세줄 모양) 버튼을 클릭합니다. · 3. 오픈채팅 봇 아래의 + 방장봇 활성화를 …

+ 자세한 내용은 여기를 클릭하십시오

Source: itslim.tistory.com

Date Published: 1/27/2021

View: 1867

0.카카오톡 오픈채팅 봇 만드는 방법 – 일기장은 블로그에

1. 오픈채팅봇용 폰에 Andro Wear 를 설치합니다. · 2. 메신저 봇이라고 검색하셔서 메신저봇R을 설치합니다. · 3. 일단 카카오톡 채팅목록에서 적용하실 …

+ 자세한 내용은 여기를 클릭하십시오

Source: sompunch.tistory.com

Date Published: 2/20/2021

View: 1622

카카오톡 오픈채팅 방장봇 사용방법

먼저, 오픈채팅방을 개설하게 되면 메뉴를 클릭해서 오픈채팅 봇에 있는 + 방장봇 활성화 버튼을 눌러줍니다. 그러면, 방장봇을 활성화 할까요? 자동 응답 …

+ 여기에 표시

Source: anaque.tistory.com

Date Published: 3/5/2022

View: 9896

[카카오톡 채팅 봇] 일반채팅 단톡방 친구들과 대화 가능한 봇 …

(오픈채팅이나 플러스친구로 만드는 그런 봇이 아니고, 아무 채팅방에서나 높은 자유도로 사용 가능한 봇입니다.) 참고로 코드는 그대로 가져다 쓰셔도 …

+ 여기에 보기

Source: restudycafe.tistory.com

Date Published: 7/8/2021

View: 9179

카카오톡 오픈채팅 만들기 :: 챗봇 인사말 만들기 – 정보바다

코로나로 언택트 만남이 증가하면서 카카오톡 오픈 채팅방에서 익명으로 다양한 사람들과 온라인으로 만날 수 있습니다. 다만 오픈 채팅 만들기부터 …

+ 여기에 보기

Source: sweetredmango2.tistory.com

Date Published: 11/14/2022

View: 8609

카카오톡 오픈 채팅방에서 방장봇 활성화하여 편리하게 채팅하기

카카오톡 오픈 채팅방에서 방장봇 활성화하여 편리하게 채팅하기 카카오톡의 채팅에는 일반채팅 , 비밀 채팅, 오픈 채팅방 등을 개설하여 채팅을 할 …

+ 여기에 표시

Source: jjanggu1612.tistory.com

Date Published: 6/27/2021

View: 1166

주제와 관련된 이미지 카카오 톡 오픈 챗 봇

주제와 관련된 더 많은 사진을 참조하십시오 초간단 카카오톡 봇 만드는법!!. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

초간단 카카오톡 봇 만드는법!!
초간단 카카오톡 봇 만드는법!!

주제에 대한 기사 평가 카카오 톡 오픈 챗 봇

  • Author: 개굴잉
  • Views: 조회수 116,764회
  • Likes: 좋아요 1,604개
  • Date Published: 2020. 2. 18.
  • Video Url link: https://www.youtube.com/watch?v=-FKQYfGUkow

[카카오톡 활용하기] 봇이 대신 자동응답을, ‘오픈채팅방 방장봇’ 기능

[카카오톡 활용하기] 봇이 대신 자동응답을, ‘오픈채팅방 방장봇’ 기능 장현지 [email protected]

영상을 참고하면 기사 내용을 더욱 쉽게 이해할 수 있습니다.

[IT동아 장현지 기자] 카카오톡에는 일반채팅 뿐만 아니라 목적에 따라 비밀채팅, 오픈채팅방 중 선택하여 개설할 수 있다. 다수의 사람이 익명으로 모여 대화할 때는 오픈채팅방이 적합한데, 이때 방장(관리자)을 대신해 인사말이나 규칙을 자동으로 응답할 수 있는 방장봇 기능을 알아보자.

방장봇 활성화하기

먼저 오픈채팅방을 생성한다. 카카오톡 상단 오른쪽에서 새로운 채팅방을 만들 수 있는 ‘+’ 누른 후, ‘오픈채팅방’을 선택한다. 1:1 채팅방은 방 관리를 할 필요가 없기 때문에 그룹채팅방에서만 방장봇 기능을 사용할 수 있다.

방 이름과 해시태그까지 입력하면 새 오픈채팅방이 생성된다. 입장 후 오른쪽 상단 줄 세개 모양을 터치하여 오픈채팅방 설정에 들어간다. ‘방장봇 활성화’ 을 누른 후 안내 메세지에서 ‘확인’ 버튼을 누르면 방에 방장봇이 생긴다. 참고로 방장봇 활성화 및 설정은 방장만 가능하다.

방장봇 설정하기

이제 방장봇을 설정한다. ‘환영 메세지’란을 눌러 오픈채팅방에 새로 입장한 참여자에게 자동으로 보낼 메시지를 작성 후 공지글 첨부 여부 선택할 수 있다.

‘알림 메시지’ 또한 최대 3개까지 정할 수 있는데, 정해진 시간에 보낼 메시지를 입력하고 알림 시간과 반복 여부를 정한다. 단 채팅방 참여자가 많을 경우 시간이 지연될 수 있고 생성완료 후에는 수정할 수 없다.

마지막으로 ‘질문 답변’을 누르면 질문과 답변을 총 20개를 작성할 수 있다. 해당 오픈채팅방에서 자주 나오는 질문을 입력해두면 방장봇을 통해 편리하게 안내할 수 있다.

방장봇 이용하기

모두 설정한 후 오픈채팅방에서 ‘/’를 입력하면 설정한 질문이 나오며, 질문을 선택하면 방장봇이 설정된 답변을 자동으로 전송한다. 이처럼 다양한 사람들이 모인 오픈채팅방에서 방장봇을 활용하면 방 관리를 보다 쉽게 할 수 있다.

글 / IT동아 장현지 ([email protected])

영상 / 뉴미디어팀 차보경([email protected]), 김경미([email protected]), 길동민([email protected])

주요 기능 사용법 · 도움말

내가 만든 봇의 얼굴이 될 ‘카카오톡 채널’과 봇을 만드는 도구인 ‘챗봇 관리자센터’만 있으면 모든 준비 끝!

본 메뉴에서는 앞서 시작하기의 주요 개념에 이어, 실제 봇을 만들 때 필요한 각각의 메뉴 사용법을 안내합니다. 천리길도 한걸음부터, 조금씩 따라하다보면 어느새 AI챗봇 만들기에 익숙해진 내 자신을 발견합니다.

엔티티와 패턴발화, 블록, 그리고 컨텍스트까지. 이제 더 이상 어렵지 않습니다!

새로운 봇 만들기

챗봇 관리자센터에서는 간단하게 봇 이름만 입력하여 챗봇과 보이스봇을 만들 수 있습니다. 챗봇을 생성하는 과정은 아래와 같습니다.

Step 1. 로그인 후 아래 화면과 같이 비어있는 ‘나의 봇’ 목록 확인합니다.

비어 있는 봇 목록화면입니다. 가운데 파란 ‘+ 봇 만들기’ 버튼이 봇 생성버튼입니다.

Step 2. 우측 상단의 봇 만들기 버튼을 누르고, 카카오톡 챗봇을 선택합니다.

카카오톡 챗봇과 보이스봇(Closed Beta Test) 선택 팝업

Step 3. 봇 이름을 적고 확인을 누르면 생성이 완료되고 제작 페이지로 이동하게 됩니다.

카카오톡 챗봇의 이름을 입력하는 팝업

시나리오와 블록 만들기

시나리오 설정하기

봇 생성후 가장 먼저 해야할 일은 시나리오를 구성하는 것입니다. 블록을 구분하여 담아낼 수 있도록 계획을 세우고, 시나리오에 공통적으로 적용될 기능을 설정합니다. 시나리오 설정 메뉴는 다음 화면처럼 시나리오 메인 메뉴 아래 톱니바퀴 모양의 설정 아이콘으로 표시되어 있습니다.

시나리오 설정 메뉴 위치

시나리오 설정 메뉴안에서 봇 작업자는 봇에서 만든 모든 시나리오에 공통적으로 적용할 수 있는 시나리오 속성, 즉 1) 봇의 되묻기 기능에 대한 기본 설정과 2) 챗봇 사용자를 위한 봇 제네릭 메뉴를 설정할 수 있습니다.

되묻기 기능 공통 설정

시나리오 설정 메뉴안에 있는 되묻기 기능 설정 화면

위와 같이 하나의 봇 안에서 쓰이는 모든 시나리오에 공통적으로 적용될 되묻기 기능에 대하여,

되묻기 최대 횟수

되묻기 최대 시간

를 간단하게 선택하고, 각각의 경우에 대하여 유효 조건을 초과할 때 출력될 안내 메시지를 임의로 작성할 수 있습니다. (필수로 작성되어야하는 영역입니다.)

제네릭 메뉴를 추가하고 싶으면 ‘버튼 추가’를 누르면 되며, 버튼 설정은 ‘버튼 설정’을 통해 할 수 있습니다.

봇 제네릭 메뉴 내 버튼에 대한 사용자 설정 화면

버튼 설정에서는 버튼명과 버튼 기능을 직접 지정할 수 있습니다.

“퀵서비스 메뉴#1” 로 버튼명을 지정했습니다.

“퀵서비스 메뉴#2” 로 버튼명을 지정했습니다.

이때,

버튼명은 14자로 제한됩니다.

버튼 기능은 블록 연결 및 메세지 전송 두 가지만 제공됩니다.

블록 연결은 해당 버튼 클릭 시 원하는 블록으로 연결하는 것이며, 메시지 전송은 버튼을 클릭할 때 봇에게 해당 버튼명을 그대로 전송하는 것을 의미합니다.

봇 제네릭 메뉴안의 필요한 내용을 모두 작성하고, 확인 버튼을 누르면 작업 내용들이 저장됩니다.

봇 제네릭 메뉴가 설정 완료된 모습입니다

위의 예시에서 작성된 제네릭 메뉴가 카카오톡 채널 챗봇 화면에서 보여지는 모습은 아래와 같습니다.

카카오톡 채널 챗봇 하단에 사용자가 직접 클릭할 수 있는 버튼 두 개가 제네릭 메뉴 안에 구현되어있는 모습입니다.

제네릭 메뉴안의 각 버튼은 기존에 작성된 블록으로 연결될 수 있고, 사용자가 버튼을 누르면 제네릭 메뉴 안의 버튼명이 그대로 출력되고 해당 블록의 출력으로 설정된 말풍선이 나타납니다.

시나리오 생성하기

이제 시나리오를 생성해보겠습니다. 시나리오는 봇 생성 후 메인화면에서 플러스(+) 버튼을 클릭할 때 마다 시나리오1, 시나리오2… 순으로 생성됩니다.

시나리오 추가 기능 위치

시나리오의 이름 또한 손쉽게 수정할 수 있으며, 필요하면 삭제도 가능합니다.

시나리오명칭 우측에 있는 ‘더보기’ 아이콘 클릭 후 ‘편집’을 클릭하면 이름 수정이 가능합니다

시나리오 명칭 변경 모습

시나리오 명칭 우측에 있는 ‘더보기’ 아이콘 클릭 후 ‘삭제’를 클릭하면 해당 시나리오가 삭제 됩니다.

봇 작업자는 하나의 시나리오 안에는 사용자 의도를 나타내는 ‘블록’들을 [+ 블록추가] 버튼을 눌러 여러개 작성할 수 있습니다.

시나리오 안에서 블록 만들기

시나리오를 선택하면 기본적으로 우측 화면에 블록의 내용을 바로 채울 수 있는 화면을 볼 수 있습니다. 봇 작업자는 해당 화면의 위에서부터, 사용자 발화 패턴 설정 → 봇 응답형식 설정 순으로 필요 내용을 작성할 수 있습니다.

이때 파라미터 설정 부분은 메뉴가 접혀있습니다. 봇 작업자가 필요에 따라 챗봇 관리자센터의 스킬이나 플러그인 기능을 이용해야 한다면, 해당 파라미터 설정 부분을 클릭하여 메뉴를 펼치고 필요한 내용을 채우면 됩니다.

블록 만들기 디폴트 화면

참고로, 하나의 봇 안에서 시나리오가 점차 많아지게 되면, 봇 작업자는 특정 시나리오 및 블록들의 콘텐츠 유지보수를 할 때 정확한 위치를 찾기가 어려워질 수 있습니다. 그럴때는 시나리오 메인 메뉴에 있는 검색 창에서 검색 희망 키워드를 입력하면, 그에 해당하는 시나리오 및 블록들이 즉시 하이라이트 되어 나타납니다. 이를 통해 봇 작업자는 필요 업데이트 작업을 빠르게 진행할 수 있습니다.

키워드 검색에 따라 시나리오명이 하이라이트 된 모습

키워드 검색에 따라 블록명이 하이라이트 된 모습

시나리오간 블록 이동하기

봇 작업자는 시나리오안에서 작성된 블록을 타 시나리오로 직접 이동시킬수 있습니다. ‘블록 이동’ 개념이므로, 사본이 생성되어 이동되는 것은 아님을 유의하여 주십시오.

타 시나리오로의 이동이 필요한 블록을 선택하시고, 우측의 ‘더보기’ 버튼을 클릭하면, ‘이동’ 메뉴가 나타납니다. 그리고, ‘이동’ 메뉴를 클릭합니다.

블록이동을 위한 안내 팝업을 확인하고, 블록을 이동시킬 시나리오명을 선택해줍니다.

대상 블록이 기존 ‘시나리오01’에서, 새로운 ‘시나리오02’라는 지점으로 이동한 것을 알 수 있습니다.

기본 블록 설정하기

주요 개념 > 블록에서 설명한 것처럼, 챗봇 관리자센터가 봇을 생성 후 기본적으로 항시 제공하는 블록들을 기본 블록이라고 합니다.

기본 블록은 웰컴 블록, 폴백 블록, 탈출 블록 총 세 가지로 구성되어 있으며, 각 블록을 설정하는 방법은 다음의 그림을 참고해주시길 바랍니다.

작업자는 봇을 생성하고 나면 메인화면 좌측에서 기본 블록에 바로 접근할 수 있습니다.

봇 작업자가 봇을 생성하고 나면, 기본 블록은 기본 시나리오 메뉴 하단에 디폴트로 위치하게 됩니다. 봇 작업자는 봇을 만드는 중에 언제든 접근해서 필요한 세팅을 할 수 있습니다

웰컴 블록(Welcome Block) 설정하기

웰컴 블록은 봇 사용자가 봇을 처음 사용할 때 받게되는 응답을 설정하는 블록입니다.

웰컴 블록 내 메시지 꾸미기를 위한 말풍선 선택화면

봇 응답 형식 설정 우측에 있는 + 버튼을 클릭하면, 봇이 발송하는 웰컴 메시지를 어떤 말풍선에 담아서 꾸밀 것인지를 선택할 수 있습니다. 텍스트형, 이미지형, 카드형, 커머스형, 리스트형 또는 스킬을 연결하는 등 다양한선 타입을 골라 메시지를 채울 수 있습니다. 단, 웰컴 블록의 담긴 메시지는 카카오톡 채널 챗봇을 이용하는 사용자의 경우

사용자가 카카오톡 채널을 봇과 연결한 다음 처음으로 대화방에 진입한 경우

사용자가 챗봇과 친구가 아니지만, 채팅하기로 바로 대화방에 진입한 경우

최초 한 번만 사용자에게 전달됩니다. 동일한 사용자가 재입장할때마다 웰컴블록이 노출되기를 원하실 경우 일반 블록을 웰컴블록과 동일하게 생성하여 유도하는 방식으로 응용할 수 있습니다.

Caution. 만약 웰컴블록이 동작하지 않는 경우 아래 내용을 체크하여 주시기 바랍니다. 웰컴블록은 ON/OFF를 설정할 수 있으며 OFF할 경우, 위 상황에 해당하는 경우에도 웰컴 블록의 메시지는 전송되지 않습니다. 웰컴블록은 최초 1회 진입시에만 확인 가능합니다. 알림톡과 함께 사용하는 채널인 경우 사용자가 채널추가를 한 경우에만 웰컴블록이 노출됩니다.

폴백 블록(Fallback Block) 설정하기

봇이 사용자의 말을 알아듣지 못하고, 이해할 수 없다는 의미의 메시지를 내뱉는 상황을 폴백(fallback) 상황이라고 합니다. 즉, 폴백 블록은 사용자의 입력(Input)이 어떠한 블록과도 매칭이 되지 않을 때의 응답을 설정하는 블록입니다.

폴백 메시지 작성을 위한 텍스트형 말풍선 작성 공간의 모습. 폴백 말풍선에 필요한 버튼도 추가할 수 있습니다

상기 화면처럼, 봇 작업자는 봇이 사용자의 말을 이해하지 못할 때 발송하는 첫 번째 메시지를 ‘텍스트형’ 말풍선 형태로 작성할 수 있습니다. 첫 번째 응답 부분의 + 버튼을 누르면, 여러 개의 텍스트형 말풍선을 작성할 수 있습니다. 이렇게 작성된 말풍선들은 폴백 상황에서 랜덤으로 사용자에게 출력됩니다. 바로 연결 응답 및 기타 말풍선들을 추가로 폴백 내용 말풍선에 이어서 추가할 수도 있습니다.

탈출 블록(Exit Block) 설정하기

탈출 블록은 사용자가 봇의 되묻기 상황에서, 강제적으로 빠져나가고자 할 때 쓰는 명령어를 정의하는 곳입니다.

탈출 블록 내에서 탈출 명령어로 쓰일 발화를 지정하는 모습

되묻기 상황을 탈출하기 위한 임의의 명령어 발화를 입력해두는 곳으로 이해하면 좋습니다. 되묻기 상황에서 쓸 수 있는 사용자의 탈출 수단이니, 탈출 블록에 정의된 명령어를 봇의 응대 시나리오 내 적정 지점에서 사용자에게 안내하는 것이 좋습니다.

인증 블록 설정하기

인증 블록은 플러그인을 사용하기 위한 블록입니다. 처음 봇을 생성할 당시에는 인증 블록이 없으며 이후 채널 – 앱을 정상적으로 봇에 연결하시면 인증 블록이 생성됩니다.

인증 블록의 모습

챗봇 관리자센터에서 인증 블록을 사용하시려면 아래와 같은 사전 설정이 필요합니다.

Step 1. 채널-앱 설정하기

인증 블록을 사용하기 위해서는 비즈니스 인증이 필수 입니다. 비즈 채널과 앱 을 연결 후 인증 블록을 사용할 수 있습니다.

Information. 카카오톡 비즈니스 채널(인증된 프로필)과 디벨로퍼스 비즈 앱 생성 방법은 카카오싱크 공통 가이드에서 상세하게 확인할 수 있습니다.

Step 2. 봇에 채널 설정하기

카카오비즈니스 관리자센터에서 운영, 개발 채널을 생성하고 동일한 앱에 연결을 완료하였다면 챗봇 관리자센터에서 해당 채널-앱을 설정 합니다. 상세한 설정 방법은 카카오톡 채널 연결하기를 참고하시길 바랍니다.

챗봇 관리자센터 내 ‘인증블록’에서 필수 파라미터 설정 후 일반 블록과 연결하여 플러그인을 이용할 수 있습니다.

Caution. 만일, 인증블록 설정 후 채널/앱 정보에 변동사항이 있는 경우 플러그인이 정상 동작하지 않을 수 있습니다.

아래 사항을 확인한 후 반드시 인증블록을 초기화 및 재설정 해주시기 바랍니다. 또한 인증블록과 연결된 블록 버튼도 재설정이 필요합니다.

운영 채널 또는 개발 채널만 연결되어 있는지 확인 – 두 채널 모두 봇과 연결 필요 두 채널이 모두 같은 앱에 연결되어 있는지 확인 – 두 채널이 같은 앱에 연결 필요

(운영, 개발채널 설정탭에서 채널의 빨간색 글씨 및 느낌표가 출력되는것은 운영, 개발채널에 연결된 앱이 서로 다른 경우) 디벨로퍼스 앱 제품 설정에서 ‘카카오 로그인 활성화’가 ON으로 되어 있어야 함 (싱크,회원가입 플러그인의 경우)디벨로퍼스 앱 제품 설정에서 ‘간편가입 사용 여부’가 ON으로 되어 있어야 함 봇 마스터가 채널과 연결된 디벨로퍼스 앱에 권한이 있는지 확인 – 봇 마스터가 채널과 연결된 앱에 EDITOR 이상의 권한 필요 (싱크,회원가입 플러그인의 경우)디벨로퍼스의 ‘카카오싱크 플러그인 Redirect URI’가 정상적으로 입력되어있는지 확인 – URI가 유효해야 함 설정을 완료한 후 운영채널에서만 동작하지 않는다면 ‘배포’를 시행했는지 확인

엔티티 설정하기

엔티티 등록하기

아래와 같이 두 가지 방법으로 챗봇 관리자센터에 엔티티를 등록할 수 있습니다.

엔티티에서 등록하기

엔티티 버튼을 눌러 엔티티를 미리 정의할 수 있습니다.

엔티티 설정 위치 : 봇 생성 후 우측 상단에서 확인 가능합니다.

엔티티 설정 팝업 화면: 엔티티 생성을 눌러 단어를 추가합니다.

미리 정의해 둔 엔티티가 있다면, 발화를 입력할 때마다 손쉽게 해당 엔티티를 사용자 발화 패턴에서 태깅이 가능하도록 밑줄 하이라이트가 표시 됩니다.

밑줄 하이라이트 : 예상 발화를 입력하면, 엔티티로 태깅 될 수 있는 단어가 밑줄로 표시됩니다.

엔티티 태깅: 밑줄로 하이라이트 된 단어를 마우스로 드래그 하면, 선택된 부분에 필요한 엔티티를 태깅할 수 있습니다. 봇 작업자가 부여할 수 있는 추천 엔티티, 또는 더 넓게 찾아볼수 있는 전체 엔티티 메뉴를 제공합니다.

엔티티 태깅 중 새 엔티티 추가하기 버튼을 통해 등록하기

봇 작업자는 발화 입력 후 중요하게 생각하는 단어를 즉시 엔티티로 만들 수 있습니다. 입력된 발화 중 특정 단어를 드래그하면 태깅이 가능한 엔티티 메뉴를 볼 수 있습니다. 필요에 따라 팝업창 하단의 새 엔티티로 추가하기 버튼을 통해 추가 엔티티 설정이 가능합니다.

발화 작성시 특정 단어 드래그를 통한 추가 엔티티 작성 및 반영 모습

블록 내 ‘발화입력’ 화면 : ‘라떼’에 해당하는 ‘coffee_name’ 엔티티가 매핑되어 박스로 표시되는 모습

나의 엔티티 작성 예시

엔티티 작성의 좋은 예

엔티티를 잘 작성한다는 것은 사용자의 발화문에서 의미있는 단어를 추출해내는 기초 작업을 튼튼히 하는 것을 뜻합니다. 그래야 발화 패턴을 인식하는 자연어처리 로직을 십분 활용할 수 있고, 다양한 발화 형태 속에 존재하는 중요한 단어를 보다 정확히 발췌할 수 있습니다. 올바르게 작성된 엔티티 예시는 아래와 같습니다.

바람직한 엔티티 작성 예시

Tip. 의미있는 데이터 중심으로 엔티티를 구분 합니다. 예) cafe_name(카페명), coffee_name(커피메뉴), user_action_order(사용자행동패턴), service_type(주문서비스방식))

엔티티 간 단어들이 중복되지 않고, 의미가 겹치지 않도록 합니다.

엔티티 목록만 보아도 누구나 의미를 쉽게 유추할 수 있도록, 엔티티명을 명확하게 정의합니다.

엔티티 작성의 나쁜 예

봇 디자이너가 사용자 발화의 모든 형태를 정확한 매칭(exact matching)으로 잡아내겠다는 의지로 모든 발생 가능할 단어를 엔티티로 등록해버리면 발화 패턴이 매우 복잡해집니다. 뿐만 아니라 향후 엔티티 유지보수 또한 어려워지게 됩니다. 결국엔 하나의 등록으로 충분한 발화패턴을, 굳이 수십여개로 만들어내야하는 엔티티 작성 부담을 불필요하게 발생시킬수 있습니다. 엔티티 작성의 핵심 포인트는, 사용자 발화입력 패턴을 잡아내는데 있어서 가장 필수적인 단어(또한, 여러 형태로 변경 가능한 단어)를 엔티티로 일괄 등록하는 것 입니다.

부적절한 엔티티 작성 예시는 아래와 같습니다.

사용자가 엔티티 등록시 지양해야하는 작성 예시

Tip. ‘좀, 그렇게, 어떻게’ 등 발화문장에서 큰 의미가 없는 모든 발생가능한 단어들을 엔티티로 등록하는 것은 피하도록 합니다. 엔티티 태깅을 통해 중요 정보를 추출해내는 관점에서 크게 중요하지 않기 때문입니다.

유의미한 데이터로 구성한 카테고리가 아닌, 사용자 발화 중 중요하지 않은 단어들을 모두 번거롭게 등록할 필요는 없습니다. 향후 의미없는 작업노고를 발생시키는 원인이 됩니다. 예) ‘네’, ‘갑니다’, ‘주세요’, ‘안되겠네’ 등과 같은 서술어미 종류

발화 패턴 만들기

봇 작업자가 사용자 발화 패턴 설정란에 사용자 예상 발화를 입력하고 난 후, 직접 태깅을 통해서 필요한대로 발화 패턴을 정의할 수 있습니다. 챗봇 관리자센터에서는 태깅이 필요할 것으로 예상하는 엔티티 단어에 대해서 밑줄(Underline)을 자체적으로 표시해주는데, 이를 확인하고 봇 작업자는 밑줄이 가르치는 단어를 드래그하여 필요한 엔티티를 직접 부여하실 수 있습니다.

다음과 같은 작업 순서 예시를 확인하십시오.

Step 1. 발화 중 밑줄이 표시된 ‘라이언’에 인물 엔티티를 태깅합니다. (엔티티명: @sys.person.name )

밑줄이 나타난 단어를 드래그하면, 엔티티를 고를수 있는 팝업이 나타납니다. 필요에 따라 봇 작업자는 추천 엔티티 또는 전체 엔티티 목록에서 희망하는 엔티티를 부여할 수 있습니다.

Step 2. 밑줄이 없더라도 ‘나이’처럼 특정 단어에 엔티티 태깅을 할 수 있습니다. (엔티티명 : @age )

나이라는 단어에 직접 드래그 하여 별도의 엔티티를 강제 부여하는 모습입니다.

입력된 발화에 대해서 최종적으로 엔티티 태깅이 완료하고 나면 패턴 발화가 생성됩니다.

Step 3. 의도 확인에 중요한 정보는 {sys.person.name} , {age} 엔티티에 있음을 확인합니다.

패턴이 잡혀진 발화의 예시 모습입니다.

결론적으로 본 테스트 블록의 사용자 의도는 나이 묻기이며, 이러한 의도를 확인하기 위한 패턴은 아래와 같다는 것을 알 수 있습니다.

패턴 발화 : {인물이름} {나이} <어떻게> <되다>

위 같은 방식으로, 본 블록이 나타내고자 하는 의도에 알맞는 발화패턴을 입력하고 태깅하는 작업하는 과정을 이어서 하면 됩니다. 하나의 블록 안에서 패턴을 충분히 포함 할 수록, 실제 사용자 발화에 블록이 대응할 수 있는 확률이 높아집니다.

되묻기 질문 등록하기

되묻기 질문은 챗봇이 대화 중에 사용자에게 거꾸로 질문을 던지는 액션을 말합니다. 봇은 대화를 이해하며 사용자와 인터랙션을 이어가기 위해 사용자 발화 안에 특정 값이 있는지 지속해서 확인하고, 필요로 하는 값이 있다면 이를 추출하여 외부 스킬 서버 및 플러그인과 연동합니다. 특정한 의도가 있는 응답을 구현하기 위해서는, 사용자 발화로부터 특정 값이 필수적으로 접수 되어야 합니다. 만약 발화 중 특정 필수 값이 부재한다면, 봇 사용자가 해당 값을 입력하도록 유도하는 되묻기 질문을 설정할 수 있습니다.

챗봇 관리자센터 안에서는 봇이 받고자 하는 값을 사용자 발화 안에 있는 엔티티를 통해서만 인지할 수 있는데, 이러한 엔티티를 칭하여, 새로운 파라미터로 정의합니다. (주요개념 > 파라미터 설정에서 더 상세하게 확인할 수 있습니다.) 이때, 되묻기 기능을 사용하기 위해서는 해당 파라미터를 ‘필수’로 표시하여 필수 파라미터로 설정해야 합니다. 아래 예시를 통해 커피를 주문하는 의도를 가진 블록에서 되묻기 기능을 활용하는 과정을 볼 수 있습니다.

필수 파라미터 설정하기

봇 작업자는 발화 ‘주문 할게요.’를 등록하였습니다. 그리고 해당 블록이 실행될 때 사용자 예상 발화 안에 커피 이름(CoffeeName) 과 수량(CupCount)을 필수 파라미터로 설정하였습니다. 이때 필수 파라미터 박스안에서 되묻기 질문 버튼이 활성화 된 것을 확인할 수 있습니다.

되묻기 질문이 필수 파라미터 설정을 통해 활성화 된 모습입니다. 되묻기가 정상적으로 끝나 필요 파라미터 값이 모두 수신되면 설정한 응답형식이 출력되는 형태입니다.

되묻기 질문 설정하기

되묻기 질문 버튼을 클릭하면 각 필수 파라미터에 값이 채워지도록, 사용자를 유도하는 되묻기 질문을 설정할 수 있습니다. 각 필수 파라미터에 대한 되묻기 질문 작성 예시는 다음 화면과 같습니다.

CoffeeName 파라미터를 얻기 위한 되묻기 설정 화면: 사용자가 주문할 커피 이름을 묻는 질문으로 구성되었습니다

CupCount 파라미터를 얻기 위한 되묻기 설정 화면 : 사용자가 주문하고자 하는 수량을 묻는 질문으로 구성되었습니다

되묻기 질문 팝업의 상세 메뉴 구성은 다음과 같습니다.

되묻기 질문 응답 : 되묻기 질문을 정의합니다. 총 3개까지 정의할 수 있고, 사용자에게 출력되는 허용횟수 안에서 무작위 순으로 출력됩니다.

: 되묻기 질문을 정의합니다. 총 3개까지 정의할 수 있고, 사용자에게 출력되는 허용횟수 안에서 무작위 순으로 출력됩니다. 바로 연결 응답 : 사용자가 되묻기 상황에서 입력할 파라미터 값을 직접 ‘바로 연결’ 버튼으로 클릭해 보낼 수 있도록 세팅합니다.

: 사용자가 되묻기 상황에서 입력할 파라미터 값을 직접 ‘바로 연결’ 버튼으로 클릭해 보낼 수 있도록 세팅합니다. 되묻기 허용 횟수 설정 : 되묻기 질문이 실행될 횟수를 선택합니다. 최대 허용 횟수가 끝나서 결국 원하는 파라미터값을 획득하지 못했을 때 봇이 사용자에게 출력할 안내 메시지를 정의합니다.

설정된 되묻기 질문 확인하기

모든 설정을 마친 후, 카카오톡 화면에서 최종 응답을 아래 화면과 같이 확인할 수 있습니다. 봇은 되묻기 질문을 통해 필수 파라미터 값인 커피이름 아메(아메리카노의 약자)와 커피수량 2를 수신받고 최종 응답을 출력하였습니다.

커피 주문 – 되묻기가 모두 실행된 카카오톡 사용자 화면

컨텍스트 사용하기

챗봇 관리자센터의 고급 기능 중에 하나인 컨텍스트를 손쉽게 쓸 수 있도록, 다음과 같이 세 가지 활용 방법을 안내합니다.

컨텍스트 조건 설정하기

먼저, 시나리오 > 블록 > 컨텍스트 설정에서 컨텍스트 명칭을 등록합니다. (설정 개수에는 제한이 없습니다)

컨텍스트 설정 선택 팝업 위치

다른 블록으로 컨텍스트를 내보낸다면, Output 컨텍스트에 명칭을 등록합니다.

Output 컨텍스트에 Ordering 이라는 컨텍스트 명칭을 등록중인 화면

다른 블록에서 내보낸 컨텍스트를 받는다면, Input 컨텍스트에 명칭을 등록합니다.

Input 컨텍스트에 Ordering 이라는 컨텍스트 명칭을 등록중인 화면

특히, Output 컨텍스트 부분은 봇 작업자들이 컨텍스트를 생성하여 연결할 때 가장 먼저 설정 작업을 하고, 주요 정보를 등록하는 중요한 공간입니다.

Output 컨텍스트를 등록할 때는 필수로 다음 세 가지를 입력해야 합니다.

컨텍스트 구성 값 의미 값 비고 컨텍스트 명칭 컨텍스트 내용을 설명하는 이름 컨텍스트 수명 컨텍스트가 지속되는 블록 횟수 0/1/3/5/10 (회) 끝나면 컨텍스트가 만료됩니다.

0은 즉시 만료됩니다.(초기화) 유효시간 컨텍스트가 지속되는 시간 1/3/5/10/15/30/60 (분) 끝나면 컨텍스트가 만료됩니다.

Output 컨텍스트의 수명 정보 설정 모습

Output 컨텍스트의 유효 시간 정보 설정 모습

컨텍스트 정보를 스킬 요청(request)에서 활용하기

컨텍스트에 담겨진 정보는 스킬 요청시에도 사용할 수 있습니다. 아래 화면과 같이 블록 안의 파라미터 만들기 메뉴 안에서 ‘값’ 입력란에, 원하는 컨텍스트와 파라미터 명을 다음 형식을 따라 참조할 수 있습니다.

파라미터 설정 안에서 파라미터 만들기 메뉴 안의 ‘값’ 설정 부분

형식

#[컨텍스트명].[파라미터명]

반드시 참조한 컨텍스트를 내보내는(Output) 블록이 존재해야 하며, 설정중인 블록에서 해당 컨텍스트를 받아야(Input) 합니다. 이처럼 블록 간 컨텍스트가 설정되어 있지 않다면, 컨텍스트와 파라미터명을 참조해도 동작하지 않습니다.

형식 예시

컨텍스트 정보를 스킬 응답(response)에서 활용하기

스킬 응답에서 ‘Output 컨텍스트’의 정보를 직접 업데이트 할 수 있습니다. 예를 들어 다음과 같은 스킬 응답 포맷이 있다고 하겠습니다.

{ “version” : “2.0” , “template” : { … }, “context” : { “values” : [{ “name” : …, “lifeSpan” : …, “params” : … },{ “name” : …, “lifeSpan” : …, “params” : … }, … ] } }

스킬 응답의 Structure 예시

다음처럼,

복수의 Output 컨텍스트들 중 특정 컨텍스트만 Output 되도록 변경할 수 있습니다. → name

컨텍스트의 수명(lifespan)을 변경할 수 있습니다. → lifeSpan

컨텍스트와 관련해 전달하고 싶은 값을 추가할 수 있습니다. → params

스킬 응답의 Output 컨텍스트에 들어있는 내용이 현재 블록의 Output 컨텍스트란에 존재하는 경우에는, 스킬에 들어있는 값으로 현재 Output 컨텍스트를 덮어쓰기합니다.

Information. 인풋(Input)으로 설정한 컨텍스트가 만료될 경우 해당 블록은 설정된 응답이 아닌 폴백 메시지로 응답하게 됩니다. 폴백 메시지가 설정되어 있지 않으면 빈 말풍선이 나가게 되므로 기본 시나리오> 폴백블록 에서 설정 상태를 확인해 주세요.

컨텍스트 갱신

스킬 응답으로 컨텍스트를 수정하는 경우, 변경하려는 output 컨텍스트가 미리 블록에서 설정되어야 합니다. 스킬 응답의 context 필드는 값을 수정할 뿐, 새로운 output 컨텍스트를 만들 수는 없습니다.

Example. 예를 들어 abc 라는 output 컨텍스트를 블록에서 생성했다면, 스킬 응답으로 abc name을 가지는 context의 lieSpan, params를 수정할 수 있습니다.

하지만 def 라는 output 컨텍스트를 블록에서 생성하지 않은 상황에서, 스킬 응답으로 def 라는 name을 가지는 context를 수정한다면 이는 반영되지 않습니다.

응답 타입별 JSON 포맷 > ContextControl

봇 학습시키기

학습대기에서 발화를 학습 하는 방법

Step 1. 학습대기 목록에서 블록에 매칭시킬 발화를 선택합니다.

학습대기 목록에 노출된 2018년 11월 14일에 들어온 폴백 발화들

학습대기 목록은 설정된 기간동안 들어온 폴백 발화들을 빈도가 높은 순으로 정렬하여 노출합니다.

Step 2. 발화 학습 상세화면에서 매칭 블록을 지정하거나 엔티티를 태깅 후 학습을 누릅니다.

학습대기목록에서 빠히바게트에서 빵이요 발화를 선택하고 엔티티 태깅 후 베이커리 주문 블록으로 연결

연결블록을 지정하지 않으면 무시만 가능하고 연결블록을 지정해야 학습 버튼이 활성화 됩니다.

Step 3. 학습한 발화는 매칭한 블록으로 등록되고 학습대기에서 학습이력으로 이동됩니다.

베이커리 주문 블록에 학습대기에서 매칭했던 빠히바게트 빵이요 발화 및 엔티티 추가된 화면

학습이력에서 학습시킨 발화는 학습이력으로 이동되고 업데이트일, 학습상태가 목록에 노출

학습이력에서 이미 학습한 발화를 변경하는 방법

Step 1. 이미 학습한 발화를 선택하기 위해 학습이력 목록을 들어갑니다.

11월 1일 에서 11월 15일까지 학습한 이력들

Step 2. 학습이력 목록에서 학습한 빠히바게트에서 빵이요를 선택하고 연결 블록을 변경합니다.

학습이력 팝업에서 빠히바게트에서 빵이요 발화가 베이커리 주문 블록에서 빠히바게트 블록 으로 변경된 화면

학습이력의 상세화면에선 선택한 발화를 업데이트 한 일시, 작업자ID가 표기되고 발화 연결블록과 엔티티 정보가 함께 노출됩니다. 학습이력에서 무시한 문장은 블록에 매칭될 경우 매칭되었던 블록에서 발화가 삭제되고 다시 폴백 블록으로 매칭되어, 사용자가 해당 발화를 다시 입력한 경우에도 학습대기 목록에 노출되지 않습니다.

Step 3. 변경한 발화는 기존 블록에서 삭제되고 매칭한 블록에 새롭게 등록됩니다.

빠히바게트에서 빵이요 발화가 베이커리 주문 블록에서 빠히바게트 블록 으로 변경된 화면

학습 대기 목록 필터링 하기

기간 변경

학습대기 에선 어제까지의 날짜, 학습이력에선 오늘을 포함한 어제 날짜를 선택할 수 있습니다.

기간 탭에서 어제를 선택하면 현재일 전날의 날짜가 지정됩니다. 학습이력에서 어제를 선택하면 어제부터 오늘까지의 날짜가 선택됩니다

날짜 탭을 선택하여 직접 조회할 날짜를 선택할 수 있습니다.

달력에서 날짜를 직접 지정할 경우 목록조회 시작 날짜와 종료 날짜를 지정할 수 있습니다. 설정할 수 있는 기간은 최대 30일 입니다.

검색필터 추가

학습대기 목록에서 검색필터를 추가하여 목록을 필터링 할 수 있습니다. 검색 필터 추가 버튼을 누른 후 텍스트 메뉴에서 발화포함 혹은 발화제외를 지정하면 검색할 단어(최대 12자)를 입력할 수 있습니다. 발화 값에서 발화빈도 혹은 빌화길이를 선택하면 일정 숫자 이상 혹은 이하의 숫자(최대 99,999,999)를 입력하여 필터링 할 수 있습니다.

학습대기에서 텍스트 검색필터 조건을 발화포함 으로 하고 아니 라는 단어를 입력

설정된 기간동안 발화에 아니 가 포함된 목록과 빈도

일반사용자 봇과 카카오톡 채널 연결하기

카카오톡 채널은 카카오톡 채널 관리자센터에서 생성하기

Step 2. 인증 및 이용약관 동의

Step 3. ‘새 채널 만들기’ 클릭

Step 4. 채널 정보 입력하기

Step 5. 채널 개설 완료

카카오톡 채널 연결하기

카카오톡 채널 연결은 봇 설정에서 간단하게 연결할 수 있습니다.

만약 채널 연결이 불가하다면 아래 내용을 확인하여 주시기 바랍니다.

봇은채널과 1:1의 구조로, 다른 봇에 채널이 연결되어 있을 경우 추가로 연결할 수 없습니다.

[카카오톡 채널관리자 센터 > 스마트채팅 > 채팅방메뉴]의 채팅방 메뉴 사용 설정이 ON으로 되었는지 확인 부탁드립니다. 채팅방 메뉴와 챗봇은 동시사용이 불가하므로, 채팅방 메뉴 사용 설정을 OFF로 하면 채널이 챗봇과 연결 가능한 상태로 변경됩니다.

챗봇에선 마스터권한, 채널에서는 매니저 이상의 권한일 경우 연결 가능합니다.

Step 1. 설정 메뉴의 ‘카카오톡 채널 연결’ 영역으로 이동

Step 2. ‘운영 채널’의 선택 영역 클릭

Step 3. ‘개발 채널’의 선택 영역 클릭

지식 베이스 설정하기

지식 관리자센터에서 지식 베이스를 생성하여 질문과 답변 데이터를 관리하고 있다면, 봇과 연동할 수 있습니다. 지식 베이스란?

지식 베이스 설정

설정 메뉴의 지식 베이스 정보를 통해 봇 작업자는 지식 베이스를 설정할 수 있습니다. 봇 작업자는 자신이 마스터 권한으로 있는 지식 베이스를 선택하여 연동할 수 있습니다.

지식 베이스를 선택하고, 지식 베이스의 버전을 선택하는 방식은 2가지가 있습니다.

(1) 수동 선택한 버전을 사용

봇 작업자가 특정 버전을 선택하여 사용할 수 있습니다. 설정 후, 봇 배포를 해야 운영 채널에도 설정한 지식 베이스 버전이 반영됩니다.

(2) 최신 배포 버전을 사용

봇 작업자는 항상 지식 베이스의 최신 배포 버전을 사용할 수 있습니다. 단, ‘최신 배포 버전을 사용’ 설정 후에 봇을 배포해야 운영 채널에 해당 설정이 반영됩니다. 설정 후, 1회의 봇 배포 이후에는 별도의 봇 배포 없이도 운영 채널에 지식 베이스의 최신 배포 버전이 적용됩니다.

답변 출력 종류

지식 베이스를 설정하셨다면, 카카오톡에서 답변의 출력 형태를 정해야 합니다.

답변 출력 형태는 아래와 같이 3가지가 있으며, 용도에 맞게 답변 형태를 선택하시면 됩니다.

질의자의 질문형태에 가장 정확한 것으로 판단되는 답변하나만 전달하는 즉문즉답형

정확도순으로 Top3 유사질문 리스트를 보여주는 답안추천형

사용자가 스킬을 이용하여 자유롭게 답변을 구성하는 스킬형

답변출력 형태 예시 – (1) 즉문즉답형 (2) 답안추천형 (3) 스킬형

답변 출력 설정 방법

(1) 즉문즉답형 말풍선 설정

즉문즉답형 출력 말풍선에서는 다음의 3가지를 설정할 수 있습니다.

최소 답변 정확도 답변 제공의 기준이 되는 최소 정확도를 설정하는 영역입니다. 설정된 정확도 이상의 지식 베이스 답변을 제공합니다.

가이드 말풍선 답변이 제시되기 전에 안내문구를 꾸미는 영역입니다. 텍스트로 가이드문구를 넣어주거나, 또는 희망하시는 이미지를 넣어줄수 있습니다. 이 부분을 선택적으로 On/Off할수도 있습니다.

피드백 버튼 답변이 제공된후, ‘좋아요’ 또는 ‘나빠요’에 해당하는 사용자 피드백 버튼을 넣어줄수 있습니다. 이 부분도 선택적으로 On/Off할수 있습니다.

*참고. 피드백 버튼으로부터 누적된 결과를 바탕으로 답변 검색 로직을 강화하고, 분석 메뉴에서 블록별로 현황을 보여주는 feature가 향후 데이터 누적후 제공될 예정입니다.

(2) 답안추천형 말풍선 설정

답안추천형 출력 말풍선에서는 다음의 4가지를 설정할 수 있습니다.

가이드 말풍선 즉문즉답형에서 꾸미는 방식과 동일합니다. 답변 출력전 안내문구를 넣어주거나 이미지를 넣어줄수 있습니다.

답변설정 답안추천형에서는 사용자 질의 문장에 대해 유사한 것으로 판단되는 유사질문 Top3를 캐로셀 형태로 제공합니다. 이때, 봇작업자는 이미지를 첨부하여 카드형 말풍선으로 답변을 꾸밀수 있습니다.

<사용법 참고>

이미지가 필수로 들어가는 카드형 말풍선에서 봇 작업자가 기존에 저장해 둔 Q&A 지식 정보 세트 정보 중에서 image info (URL)에 해당하는 정보가 있다면 → 우선적으로 해당 image info 이미지가 보여집니다.

image info (URL)가 없다면 → 위에서 사용자가 파일로 업로드한 이미지가 디폴트로 출력됩니다. 예시로, 추출된 Top3 유사질문 리스트에서, 1개만 image url 정보가 있었고 2개는 image url정보가 없었다면, 해당 2개의 이미지는 봇 작업자가 여기 말풍선 상세 메뉴에서 업로드 해 둔 디폴트 이미지가 출력되는 것입니다.

버튼명 설정 답변을 보기 위한 버튼에 대해 ‘버튼명’을 정의할수 있습니다.

피드백 설정 답변이 제공된후, ‘좋아요’ 또는 ‘나빠요’에 해당하는 사용자 피드백 버튼을 넣어줄수 있습니다. 선택적으로 On/Off할수 있습니다.

(3) 스킬형형 말풍선 설정

스킬형을 선택하면 발화가 지식 베이스의 질문에 일치하는 경우, 스킬 payload를 통하여 지식의 목록과 정보가 전달됩니다.

스킬형 출력 말풍선에서는 다음의 2가지를 설정할 수 있습니다.

스킬 설정 지식 정보를 전송할 스킬을 선택할 수 있습니다. 스킬 선택을 위해서는 ‘스킬’ 메뉴에서 스킬을 등록해야 합니다.

최소 답변 정확도 답변 제공의 기준이 되는 최소 정확도를 설정하는 영역입니다. 설정된 정확도 이상의 답변 정보를 제공합니다.

SkillPayload

스킬 payload는 스킬 실행시 봇 시스템이 스킬 서버에게 전달하는 정보입니다. payload는 사용자의 정보, 발화, 실행 블록, 파라미터 등의 정보를 포함합니다.

intent

userRequest

bot

action

intent

발화와 일치하는 블록의 정보를 담고 있는 필드입니다. 발화가 지식 베이스 질문과 일치하는 경우, 일치하는 지식의 목록을 포함합니다.

상세필드

이름 타입 설명 id string 블록 id입니다. name string 블록명이며, 지식의 경우 “지식+”로 노출합니다.

상세필드

이름 타입 설명 matchedKnowledges array 발화에 일치한 지식 목록입니다.

knowledge

상세필드

이름 타입 설명 answer string 지식의 답변입니다. question string 지식의 질문입니다. categories array QA의 카테고리입니다. landingUrl string 지식 답변에서 링크 더보기입니다. imageUrl string 답안 추천형 지식 답변에서 썸네일 이미지입니다.

에제 코드

{ “bot” : { “id” : “<봇 id>” , “name” : “<봇 이름>” }, “intent” : { “id” : “<블록 id>” , “name” : “지식+” , “extra” : { “reason” : { “code” : 1 , “message” : “OK” }, “knowledge” : { “responseType” : “skill” , “matchedKnowledges” : [ { “categories” : [ “<카테고리 1>” , “<카테고리 2>” , “<카테고리 3>” , “<카테고리 4>” ], “question” : “<질문>” , “answer” : “<답변>” , “imageUrl” : “<이미지 url>” , “landingUrl” : “<랜딩 url>” }, { “categories” : [ “<카테고리 1>” , “<카테고리 2>” , “<카테고리 3>” , “<카테고리 4>” ], “question” : “<질문>” , “answer” : “<답변>” , “imageUrl” : “<이미지 url>” , “landingUrl” : “<랜딩 url>” } ] } } }, “action” : { “id” : “<액션 id>” , “name” : “<액션 이름>” , “params” : {}, “detailParams” : {}, “clientExtra” : {} }, “userRequest” : { “block” : { “id” : “<블록 id>” , “name” : “<블록 이름>” }, “user” : { “id” : “<사용자 botUserKey>” , “type” : “botUserKey” , “properties” : { “botUserKey” : “<사용자 botUserKey>” , } }, “utterance” : “<사용자 발화>” , “params” : { “surface” : “BuilderBotTest” , “ignoreMe” : “true” }, “lang” : “kr” , “timezone” : “Asia/Seoul” }, “contexts” : [] }

패턴발화가 등록된 블록과 연계한 응용 활용 방법

사용자 질의에 응대하기 위해 이미 패턴발화를 블록에 수없이 등록했는데, 본 메뉴에서도 지식정보 Q&A 세트를 또 업로드해서 사용할 수 있는 것인가요? 두 개 메뉴에 해당하는 기능을 동시에 사용할 수 있나요?

물론입니다.

패턴발화를 등록한 블록들과, 지식 베이스 설정에 대한 ‘배포’ 과정을 통해 하나의 봇을 만들수 있습니다. 단, 이때에는 사용자 질의에 대해, 우선적으로 패턴발화를 등록했던 블록 중에서 정확하다고 판단되는 블록이 선택되어 그에 연결된 답변이 출력됩니다.

만약 사용자 의도가 추출이 되지 않는 질문이라고 하면 그 다음에 순차적으로 지식 베이스에서 유사 질문이 검색되어 연결된 답변이 출력됩니다. (즉, 챗봇이 질문을 이해하지 못하여 ‘폴백’ 메시지를 내놓을수 있는 확률이 줄어듭니다.)

그러므로, 봇작업자께서는 보다 중요하고 의미있는 질문들을 처리하기 위한 내용들은 시나리오 메뉴의 ‘블록’들을 통해 답변 작성을 해두시고, 이외 기타 수많은 형태의 질문-답변 세트는 지식 베이스에 업로드하면, 사용자 질의에 대해서 보다 답변 응대력이 향상된 봇을 만들수 있습니다.

Tip. 시간이 없고, 무조건 빨리 시일내 가장 기본적인 봇을 만들려고 한다면, 시나리오에 블록을 만들지 않고서도, 지식 베이스 설정으로 ‘간단 답변 검색형’ 봇을 만들수도 있습니다..

머신러닝 사용하기

머신러닝을 사용하여 똑똑한 챗봇을 만들기 위해서는 크게 4가지 단계를 거쳐야 합니다. 그럼 아래에서 하나씩 살펴볼까요?

머신러닝 발화 입력

머신러닝을 하기 위해서는 머신러닝 발화가 필요합니다. 그리고 머신러닝 발화를 입력하는 방법은 아래 3가지가 있습니다.

Step 1. 직접 입력

우선 머신러닝 발화를 직접 입력하는 방식이 있습니다. 이 방식을 사용하기 위한 방법은 아래와 같습니다.

1.1 블록 상세에서 머신러닝 발화 관리 버튼을 눌러주세요.

1.2 머신러닝 발화 관리 팝업에서 머신러닝 발화를 입력해주세요.

Step 2. 패턴 발화 복사

머신러닝 발화를 따로 입력하시는게 귀찮고, 번거로우시다면 패턴 발화에 입력된 발화를 복사하여 머신러닝 발화에 붙여넣는 기능이 있습니다. 패턴 발화와 머신러닝 발화를 따로 관리하지 않아도 된다는 것이 장점인 기능입니다. 사용 방법은 아래와 같습니다.

2.1 머신러닝 발화 관리 팝업에서 ‘패턴 발화를 머신러닝 발화로 복사’ 기능을 ON으로 바꿔주세요.

2.2 패턴 발화가 머신러닝 발화로 복사된 것을 확인하실 수 있습니다.

Caution. 패턴 발화 복사는 최신 입력순으로 최대 2000개 까지만 복사됩니다.

까지만 복사됩니다. 기능을 해제하면 복사되었던 모든 패턴 발화가 삭제됩니다.

Step 3. 업로드

혹시 서비스를 위한 사용자 예상 발화를 엑셀로 관리하고 계셨나요? 많은 발화를 한번에 업로드할 수 있는 방식도 있습니다. 사용법은 아래와 같습니다.

3.1 머신러닝 발화 관리 팝업에서 기능탭의 ‘파일 업로드’를 눌러주세요.

3.2 utf-8로 인코딩된 CSV로 발화를 업로드해주세요. 샘플 파일 받기

Caution. 업로드 파일은 CSV utf-8 만 지원합니다. 샘플 파일 받기

만 지원합니다. 샘플 파일 받기 업로드는 한번에 최대 2000개까지 지원합니다.

머신러닝 발화 작성 시, 똑똑한 챗봇을 만들기 위한 몇 가지 팁을 다음과 같이 알려드립니다.

TIP 서술어를 다양하게 쓰기

예) 노래 틀어줘 , 노래 불러봐 , 노래 시작 등 엔트리를 다양하게 쓰기

예) 아이유 노래, 방탄 노래, 너바나 노래, 스탄 게츠 노래 등 어순을 다양하게 쓰기

예) 노래 틀어줘, 틀어줘 노래 등

Caution. 동일한 서술어, 어순, 엔트리를 많이 입력할 경우, 오버피팅 현상이 발생하여 챗봇의 인탠트 구분 정확도가 떨어질 수 있습니다.

머신러닝 실행

머신러닝 발화를 모두 입력했다면 이제 학습 모델을 만들기 위하여 머신러닝을 실행하셔야 합니다! 그 전에 머신러닝을 실행하기 위한 조건이 충족되었는지 확인 한 번 해볼까요?

머신러닝 실행 조건은 아래와 같습니다

(1) 2개 이상의 머신러닝 대상 블록

(2) 각 블록당 패턴 발화 1개 이상, 머신러닝 발화 20개 이상 존재

만약 실행 조건을 충족시키셨다면 실행 방법은 간단합니다. 아래를 참조해주세요.

오른쪽 상단의 머신러닝 실행 버튼을 눌러주세요.

머신러닝 대상 블록과 예상 소요 시간을 확인하고, ‘실행’ 버튼을 눌러주세요.

머신러닝 예상 소요 시간을 확인할 수 있으며, 예상 소요 시간이 길 경우에는 ‘확인’ 버튼을 눌러 머신러닝 진행과 병행하여 작업을 할 수 있습니다.

성능 테스트 및 최소 답변 정확도 조절

한 번의 머신러닝 실행이 끝났다고 챗봇이 완벽해지기는 힘듭니다. 그래서 학습 모델의 완성도를 측정하기 위해 테스트를 진행해야 합니다.

테스트를 위해서는 우선 테스트 발화 세트를 구성해야합니다. 구성 방법은 아래와 같습니다.

기존의 패턴 발화, 머신러닝 발화에 입력된 발화 말고, 새로운 발화를 모읍니다. 간단한 발화로 작동하는 블록은 5~10개, 복잡한 발화로 작동될 수 있는 블록은 20~30개정도를 준비합니다.

테스트 발화가 준비되었다면, 이제 챗봇에 테스트 발화를 입력하시면 됩니다.

테스트를 진행해보면 발화를 입력하고 연결된 블록이 적절하지 않거나, 틀린 경우가 발생할 수 있습니다. 이럴 경우에는 최소 답변의 정확도를 설정하여 정확도가 낮은 발화에 대해 블록이 연결되지 않게 설정할 수 있습니다.

최소 답변 정확도 설정은 ‘머신러닝’ 페이지에서 할 수 있으며, 설정값이 높을수록 정확도가 높은 발화에 대해서만 블록을 연결합니다.

최소 답변 정확도 답변 제공의 기준이 되는 최소 정확도를 의미합니다. 예를 들어, 최소 답변 정확도가 100이라면 정확도가 100인 답변만 제공하며, 최소 답변 정확도가 60이면 정확도가 60 이상인 경우에만 답변을 제공합니다.

머신러닝의 최소 답변 정확도는 머신러닝 페이지에서 설정이 가능하며, 지식+의 최소 답변 정확도는 즉문즉답형 응답에서 설정할 수 있습니다.

오매칭 발화 추가 입력

챗봇이 모든 테스트 발화에 제대로 작동하나요? 만약 생각보다 정답률이 낮다면 아래의 방법으로 챗봇을 튜닝해주세요.

오매칭 발화와 비슷한 발화를 머신러닝 발화에 입력 오매칭 발화를 패턴발화에 입력

이 방법을 반복하시면, 정말 똑똑한 봇을 만드실 수 있습니다!

Event API 사용하기

Event API 사전 설정

Event API 메시지를 발송하기 위해서는 다음과 같은 사전 설정이 필요합니다.

Step 1. 비즈니스 인증 채널과 디벨로퍼스 앱 연결하기

비즈니스 인증을 받은 채널과 비즈니스 인증을 받은 앱을 연결해야 합니다. 비즈니스 인증 채널을 신청하실 때에는 실제 서비스에서 사용할 카카오톡 채널로 신청해야 합니다.

Caution 이 때 디벨로퍼스 앱 사용자 설정에서 “카카오 로그인 활성화” ON 필수입니다.

봇을 제작하는 마스터가 카카오톡 채널 관리자센터에서 비즈 카카오톡 채널 인증을 받고 카카오 디벨로퍼스에서 비즈앱 인증을 각각 받습니다. 그리고 카카오비즈니스 관리자센터에서 위에서 만든 비즈니스 인증 채널 및 비즈 앱을 연결해줍니다. 카카오비즈니스 관리자센터 > 카카오싱크 신청 1단계: 채널-앱 연결하기 화면

Step2. 챗봇 관리자센터에 카카오톡 채널 연결하기

Event API를 사용하기 위해서는 챗봇 관리자센터에 카카오톡 채널 연결해야 합니다.

(운영채널과 개발채널 모두 Event API 발송을 지원하나 개발채널의 경우 이벤트 블록 호출 API url 내 파라미터값의 형태가 다릅니다. 자세한 내용은 개발가이드를 참고해주세요.)

챗봇 관리자센터 내 Event API 설정

챗봇이 건낼 수 있는 다양한 메시지 중 정확히 어떤 메시지(블록)를 전송할 지 정의해야 합니다. 이를 정의하기 위해서는 해당하는 블록 내에서 이벤트 이름을 설정하는 과정이 필요합니다.

블록 > […] > 이벤트 설정 > 이벤트 설정 팝업 에서 이벤트 이름을 작성한 뒤 엔터를 누르고 확인 버튼을 눌러주세요.

광고성 내용 포함

발송하려는 메시지가 광고성 내용을 포함하는 경우 이벤트 설정 팝업의 “광고성 내용 포함” 토글을 ON해야 합니다. 자세한 내용은 Event API 광고표시 의무 를 확인해주세요.

이벤트 이름은 중복되어 저장될 수 없습니다. 동일 봇에서 동일 이벤트명을 사용 중인 경우, 다음과 같은 경고 알림이 노출됩니다.

Event API 를 설정한 블록에서는 필수 파라미터를 지원하지 않습니다. 필수 파라미터가 설정된 경우, Event API 메시지가 발송되지 않으니 주의해주시길 바랍니다.

챗봇 관리자센터에서 Event API 설정 및 시나리오 수정을 완료한 뒤에는, 배포를 완료해야 Event API 메시지 발송이 가능합니다.

Event API 광고표시 의무

한국 인터넷 진흥원 광고표시 가이드

한국 인터넷 진흥원에서 배포한 불법 스팸 방지를 위한 정보통신망법 안내서에 따라 광고성 메시지 작성 시에는 하기 가이드를 준수하여야 합니다. 아래 내용을 참고하여 발송할 메시지가 광고성 내용을 포함할 경우, 말풍선 설정에서 광고성 내용 포함을 체크해야 합니다.

한국 인터넷 진흥원 광고표시 가이드

1. 광고표시 광고성 내용이 포함된 메시지 맨 앞에 (광고)를 표시해야 합니다.

광고성 메시지에 대한 판단 기준

1)특가/할인 상품 안내

2)상품 및 서비스 홍보를 위한 프로모션 또는 이벤트

3)정보를 ‘주’로 나타내더라도 [위 1,2]의 내용이 혼재된 경우

2. 전송자의 연락처 표시 의무사항

전송자의 명칭, 전송자 연락처는 메시지 본문보다 상단에 작성되어야 합니다.

전송자 명칭과 전송자 연락처의 경우 채팅방 상단에 노출됩니다.

연락처의 경우 전화번호 또는 주소 중에서 하나를 선택하여 기입해 주셔야 합니다.

3. 수신거부 의사표시를 쉽게 할 수 있는 조치 및 방법 표시 의무사항 메시지에 수신의 거부 및 수신동의 철회의 의사표시를 쉽게 할 수 있는 조치 및 방법을 광고 본문에 표기하여 구체적으로 밝혀야 합니다. 동 조치 및 방법으로 수신의 거부 또는 수신동의 철회가 쉽게 이루어지지 않거나 불가능 할 경우에는 이를 표기하지 않는 것으로 간주합니다.

전자우편을 수신 거부하기 위하여 웹사이트에 로그인하도록 하는 등 별도의 추가적인 조치를 거쳐야 하는 것은 수신의 거부 또는 수신동의 철회를 어렵게 하는 것으로 법 위반에 해당합니다.

챗봇 관리자센터 광고성 메시지 전송 정책

챗봇 관리자센터 챗봇을 이용해 Event API를 사용하여 광고성 메시지 발송 시 한국 인터넷 진흥원의 광고표시 가이드에 따라 다음 정책을 지켜야 합니다.

광고성 메시지 전송 정책 광고성 메시지 발송이 가능한 시간은 오전 8시 ~ 오후 8시 50분 입니다. 광고성 메시지는 톡채널과 친구를 맺은 사용자에게만 발송이 가능합니다. 카카오톡 채널 채팅방 상단에 고객센터 연락처를 노출해야 합니다.

위 세 가지 중 한 가지라도 위반하는 경우 Event API 메시지 발송이 실패합니다.

3번 카카오톡 채널 채팅방 상단 고객센터 연락처 설정은 카카오톡 채널 관리자 센터에서 할 수 있으며 방법은 다음과 같습니다.

[채널 > 관리 > 상세설정 > 채널정보 > 고객센터 연락처] 에서 고객센터 연락처를 작성한 뒤 확인 버튼을 눌러 저장합니다.

설정이 완료되면 채널 채팅방 내 프로필명 아래에 다음과 같이 고객센터 전화번호가 노출됩니다.

사용자가 알림을 신청을 한 경우에 보내는 정보는 광고성 메시지에 해당되나요?

‘고객의 요청에 의해 발송하는 1회성 정보’의 경우, 영리목적 광고성 정보의 예외 사유에 해당되어 광고표시 가이드 제한 없이 발송할 수 있습니다.

다만, 사용자의 요청이 있었다고 하더라도 1회가 아닌 지속적인 발송은 광고성 정보의 예외 사유에 해당하지 않아 광고표시 가이드를 준수하여 (광고 표시를 하여) 메시지를 전송해야 합니다.

Event API 활용 예시를 살펴보면, 정보성 메시지 예시의 3)재입고 알림 시나리오는 ‘고객의 요청에 의해 발송하는 1회성 정보’에 해당하여 광고표시 가이드 제한 없이 발송이 가능합니다

그러나, 광고성 메시지 예시의 2)관심상품 알림 시나리오의 경우, 1회가 아닌 해당 카테고리에 포함된 제품에 대해 지속적으로 메시지를 발송하는 경우에 해당하여 광고표시 가이드를 준수하여 Event API 메시지를 발송해야 합니다.

챗봇 관리자센터 광고성 메시지 설정 방법

광고성 메시지를 Event API로 전송하기 위해서는 챗봇 관리자센터에서 다음과 같은 설정이 필요합니다.

블록상세 > […] > 이벤트설정

2)이벤트설정>광고성 내용 포함 ON

광고성 내용 포함 설정 팝업 확인

광고성 내용을 포함하는 Event API 메시지는 다음과 같은 말풍선 형태에서만 발송 가능합니다.

광고성 메시지 말풍선 사용 정책

Event API를 사용하여 광고성 메시지를 전송하고자 하는 경우 해당 메시지는 아래 요건을 준수하여야 합니다. Skill응답 생성 시 아래 요건을 만족하지 않는 메시지는 발송되지 않습니다.

광고성 메시지는 말풍선 1개만 포함하여야 합니다.

광고성 메시지로 발송 가능한 말풍선 타입은 아래와 같습니다.

a. 커머스 (CommerceCard)

b. 카드 (BasicCard)

c. 리스트 (ListCard) (단일형만 지원)

d. 아이템형 (itemCard) (스킬 형태로만 지원하는 말풍선입니다)

단일형이 아닌 말풍선을 연속적으로 사용하는 케로셀형 사용 시, 케로셀 헤드가 설정되어야 합니다.

광고성 내용 포함 설정 ON 시, 챗봇 관리자센터에서는 다음과 같이 작성가능한 봇 응답 개수는 3개에서 1개로 변경되며 사용 가능한 말풍선 타입은 카드, 커머스, 리스트, 스킬데이터로 변경됩니다.

광고성 내용 포함 설정이 정상적으로 적용되어 Event API 메시지가 발송되면 다음과 같이 말풍선의 채널명 왼쪽에 (광고)가 노출되며, 말풍선 우측 하단에 수신거부 방법이 표기되어 발송됩니다.

수신거부 방법 표기는 말풍선이 단일형인 경우 해당 말풍선에, 말풍선이 케로셀형인 경우 케로셀헤드에 표기되어 발송됩니다.

Event API 개발 가이드

이벤트 블록 호출 API

앞의 사전설정이 모두 완료되었다면, 이벤트 블록 호출 API를 통해 이벤트 블록을 실행해 카카오톡 채널로 메시지를 전송할 수 있습니다.

Request

POST https://bot-api.kakao.com/v2/bots/{botId}/talk

운영채널로 Event API 발송 시 : botid

개발채널로 Event API 발송 시 : botid!

Request Header

Authorization: KakaoAK {Rest Api Key} Content-Type: application/json

해당 rest api key 는 https://developers.kakao.com 에서 생성한 앱의 앱키 중 REST API 키 로 보내주셔야 합니다.

Request Payload

키 설명 타입 필수여부 event 봇 이벤트 정보 JSON object O user 유저 정보 JSON object O params event param (skill 서버까지 전달) JSON object X option Event API 사용 특수 옵션 JSON object X

1. event (JSON object)

event name은 챗봇 관리자센터 > 블록상세 > 이벤트 설정에 정의한 이름과 동일해야 합니다.

키 설명 타입 필수여부 name 봇 이벤트 정보 string O data 봇 이벤트 Custom parameters JSON() X

챗봇 관리자센터의 봇 응답형식 설정(말풍선 설정)에서 event >data 의 파라미터 값을 텍스트 영역에 사용할 수 있습니다. {{#current.event.data.paramName}}을 말풍선에 넣어서 사용할 수 있습니다.

2.user (JSON array of objects)(max.100)

이벤트를 발송할 대상 유저들에 대한 정보입니다. 유저 id 는 중복은 허용되지 않으며, list 의 size max (요청 한번당 최대 발송 건수)는 100개 입니다. 톡채널 정책 상 Event API는 친구관계인 경우에만 메시지를 전송할 수 있으므로, 톡채널과 해당 유저가 친구관계가 아닐 경우 전송은 실패합니다.

유저 아이디 타입은 appUserId (카카오 디벨로퍼스 앱유저 아이디), plusfriendUserKey (skill서버에 전달되는 톡채널 유저 식별값), botUserKey (skill 서버에 전달되는 봇 유저 식별값) 중 하나여야 합니다.

유저 별로 추가적으로 skill 서버에 전달할 데이터가 있을 경우 properties 필드에 담긴 값이 skill payload 의 userRequest.user.properties 필드에 포함되어 전달됩니다.

키 설명 타입 필수여부 type 유저 아이디 타입 (아래 값 중 하나)

– appUserId

– plusfriendUserKey

– botUserKey String O id 유저 아이디 값 String O properties 유저 별 추가 페이로드 JSON( X

3.params (JSON object)

params의 경우에는 type 에 제한이 없으면 skill server까지 값이 그대로 전달되며, skill 서버에서는 request body 의 userRequest -> params 로 그 값을 전달받을 수 있습니다.

챗봇 관리자센터의 봇 응답형식 설정(말풍선 설정)에서 params 의 파라미터 값을 텍스트 영역에 사용할 수 있습니다. {{#current.params.paramName}}을 말풍선에 넣어서 사용할 수 있습니다.

Request Body Sample

{ “event” : { “name” : “bot_test_event” , “data” : { “text” : “Hello World” } }, “user” : [ { “type” : “botUserKey” , “id” : “12345” }, { “type” : “botUserKey” , “id” : “12346” } ], “params” :{ “foo” : “bar” } }

Response

Response Body

결과가 SUCCESS 가 아닐 경우 아래의 GET API 이벤트 발송 성공여부 조회가 되지 않습니다.

status의 SUCCESS는 ‘요청’에 대한 성공/실패 결과값으로 실제 사용자에게 메시지가 발송되었는지 여부는 아래 이벤트 발송 성공여부 조회 API를 통해 확인할 수 있습니다.

키 설명 타입 필수여부 taskId 해당 리퀘스트에 대한 uuid ( 결과조회를 위한 Id ) String O status one of [“SUCCESS”, “FAIL”, “ERROR”] String O message 상태에 대한 세부 메시지 String X timestamp task 생성 unixtimestamp long O

1.status

STATUS message SUCCESS FAIL ~~~ ERROR ~~~

Request Sample

curl -v -X POST https://bot-api.kakao.com/v2/bots/5b3c85911073e946641ebb6d/talk \ -H ‘Authorization: KakaoAK {kakao developers rest api key}’ \ -H ‘Content-Type: application/json’ \ -d $'{ “event”: { “name”: “home” }, “user”: [ {“type”: “botUserKey”, “id”: “12345”}, {“type”: “botUserKey”, “id”: “12346”} ] }’

※ cURL을 사용하여 개발채널에 이벤트 메시지를 발송하는 경우, {botid!}에 그냥 !만 붙이면 에러가 나기 때문에 다음과 같이 botid 전체를 ‘ ’ 로 감싸줘야 합니다.

POST https://bot-api.kakao.com/v2/bots/’5b3c85911073e946641ebb6d!’/talk

이벤트 발송 성공여부 조회 API

이벤트 발송 결과를 조회하는 API 입니다. 위의 이벤트 블록 호출 API 응답에 있는 status 값이 SUCCESS 일 경우에만 조회가 가능합니다.

Request

GET https://bot-api.kakao.com/v1/tasks/{taskId}

키 설명 타입 필수여부 taskId talk POST 요청 response의 taskId String O

Request Header

Authorization: KakaoAK {Rest Api Key} Content-Type: application/json

해당 rest api key 는 https://developers.kakao.com 에서 생성한 앱의 앱키 중 REST API 키 로 보내주셔야 합니다.

Response

Response Body

POST api 호출 결과가 SUCCESS 가 아닐 경우 결과 조회가 되지 않습니다.

키 설명 타입 필수여부 taskId 실행 결과를 조회하고자 하는 taskId String O status one of [“ALL SUCCESS”, “N FAIL”]

(N: Fail count) String O allRequestCount 전체 요청 횟수

(POST request시 user.ids의 size와 동일) int O successCount 성공적으로 처리된 요청 횟수 int O fail 실패 결과에 대한 정보 JSON Object X(status = “ALL SUCCESS”가 아닌 경우 필수)

1.fail

처리 결과 실패로 끝난 요청에 대한 정보

키 설명 타입 필수여부 count 처리 결과 실패 건 수 int O list 실패 요청에 대한 정보 JSON Object O

2.list

키 설명 타입 필수여부 userId 실패 처리된 userId String O reqUserType 실패 처리된 userId의 종류 String O createdAt 실패 처리된 시각 String O errorMsg 실패 처리된 원인 String O

fail>list>errorMsg 케이스

errorType msg 설명 비고 2 Request user is not a friend of talk channel’s 채널 추가하지 않은 유저 ※ 각 설명에 따라 수정해주세요 (채널추가하지 않은 유저에게는 Event API 메시지 발송이 불가능합니다)

※ 6번 말풍선 제한정책 위반의 경우, 말풍선 도움말 내 제한 및 유의사항을 참고하여 json format을 수정해주세요 6 Invalid skill-json format json format error 혹은 말풍선 정책 위반 99 Invalid parameter format. 주로 json parsing error 104 Skill server returns http error code response. Bot skill server의 에러 응답 ※ 스킬서버 문제일 가능성이 높은 에러 로, 스킬서버 내 이슈가 없는지 먼저 확인해주세요 201 Skill server returns http error code response. Skill server Http 실패 202 Connection to skill server timed out. Skill server 타임아웃 204 Skill server returns http error code response. Block Validation Http 실패 101 Internal server error occured. 봇 내부 통신 에러 ※ 봇 내부 통신 에러일 가능성이 높은 케이스로, 스킬서버 등 이슈가 없는지 확인 후 문의해주세요 102 103 301 501 503 999

월렛 설정하기

우측 상단 계정 레이어 에서 ‘내 월렛’을 선택하여 월렛 화면으로 진입할 수 있습니다. 월렛 화면에서는 월렛을 생성하고 관리할 수 있으며, 월렛을 생성한 사람에게는 자동으로 월렛 마스터 권한이 부여됩니다.

나의 월렛 목록 화면

사업자 월렛 생성하기

Step 1. 월렛 생성 버튼 클릭

내 챗봇 월렛 목록 우측 상단에서 ‘새로운 월렛 생성’ 버튼을 클릭합니다.

Step 2. 유형 선택

월렛 유형 선택시 사업자 월렛을 선택 후 다음 버튼을 클릭합니다.

Step 3. 사업자등록번호 입력

정보입력 단계에서 사업자등록번호를 입력 후 확인 버튼을 클릭합니다.

이미 카카오 서비스에서 비즈니스 채널 인증 등을 통해 비즈니스 정보를 등록한 경우 아래와 같이 조회됩니다.

신규 등록이라면 사업자 이름, 대표자 이름, 업태, 종목, 사업자 주소를 필수로 입력 후 다음 버튼을 클릭합니다.

Step 4. 월렛 이름 입력

원하는 월렛 이름을 입력 후 저장을 클릭해 월렛 생성을 완료합니다.

사업자 월렛으로 생성하는 경우, 아래 기능을 추가로 이용할 수 있습니다.

무통장 입금을 통해 유상캐시를 충전할 수 있습니다.

세금계산서가 발급됩니다.

개인 월렛 생성하기

Step 1. 내 챗봇 월렛 목록 우측 상단의 새로운 월렛 생성버튼 클릭

Step 2. 유형 선택시 ‘개인 월렛’ 선택

Step 3. 본인 확인

‘본인 확인’ 버튼 클릭시 챗봇 관리자센터에 로그인한 카카오 계정을 통해 본인 확인이 자동으로 완료됩니다.

개인정보가 올바르게 입력되어 있는지 확인 후 개인정보 수집 및 이용에 동의합니다. 필수로 동의해야 월렛을 생성할 수 있습니다.

Step 4. 월렛 이름 입력

원하는 월렛 이름을 입력 후 저장을 클릭해 월렛 생성을 완료합니다.

봇과 월렛 연결하기

50,000 건의 무료 사용 구간에서는 월렛 연결 없이도 기존과 동일하게 이용할 수 있으나, 유료 사용 구간 진입시 요금 납부를 위해서 챗봇과 월렛을 필수로 연결해야 합니다. 월렛은 채널 연결과 마찬가지로 봇 설정 메뉴를 통해 연결할 수 있습니다. 설정 메뉴에 추가된 ‘지불 정보’ 탭에서 월렛을 연결하거나 연결된 월렛 정보를 확인할 수 있습니다. 생성된 월렛을 연결하는 방법은 아래와 같습니다.

Step 1. 월렛 연결하기 버튼 클릭

봇 설정 > 지불 정보 탭에서 ‘월렛 연결하기’ 버튼을 클릭합니다.

월렛 미연결 상태라면 월렛 작업 권한을 가진 모든 챗봇 작업자는 본인이 생성한 월렛을 챗봇에 연결할 수 있습니다. 만일, 월렛 작업 권한을 보유하지 않은 작업자는 지불 정보 탭을 확인할 수 없습니다.

Information.

‘새 월렛 만들기’ 버튼을 이용해 나의 월렛 목록을 이동하지 않고도 월렛을 생성할 수 있습니다.

Step 2. 연결할 월렛 선택

연결하고자 하는 월렛을 선택 후 확인 버튼을 클릭합니다. 이때, ‘연결 대기중’ 상태의 월렛만 챗봇에 연결할 수 있습니다.

Step 3. 연결된 월렛 정보 확인

월렛 연결이 완료되었다면, 월렛 작업 권한을 보유한 모든 작업자가 지불 정보 탭에서 연결된 월렛 정보를 확인할 수 있습니다.

월렛 이름, 영업권, 캐시 잔액 클릭시 곧바로 상세 화면에 진입할 수 있습니다.

‘내 챗봇’ 목록에서도 봇과 연결된 월렛 정보를 한 눈에 확인할 수 있습니다.

카카오톡 방장봇 만들기 (설정, 사용법 총정리)

카카오톡 오픈채팅에서는 방 관리에 도움을 받을 수 있는 방장봇이라는 유용한 기능이 있습니다. 카톡 방장봇을 설정하면 오픈채팅방에 새로운 참여자가 들어왔을 때 자동으로 설정된 환영 메시지를 발송해주고 방장이 미리 설정한 질의응답에 답변을 해주는 역할을 수행해줍니다. 게다가 일정시간마다 설정한 알림메시지를 오픈채팅방에 발송해주는 등 방을 운영하는데 필요한 기본적인 소통을 모두 지원해주기 때문에 대다수의 오픈채팅방에서는 방장봇을 만들고, 기준에 맞게 설정하여 사용되고 있습니다.

저도 카카오톡 오픈채팅 기능을 오랫동안 이용하고 있는만큼 현재 방장으로 운영하고 있는 방만 해도 5개가 있는데, 방장봇 기능이 없었던 때에는 하루 온종일 방관리에 매진하여도 시간이 부족할만큼 어려웠던 시절이 있었습니다. 하지만 이제는 카카오톡 방장봇 만들기 기능이 생기고부터는 방의 규칙과 처음 들어온 사람들이라면 누구나 궁금해할만한 질문과 응답을 미리 지정해두어서 제가 별도로 관리를 하지 않아도 알아서 방이 잘 운영될만큼 편리함을 느끼고 있습니다.

특히 요즘에는 오픈채팅방에 광고/마케팅으로 참여하는 가계정들이 많고 방 관리하는 운영진들이라면 진절머리를 느끼고 계실텐데요. 카카오톡 방장봇 설정을 통해서 광고글을 올리기 전에 가계정을 잡아내고 내보낼 수 있기 때문에 이러한 카카오톡 방장봇 사용법의 노하우들도 모조리 이번 본문에서 공개하도록 하겠습니다.

목차

1. 카카오톡 방장봇 만들기

2. 카카오톡 방장봇 설정 (환영/알림/질문 답변) 사용법

3. 카카오톡 방장봇으로 방 관리하는 3가지 노하우

카카오톡 방장봇 만들기

1. 내가 방장으로 개설한 오픈채팅방을 실행합니다.

2. 우측 상단에서 더보기(세줄 모양) 버튼을 클릭합니다.

3. 오픈채팅 봇 아래의 + 방장봇 활성화를 클릭합니다.

4. 방장봇을 활성화 할까요? 메시지에 확인을 누릅니다.

5. 카카오톡 방장봇이 활성화되었습니다.

방장봇을 만든 후에는 반드시 아래 글에서 환영/알림/질의응답을 직접 설정해주셔야합니다. 단순히 방장봇을 만들기만하면 방 관리에 어떠한 도움도 받을 수 없음으로 방에 맞는 규칙과 기준을 방장봇에 직접 입력하는 과정입니다.

카카오톡 방장봇 설정 (환영/알림/질문 답변) 사용법

카카오톡 방장봇 환영메시지 설정하기

환영메시지란 새로운 참여자가 입장하면 환영 메시지를 보내주는 기능으로 방장은 해당 기능으로 참여자가 처음 들어왔을 때 볼 수 있는 글을 미리 입력해둘 수 있습니다. 간단한 인사말은 물론, 방의 규칙과 공지사항등을 함께 첨부해서 참여자가 쉽게 방의 운영정책과 규칙들을 읽을 수 있게 만드는 것이 좋습니다.

1. 방장봇 활성화 메시지에서 방장봇 소개를 클릭합니다.

방장봇 설정에 진입하는 방법은 위 메시지의 방장봇 소개를 누르셔도 되고, 채팅방 우측 상단 세줄 모양(더보기) 버튼 클릭 > 방장봇 > 설정으로 들어갈 수도 있습니다. 나중에 방장봇의 설정을 수정하고 싶을 때 참고하시길 바랍니다.

2. 환영 메시지를 누릅니다.

3. 새 멤버에게 보낼 메시지를 작성합니다.

좌측 상단에서 공지글 첨부를 눌러 현재 오픈채팅방에 설정된 공지글을 함께 읽을 수 있도록 첨부할 수 있습니다.

4. 메시지가 작성되었다면 우측 상단 완료를 누르면 설정됩니다.

5. 이제 새로운 참여자가 오픈채팅방에 들어오면 방장봇이 설정한 환영메시지를 바로 발송합니다.

카카오톡 방장봇 알림메시지 설정하기

알림메시지란 안내하고 싶은 메시지를 지정된 시간에 1회 또는 반복해서 오픈채팅방에 발송할 수 있는 기능입니다. 예를 들어서 아침인사, 퇴근인사를 설정해서 매일 내가 설정한 시간에 메시지를 보낼 수 있는 기능입니다.

1. 카카오톡 방장봇 설정에서 알림 메시지를 클릭합니다.

2. 정해진 시간에 보낼 메시지를 작성합니다.

3. 시간 설정을 누릅니다.

4. 오전/오후를 선택한 후 시와 분을 하나씩 눌러서 시간을 지정합니다.

5. 매일 반복할 것인지 선택합니다.

6. 완료를 누르면 알리메시지가 설정됩니다.

제가 설정한 것을 보면 매일 오전 9시마다 “활기찬 아침입니다. 오늘도 화이팅입니다!” 메시지가 방장봇을 통해서 발송되게 됩니다.

카카오톡 방장봇 질문답변 설정하기

질문답변이란 오픈채팅방에서 미리 설정한 질문목록에 따른 답변을 알려줄 수 있는 기능입니다. 예를 들어서 질문”방은 언제부터 운영됬나요”를 등록해두고 “올해 9월 1일부터 운영됬습니다.”를 답변으로 등록해놨다고 가정하겠습니다. 이 때 방 참여자가 해당 등록 질문 목록에서 위 질문을 클릭하면 그에 맞는 답변을 바로 받을 수 있는 기능입니다. 따라서 오픈채팅방에서 자주듣고 답변해주었던 질의응답을 미리 설정해두면 방 관리 시간을 크게 줄일 수 있습니다.

1. 카카오톡 방장봇 설정에서 질문 답변을 클릭합니다.

2. 질문받을 메시지를 작성합니다.

3. 답변으로 보낼 메시지를 작성합니다.

4. 완료를 클릭합니다.

이제 방장봇의 질문답변이 설정되었습니다. 아래 사용법을 읽고 방 참여자들에게 안내해주시면 됩니다.

방장봇 질문답변 사용법

1. 오프채팅방의 채팅창을 클릭합니다.

2. 특수문자 “/”를 입력합니다.

3. 채팅창 위에 질문 목록이 표시됩니다.

4. 궁금한 질문을 클릭합니다.

5. 메시지 발송 버튼을 누릅니다.

6. 선택한 질문에 대해서 등록된 답변을 방장봇이 발송해줍니다.

카카오톡 방장봇 질문답변 수정/삭제 방법

카카오톡 방장봇 질문답변을 보면 초기부터 설정된 안내 질문인 “/방장봇”과 “/가이드”가 등록되어 있습니다. 등록할 수 있는 질의응답 갯수가 10개로 적기도 하고, 사용할 일이 없기 때문에 삭제를 해주시는 것을 추천드립니다.

1. 카카오톡 방장봇 설정에서 삭제/수정하고 싶은 질문을 클릭합니다.

2. 더보기(점 3개 모양) 버튼을 누르고 수정/삭제하시면 됩니다.

카카오톡 방장봇으로 방 관리하는 3가지 노하우

① 방 참여자가 필수적으로 알고 있어야하는 방의 운영사항/규칙은 모두 공지에 작성한 후 환영 메시지에 첨부하는 것이 좋습니다. 기본적인 질의응답들을 기록해두거나, 방에 더 빨리 적응할 수 있는 그 동안의 방 기록들을 적어 공유하는 것도 좋은 방법입니다.

② 방장봇 환영메시지로 인사와 자기소개, 간단한 미션들을 수행하도록 작성해두시면 광고/홍보성 가계정들을 쉽게 거를 수 있습니다. 광고 계정들의 경우 매크로 프로그램을 통해서 방 입장 후 방 내의 활동을 전혀하지 않음으로 환영메시지에 있는 인사와 자기소개 그리고 간단한 미션(현재 장소 찍기, 손 인증)들을 수행하지 않습니다. 따라서 일정시간 동안 수행하지 못할 경우 내보내기하시면 쉽게 방관리를 할 수 있습니다.

③ 방장봇의 질문답변 기능을 설정해서 적극적으로 사용하는 것이 좋습니다. 이 때 사용법(채팅창에 “/” 입력 후 질문 클릭)을 매일 일정시간에 반복해서 방장봇 알림메시지가 발송되게 설정하면 효과적입니다. 이렇게 해두면 주기적으로 나오는 질문들을 답변할 필요가 사라져서 방관리 시간을 효율적으로 줄일 수 있습니다.

반응형

0.카카오톡 오픈채팅 봇 만드는 방법

카카오톡 오픈채팅봇 만들기

오픈채팅봇 하는방법을 물어보셔서 남겨봅니다.

서브폰으로 사용하실분들은 우선 카카오톡 아이디를 개설하셔야 합니다.

서브폰도 번호가 있다면 바로 개설이 되지만 없는 경우에는 가상번호어플을 받아서 가입하셔야합니다.

그럴사람은 없으시겠지만 메인폰의 카카오톡아이디로 사용하실분은 그냥 진행하시면 됩니다.

오픈채팅봇 아이디가 준비가 되면

(간단하게 설명과 사진으로 대체하겠습니다.)

1. 오픈채팅봇용 폰에 Android Wear 를 설치합니다.

2. 메신저 봇이라고 검색하셔서 메신저봇R을 설치합니다.

3. 일단 카카오톡 채팅목록에서 적용하실 대화방을 꾸욱~ 누른후 채팅방 이름 설정을 누르셔서 대화방이름을 변경합니다.(간단한 단어로 변경하시면 됩니다.저는 솜주먹으로 변경해놨습니다.)

4. 메신저봇R을 실행합니다. 접근 허용 눌러주시면 됩니다.

5. 알림 읽기 권한은 확인 눌러주세요.

6. 메신저봇과 Wear OS by Google 를 파란색으로 만들어주세요.

7. 이 메세지가 뜨면 네 눌러주세요.

8. 저장폴더 화면이나오면 왼쪽 하단 새폴더 누르세요.

9. 아무거나 이름 하나 입력하셔서 확인 누르세요.

10. 만들어진 폴더를 터치 하시고 이 폴더 선택을 누르세요

11.오른쪽 하단 + 를 누릅니다

12. 아무이름이나 입력하시고 확인누르세요.(파일이름일뿐 아무의미없습니다.)

13. 오른쪽에 화살표를 누릅니다.

14. 2번째 펜모양 아이콘을 누릅니다

15. 스크립트가 뜨면 여기다가 소스를 수정해줍니다.

16. 보통 function response 에다가 소스를 집어 넣어주시면 됩니다.

테스트용으로

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {}

이부분을

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {

if(room == “채팅방1” || room == “채팅방2”){

msg = msg.trim();

if(msg.indexOf(“안녕”) != -1){

replier.reply(“환영합니다~ “);

}

}

}

이렇게 변경해줍니다.

아까전에 3번에서 카카오채팅방이름을 변경했는데 그 이름을 “채팅방1″이나 “채팅방2″에 넣어주세요.

17. 뒤로가기를 누르면 저장메세지가 뜨는데 저장하세요.

18. 첫번째 새로고침 아이콘을 누르고 솜주먹을 활성화 누르세요.

19. 디버그에서 방이름을 설정한후 테스트해보시거나 실제로 카톡에서 사용하시면서 테스트하시면 됩니다.

(참고로 봇이 실제 카톡대화창을 보고있으면 반응을 안합니다. 카톡이와서 알림창이 활성화되었을때 반응하는것입니다.)

필요하신기능이나 궁금하신점있으시면 댓글남겨주시면 보는대로 추가해드릴게요.

예전에 끄적이던 소스는 아래링크에 있습니다. 참고하셔서 쓰시면 될거같습니다.

2019/08/29 – [카카오톡 오픈채팅 봇관련] – 카카오톡 오픈채팅 봇 소스코드

카카오톡 오픈채팅 방장봇 사용방법

반응형

카카오톡 오픈채팅방을 들어가면 바로 방장봇이 맞이해주는데요. 방장봇은 관리자가 설정할 수 있습니다.

방장봇 기능이 없었을때는 오픈채팅방에서 새로운 사람이 들어올때마다 오픈채팅방 관리자인 방장이 수기로 인사맞이를 해줬습니다.

하지만, 이제는 방장봇을 이용하면 자동으로 방장봇이 관리자를 대신하여 인사말이나 자동응답을 할 수 있습니다. 1:1 채팅방에선 방을 관리할 필요가 없기 때문에 그룹 오픈채팅방에서만 방장봇 기능이 있으니 참고하시길 바라겠습니다.

자 그럼, 카카오톡 오픈채팅방의 방장봇 기능을 설정하는 방법을 알아보겠습니다.

오픈채팅 방장봇 설정방법

먼저, 오픈채팅방을 개설하게 되면 메뉴를 클릭해서 오픈채팅 봇에 있는 + 방장봇 활성화 버튼을 눌러줍니다. 그러면, 방장봇을 활성화 할까요? 자동 응답 메시지를 사용할 수 있습니다. 라는 확인창이 나타나고, 확인버튼을 누릅니다.

그러면 오픈채팅 봇에 방장봇 이 생성이 됩니다. 대화창으로 돌아가면 “방장이 방장봇을 활성화했습니다.” 라는 방장봇의 자동응답메시지가 나타납니다. 참고로, 방장봇도 1명으로 인식되어 오픈채팅방의 인원은 1명이 더 추가된 것을 보실 수 있습니다.

“방장봇 소개” 버튼을 누르면, 방장봇을 설정할 수 있는 화면이 나타납니다. 저는 환영메시지를 먼저 입력해보겠습니다.

환영 메시지에 “환영합니다.” 라는 문구를 입력했습니다. 기존에 적힌 공지글 첨부도 가능하니 참고바라겠습니다.

그다음, 완료버튼을 누릅니다.

아래와 같이 새로운 신규 인원이 들어오게 되면 방장봇이 자동으로 메시지를 보내게 됩니다.

공지사항 보기는 아까처럼 공지사항 첨부해주면 나오니 참고바라겠습니다!

알림메시지도 설정할 수 있는데요. 알림메시지는 총 3개까지만 가능하고, 알림메시지 1개가 시간설정에 따라 완료가 되면 다시 1개를 추가할 수 있습니다. 저는 “오후 3시에 모여요” 라는 알림메시지와 함께 시간설정을 오후 3시로 맞췄습니다. 매일 반복도 있는니 기능을 활용하면 좋을 것 같습니다.

단, 채팅방 참여자가 많을 경우 시간이 지연될 수 있고 생성완료된 알람은 수정할 수 없습니다. 라는 공지문구가 있네요.

* 제가 1분단위로 2개 알림 메시지를 설정했었는데, 1개는 오지가 않더군요.. 카카오톡 일시적인 버그이겠죠?ㅠㅠ

질문 답변도 설정할 수 있는데, 총 10개까지 설정이 가능합니다. 오픈채팅방에서 자주하는 질문을 설정해두면 방장봇을 통해 편리하게 안내할 수 있을 것 같습니다. / 슬래쉬라는 명령어로 메시지 입력칸에 슬래쉬를 입력하면 설정해둔 질문 답변을 볼 수 있습니다.

메시지 입력칸에서 제가 설정해둔 /어떤오픈채팅방인가요 라고 적어서 보내면 “테스트하는방입니다.” 라고 방장봇이 자동답변해줍니다.

아래는 /가이드 /방장봇 에 대한 질문 답변입니다. 기본셋팅으로 되어 있더라구요. 한번 읽어주시면 좋을 것 같습니다.

오픈채팅방 방장(관리자)이 채팅방 운영을 위해서 참여자들을 대상으로 같은 내용을 반복으로 전송하던 메시지나 질문을 사전에 방장봇에 설정해놓으면 번거로움없이 효율적으로 채팅방을 관리하기가 수월해질 수 있습니다.

마지막으로 방장봇 프로필을 누르게 되면 설정할 수 있는 버튼과 비활성화 하는 버튼이 있습니다. 방장봇 기능을 끄려면 비활성화 버튼을 누르셔서 제거하시면 되겠습니다.

카카오톡 오픈채팅방에 있는 방장봇 사용방법에 대해 알아보았는데요. 유익한 정보가 되셨으면 좋겠습니다.

마지막 인사로, 제 블로그에 찾아와주셔서 감사드리며, 항상 유익하고 좋은 정보와 내용들로 찾아와 주시는 분들께 도움이 될 수 있도록 최선을 다해 노력하고 있습니다. 참고로, 저의 블로그에는 게재된 광고 수익으로 운영되고 있는 점을 밝힙니다. 여러분께 도움이 조금이라도 되셨다면 음료 한잔의 여유를 부탁드리겠습니다. 제 글을 읽어주셔서 대단히 감사합니다.

반응형

[카카오톡 채팅 봇] 일반채팅 단톡방 친구들과 대화 가능한 봇 만드는 법 (코드 제공)

반응형

이 포스트에서는 카카오톡 일반채팅 단톡방에 대화가 가능한 봇을 만드는 법을 다루고 있습니다.

(오픈채팅이나 플러스친구로 만드는 그런 봇이 아니고, 아무 채팅방에서나 높은 자유도로 사용 가능한 봇입니다.)

참고로 코드는 그대로 가져다 쓰셔도 되지만, 자유도 높은 개조를 위해서는 Python과 각종 라이브러리에 대한 배경 지식이나 이해가 필요합니다.

다운로드 링크 / 소스 코드

설명이 필요없이 링크나 소스 코드만 필요하신 분들도 있을 것 같아 링크와 코드 먼저 첨부합니다.

↑ 제 GitHub 링크입니다. 들어가셔서 main.py 파일을 다운해주시면 됩니다.

chatlog.txt는 예시 채팅 파일입니다.

카카오톡에서 채팅 내보내기 하시고, 앞에 글자를 지워줘야 하는데 이 부분을 자동화 시키는 프로그램 역시 빨리 만들어서 추가 업로드하겠습니다.

import win32gui, win32con, win32api, ctypes, time import pandas as pd from pywinauto import clipboard from difflib import SequenceMatcher room = win32gui.FindWindow(None, “채팅방 이름”) inBox = win32gui.FindWindowEx(room, None , “RICHEDIT50W” , None) # 채팅창의 메세지 입력창 with open(“chatlog.txt”, “r”, encoding=”UTF-8″) as f: lines = f.readlines() PBYTE256 = ctypes.c_ubyte * 256 _user32 = ctypes.WinDLL(“user32”) GetKeyboardState = _user32.GetKeyboardState SetKeyboardState = _user32.SetKeyboardState PostMessage = win32api.PostMessage SendMessage = win32gui.SendMessage FindWindow = win32gui.FindWindow IsWindow = win32gui.IsWindow GetCurrentThreadId = win32api.GetCurrentThreadId GetWindowThreadProcessId = _user32.GetWindowThreadProcessId AttachThreadInput = _user32.AttachThreadInput MapVirtualKeyA = _user32.MapVirtualKeyA MapVirtualKeyW = _user32.MapVirtualKeyW MakeLong = win32api.MAKELONG w = win32con def kakao_sendtext(inText): win32api.SendMessage(inBox, win32con.WM_SETTEXT, 0, inText) # 채팅창 입력 win32api.PostMessage(inBox, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) win32api.PostMessage(inBox, win32con.WM_KEYUP, win32con.VK_RETURN, 0) # 엔터키 def get_chat(): hwndListControl = win32gui.FindWindowEx(room, None, “EVA_VH_ListControl_Dblclk”, None) PostKeyEx(hwndListControl, ord(‘A’), [w.VK_CONTROL], False) time.sleep(1) PostKeyEx(hwndListControl, ord(‘C’), [w.VK_CONTROL], False) get_text = clipboard.GetData() return get_text def PostKeyEx(hwnd, key, shift, specialkey): if IsWindow(hwnd): ThreadId = GetWindowThreadProcessId(hwnd, None) lparam = MakeLong(0, MapVirtualKeyA(key, 0)) msg_down = w.WM_KEYDOWN msg_up = w.WM_KEYUP if specialkey: lparam = lparam | 0x1000000 if len(shift) > 0: pKeyBuffers = PBYTE256() pKeyBuffers_old = PBYTE256() SendMessage(hwnd, w.WM_ACTIVATE, w.WA_ACTIVE, 0) AttachThreadInput(GetCurrentThreadId(), ThreadId, True) GetKeyboardState(ctypes.byref(pKeyBuffers_old)) for modkey in shift: if modkey == w.VK_MENU: lparam = lparam | 0x20000000 msg_down = w.WM_SYSKEYDOWN msg_up = w.WM_SYSKEYUP pKeyBuffers[modkey] |= 128 SetKeyboardState(ctypes.byref(pKeyBuffers)) time.sleep(0.01) PostMessage(hwnd, msg_down, key, lparam) time.sleep(0.01) PostMessage(hwnd, msg_up, key, lparam | 0xC0000000) time.sleep(0.01) SetKeyboardState(ctypes.byref(pKeyBuffers_old)) time.sleep(0.01) AttachThreadInput(GetCurrentThreadId(), ThreadId, False) else: SendMessage(hwnd, msg_down, key, lparam) SendMessage(hwnd, msg_up, key, lparam | 0xC0000000) def chat_last_save(): getText = get_chat() getText = getText.split(‘\r

‘) getText = pd.DataFrame(getText) getText[0] = getText[0].str.replace(‘\[([\S\s]+)\] \[(오전|오후)([0-9:\s]+)\] ‘, ”) return getText.index[-2], getText.iloc[-2, 0] def chat_check_command(cls, clst): getText = get_chat() getText = getText.split(‘\r

‘) getText = pd.DataFrame(getText) getText[0] = getText[0].str.replace(‘\[([\S\s]+)\] \[(오전|오후)([0-9:\s]+)\] ‘, ”) if getText.iloc[-2, 0] != clst: getText_ = getText.iloc[cls+1:, 0] getStr = str(getText_) if “조용” in getStr: kakao_sendtext(“죄송합니다. 5분간 반응하지 않습니다.”) time.sleep(300) return if “개발자” in getStr: kakao_sendtext(“개발자는 현재 자리에 없습니다.”) return check = 0 s1 = str(); s2 = str(); s3 = str(); s4 = str(); s5 = str(); r1 = 0; r2 = 0; r3 = 0; r4 = 0; r5 = 0; for line in lines: line = line.strip(”

“) if check == 1: s1 = line r1 = SequenceMatcher(None, getStr, s1).ratio() if check == 2: s2 = line r2 = SequenceMatcher(None, getStr, s2).ratio() if check == 3: s3 = line r3 = SequenceMatcher(None, getStr, s3).ratio() if check == 4: s4 = line r4 = SequenceMatcher(None, getStr, s4).ratio() if check == 5: s5 = line r5 = SequenceMatcher(None, getStr, s5).ratio() if check >= 1: check += 1 if check > 5: print(r1, r2, r3, r4, r5) printStr = str() if r1 >= r2 and r1 >= r3 and r1 >= r4 and r1 >= r5: printStr = s1 elif r2 >= r1 and r2 >= r3 and r2 >= r4 and r2 >= r5: printStr = s2 elif r3 >= r1 and r3 >= r2 and r3 >= r4 and r3 >= r5: printStr = s3 elif r4 >= r1 and r4 >= r2 and r4 >= r3 and r4 >= r5: printStr = s4 elif r5 >= r1 and r5 >= r2 and r5 >= r3 and r5 >= r4: printStr = s5 kakao_sendtext(printStr.strip(”

“)) break if getStr.find(line) != -1 or SequenceMatcher(None, getStr, line).ratio() > 0.5: print(getStr+” “+line+” “+str(SequenceMatcher(None, getStr, line).ratio())) check += 1 def main(): print(“Total chat data count : ” + str(len(lines))) cls, clst = chat_last_save() while True: chat_check_command(cls, clst) cls, clst = chat_last_save() time.sleep(10) if __name__ == ‘__main__’: main()

↑ main.py 소스코드입니다.

import 하고 뒤에 써 있는 모듈들만 설치해주세요. (Python이나 모듈 설치 방법은 구글링 해보면 나옵니다.)

사용 방법

먼저 chatlog.txt 파일을 위해 채팅 로그를 추출해야 합니다.

이 부분은 제가 채팅 로그들을 가져와서 올리고 싶으나, 사생활 문제나 기타 여러 윤리적 문제가 발생하기 때문에 제가 만들어드릴 수가 없습니다.

따라서 하는 방법만 알려드리겠습니다.

먼저 카카오톡 채팅방에 들어가서, 오른쪽 위에 벨 모양 오른쪽에 있는 ▤ 모양 아이콘을 눌러줍니다.

그 다음 대화 내용 > 대화 내보내기를 클릭해서 메모장 형식으로 대화를 추출해줍니다.

마지막으로 대화 왼쪽에 있는 [번호][이름][시간] 부분만 모두 지워주신 후, chatlog.txt로 이름을 바꿔서 원래 chatlog 파일이 있던 자리에 바꿔 넣어주시면 됩니다.

이제 자동 대화를 원하는 카카오톡 채팅방의 이름을 찾아줍니다.

저는 예시로 제가 들어가 있는 롤 듀오 구하는 채팅방의 이름을 가져오겠습니다.

그 다음 python 편집기나 아니면 메모장에 열어서 6행의 room 부분의 빨간 네모 박스로 표시한 부분에 톡방 이름을 적어줍니다 .(프로세스에서 채팅방 이름을 따와서 그 창을 찾을 것이기 때문에 필요합니다.)

이제, 해당 카카오톡 채팅방 창이 켜진 상태로 프로그램을 실행해주면 코드가 작동됩니다.

실행 원리 & 원하는대로 추가 개발하는 방법

기본 실행 원리는, 카카오톡의 해당 채팅방 이름에 해당하는 프로세스를 찾아, 키(ctrl+c, v나 엔터 등)를 직접 입력하도록 명령하는 방식입니다. 키 입력에 대한 자세한 원리는 제가 개발에 참고한 포스트(https://airfox1.tistory.com/5?category=1118519)를 참고하시면 좋습니다.

여기에 추가로, 저는 단톡방의 대화를 가져와 데이터로 사용했기 때문에 대답할 문장을 선택하는 알고리즘을 조금 다르게 짰습니다.

새로운 카톡에 데이터의 어떤 줄이 포함될 경우, 다음 5줄 중에서 문장 유사도가 가장 높은 한 줄을 대답으로 선택하도록 했습니다. (왜냐하면 3명 이상이 동시에 말할 경우 질문과 대답 사이에 다른 카톡이 섞여있는 경우가 아주 많기 때문)

제 코드에 추가로 개발하는 방법은, ‘chat_check_command’ 함수의 if 문에 제가 해놓은 것처럼 추출할 문자열을 넣고, 그 아래 함수를 호출하거나 구현할 기능을 추가해주시면 됩니다.

저의 경우에는 “조용” 명령어를 추가하여 봇이 자꾸 오작동하거나 대화에 개입하는 것이 싫을 때 5분간 작동하지 않도록 설정하였습니다.

질문 사항 있으시면 댓글 남겨주세요.

반응형

카카오톡 오픈채팅 만들기 :: 챗봇 인사말 만들기

728×90

코로나로 언택트 만남이 증가하면서 카카오톡 오픈 채팅방에서 익명으로 다양한 사람들과 온라인으로 만날 수 있습니다. 다만 오픈 채팅 만들기부터 오픈 프로필 변경까지 사용방법이 다소 복잡하게 느껴지기도 합니다. 카카오톡 오픈 채팅 만들기부터 챗봇 인사말 만들기까지 자세하게 순서대로 적었으니, 유용하게 사용해보세요!

카카오톡 오픈채팅 만들기

카카오톡 오픈채팅 만들기

728×90

1. 카카오톡 접속하고, 채팅에서 우측 상단 말풍선을 누르세요. 이 말풍선은 채팅방을 만들기 위한 아이콘으로 오픈 채팅 외에 일반 채팅과 비밀 채팅방을 만들 수 있어요. 오늘은 오픈 채팅 만들기 과정이니 오픈 채팅을 눌러주세요.

2. 카카오톡 오픈 채팅 전체 관리로 이동했어요. 여기서 오픈 채팅 만들기와 내가 만든 오픈 채팅방 목록, 다른 사람들이 만든 오픈 채팅방 검색 볼 수 있고, 내 오픈 프로필도 변경할 수 있어요. 오픈 프로필 변경은 다음 포스팅에 자세히 소개할게요! +만들기를 눌러서 그룹 채팅방 만들기 누르세요.

3. 그룹 채팅방 상세 설정을 할게요. 이미지는 다른 사람이 내 오픈 채팅방에 들어왔을 때 보이는 배경화면입니다. 앨범 사진을 선택해도 되고, 마땅한 어울릴만한 이미지가 없다면 랜덤 이미지를 선택하면 됩니다. 아래 방장 프로필은 익명 또는 실명 프로필 중에서 선택하면 돼요.

가끔 오픈 채팅방에 들어갈 때 오픈 프로필은 입장이 불가능한 방이 있는데, 방장이 기본 프로필로만 입장 허용을 해놨기 때문이에요. 좀 더 사적인 모임을 원한다면 채팅방 입장 조건 설정에서 출생연도와 성별을 정해서 조건에 부합하는 사람만 오픈 방 입장이 허용돼요.

4. 와아아아!! 오픈 카톡방이 생성되었어요! 많은 사람들과의 교류를 위해서 공유를 누르면 내 오픈 카톡방 url, 카톡 친구에게 전달 또는 다른 앱으로 다른 사람을 초대할 수 있어요.

5. 오픈채팅방 설정을 해볼게요. 우측 상단 줄 3개를 눌러서 오픈 채팅 관리로 들어가세요.

6. 참여관리에서 최대 인원수는 1500명까지 설정할 수 있어요. 내보내기 해제는 오픈 카톡방에 오른 블랙리스트 명단에서 다시 입장을 허용할 때 사용하시면 됩니다. 블랙리스트란 오픈 카톡장 목적과 맞지 않는 사람을 내보낸 리스트입니다. 권한 관리에서 부방장을 선택하여 좀 더 효율적으로 오픈 카톡방을 관리할 수 있어요. 방장을 변경하고 싶다면 방장 변경하기를 누르면 됩니다.

방장 봇 인사말 만들기

우선 방장 봇은 방장이 24시간 오픈 카톡을 관리할 수 없기 때문에 미리 인사말, 답변 등을 설정하여 방장 봇이 자동으로 채팅을 입력하는 기능이에요. 보통 오픈 카톡방 환영인사와 방 규칙을 알려주는 용도로 많이 사용합니다.

1. 오픈카톡방 우측 상단 줄 3개를 눌러서 중간쯤에 위치한 방장 봇 활성화를 누르세요. 확인을 누르면 채팅창에 방장 봇 소개가 나옵니다. 클릭하세요.

2. 환영메시지 최대 1개까지 , 알림 메시지 최대 3개까지 , 질문/답변 최대 20까지 설정할 수 있어요. 환영 메시지는 인사말 만들기로 입장하는 사람이 생길 때마다 내가 적은 문구로 방장 봇이 자동으로 채팅창에 입력해줘요. 환영받는 느낌이 들어서 소속감을 느끼게 할 수 있어서 적극적인 참여할 마음이 막 생기겠죠?

제가 들어간 오픈카톡방은 자기 계발하는 사람들이 인증하는 방으로 방장이 알림 메시지로 아침, 점심, 저녁때 힘이 되는 문구를 입력해놨더라고요. 이처럼 정해진 시간에 반복적인 문구를 설정할 수 있어요.

질문/답변은 참여자들이 궁금할 사항들에 대해서 미리 답변을 적어놓으면 참여자가 ‘/규칙’ 처럼 앞에 슬래시+궁금한 점 입력하면 방장 봇이 자동답변을 입력해요. 보통 닉네임 규칙, 강퇴 규정 등에 대한 답변을 등록해요.

오늘은 카카오톡 오픈채팅 만들기와 챗봇으로 인사말 만들기까지 다뤘습니다. 카카오톡은 알고 사용할수록 인간관계를 좀 더 효율적으로 관리할 수 있게 되는 것 같습니다. 다음번 포스팅은 카카오톡 오픈 프로필 변경 방법으로 돌아올게요.

728×90

카카오톡 오픈 채팅방에서 방장봇 활성화하여 편리하게 채팅하기

반응형

728×170

카카오톡 오픈 채팅방에서 방장봇 활성화하여 편리하게 채팅하기

카카오톡의 채팅에는 일반채팅 , 비밀 채팅, 오픈 채팅방 등을 개설하여 채팅을 할 수 있습니다. 그중에서 오픈 채팅을 개설하면 다수의 익명으로 모여서 대화를 할 수 있는데요. 이때 방장봇 기능을 활용하여 인사말 또는 규칙 등을 자동으로 응답하게 할 수 있는 방장봇 활성화하는 방법에 대해서 알아보겠습니다.

채팅창에서 다음과 같이 채팅창을 만듭니다.

반응형

새로운 채팅창을 만드는 화면이 나오는데 이곳에서 일반채팅, 비밀 채팅, 오픈 채팅을 생성을 할 수 있습니다. 오픈 채팅을 선택하여 줍니다.

오픈 채팅을 선택하여 줍니다.

오픈채팅방오픈 채팅방 만들기를 눌러서 오픈 채팅방을 만들어 줍니다.

300×250

오픈 채팅방을 만들 때 1:1 채팅방 또는 그룹채팅방을 선택하여 만들 수 있습니다. 그룹채팅방을 선택합니다.

그룹채팅방 만들기 위해서는 오픈채팅방 이름을 입력하여 주고 사용할 프로필도 만들거나 선택하여 줍니다.

사용할 프로필 및 오픈채팅방 이름을 모두 입력을 하였으면 완료를 누릅니다.

다음과 같이 오픈채팅방을 만들고 입장을 하게 되면 채팅방의 우측의 설정 부분에 들어갑니다.

이곳에서 방장봇 활성화를 합니다. 방장 봇 활성화 및 설정은 오픈 채팅방의 방장만 가능합니다.

방장봇활성화 메시지가 나오며 활성화 확인을 누릅니다.

방장봇이 활성화가 되면 다음과 같이 방장봇 소개 메시지가 보이게 됩니다.

방장봇을 설정을 할 수 있는데요. 이곳에 환영 메시지 및 오픈 채팅방에 새로 입장한 참여자에게 보낼 메시지 및 공지글 등을 작성을 할 수 있습니다. 알림 메시지는 2개까지 정할 수 있고 정해진 시간에 보낼 메시지를 입력 또는 시간과 반복 여부를 정할 수 있습니다. 아주 편리한 봇 기능입니다.

반응형

키워드에 대한 정보 카카오 톡 오픈 챗 봇

다음은 Bing에서 카카오 톡 오픈 챗 봇 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 초간단 카카오톡 봇 만드는법!!

  • 카카오톡 봇
  • 카카오톡 봇 만드는법
  • 카카오톡 봇 사용법
  • 카카오톡 봇 만들기
  • 카카오톡 로봇
  • 카카오톡 자동응답

초간단 #카카오톡 #봇 #만드는법!!


YouTube에서 카카오 톡 오픈 챗 봇 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 초간단 카카오톡 봇 만드는법!! | 카카오 톡 오픈 챗 봇, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment