카카오 챗봇 관리자 센터 - 스킬 엔드포인트란 무엇인가요?
스킬 서버의 엔드포인트는 요청을 전송할 수 있는 창구를 의미합니다. 예를 들어, 스킬 서버의 주소를 i.kakao.com 이라 가정했을 때, ‘i.kakao.com/a‘, ‘i.kakao.com/b‘ 이렇게 두 개의 URL에 요청을 전달하면 응답을 반환하도록 만들었다면, ‘i.kakao.com/a’와 ‘i.kakao.com/b’는 각각 스킬 서버의 엔드포인트가 됩니다.
카카오 챗봇 관리자 센터 - 스킬이 무엇인가요?
스킬은 블록의 출력과 같이 사용자에게 응답을 돌려주는 기능이지만, 실시간 날씨, 환율과 같이 유동적인 값을 활용하여 봇 응답을 출력하고 싶은 경우 사용할 수 있습니다. 또한, 스킬을 사용하려면 스킬 서버가 반드시 생성되어야 합니다.
블록과 스킬을 연결한 경우, 스킬로 계산된 결과값을 봇 응답에 활용하거나 응답 자체를 JSON 포맷을 이용하여 직접 구성할 수 있습니다.
스킬에 대한 상세한 안내는 아래 버튼을 클릭하여 확인해주세요.
카카오 챗봇 관리자 센터 - 응답 설정을 스킬로 사용하는 것과, 값으로 사용하는 것은 무엇이 다른가요?
스킬을 연결한 후 봇 응답 설정 또한 스킬로 사용하고자 하는 경우, 봇이 출력할 말풍선을 약속된 JSON 포맷을 이용해 구성할 수 있습니다.
스킬 응답에 말풍선 형태 및 코드(로직) 결과에 따른 동적인 값을 함께 활용하여 출력하는 것이 가능합니다.
스킬을 연결했지만 봇 응답 설정은 챗봇 관리자센터를 통해서 구성할 수도 있습니다.
이때 코드(로직) 결과에 따른 동적인 값을 말풍선의 텍스트 영역에 입력하여 활용할 수 있습니다.
이는 웹훅(Webhook) 객체 표현을 통해 지원하게 되며 {{#webhook.<json_path>}}와 같은 형태로 사용할 수 있습니다.
카카오 챗봇 관리자 센터 - 사용자 직접 입력 발화인지, 버튼 클릭을 통한 발화인지 구분할 수 있는 방법이 있나요?
JSON 포맷으로 응답 구성시 button > extra 필드를 활용해보시기 바랍니다. 'extra' 필드는 버튼의 block이나 message action으로 블록을 호출하는 경우 봇 작업자의 스킬 서버에 추가적으로 제공하는 정보입니다. 스킬 요청 Payload 내 action > clientExtra 필드에서 입력해둔 임의의 값을 확인할 수 있게 됩니다. 필드에 입력 가능한 타입은 Map<String, Any> 입니다. 사용자 직접 입력 발화와 버튼 클릭을 통해 발송되는 메시지(발화)가 동일한 경우, 'clientExtra' 필드 내 값이 포함되어있는지 여부를 확인하는 방법으로 구분합니다.
예)
- clientExtra 필드에 값 포함 : 버튼 클릭을 통한 발화
- clientExtra 필드에 값 포함되지 않음 : 사용자 직접 입력 발화
카카오 챗봇 관리자 센터 - 사용자가 입력한 발화 내용을 어떻게 스킬 서버로 가져가나요?
스킬이 연결되어있다면, 사용자의 발화가 스킬과 연결된 블록에 해당할 때 봇 서버에서 스킬 서버로 스킬 Payload를 전송합니다. 이 스킬 Payload에는 사용자의 발화 뿐만 아니라 봇의 정보 및 유저 관련 정보, 그리고 실행되는 스킬에 대한 정보가 포함됩니다.
이 요청 정보를 바탕으로 스킬서버에서 응답을 구성하여 다시 봇 서버로 정보를 전송하면, 구성된 응답이 카카오톡 채팅방에 출력됩니다.
카카오 챗봇 관리자 센터 - 스킬 payload에 표시되는 언어는 어떤 언어들이 지원되나요?
현재 챗봇에서는 한국어 외 다른 언어를 지원하지 않고 있으므로, 스킬 Payload의 lang 값은 'ko'로만 전달되고 있습니다.
카카오 챗봇 관리자 센터 - 스킬에서 사용자 발화를 확인할 수 있나요?
스킬 Payload의 [userRequest > utterance] 필드에서 사용자 발화를 확인할 수 있습니다.
userRequest는 사용자의 정보를 담고 있는 필드이며, 사용자의 발화와 시간대/언어, 반응한 블록의 정보를 추가적으로 포함합니다.
카카오 챗봇 관리자 센터 - 엔티티 태깅 없이, 패턴발화의 특정 변수값을 스킬서버에서 구분해서 받을 수 있을까요?
패턴 발화는 엔티티 태깅 형태를 통해 그 패턴을 이루게 됩니다. 패턴이 지정되지 않은 일반 텍스트의 경우 봇이 특정 패턴을 확인하여 변화하는 값을 수집하기는 어려우므로 엔티티 태깅을 권고합니다.
출처 kakao 고객센터 https://cs.kakao.com/
스킬 서버의 엔드포인트는 요청을 전송할 수 있는 창구를 의미합니다. 예를 들어, 스킬 서버의 주소를 i.kakao.com 이라 가정했을 때, ‘i.kakao.com/a‘, ‘i.kakao.com/b‘ 이렇게 두 개의 URL에 요청을 전달하면 응답을 반환하도록 만들었다면, ‘i.kakao.com/a’와 ‘i.kakao.com/b’는 각각 스킬 서버의 엔드포인트가 됩니다.
카카오 챗봇 관리자 센터 - 스킬이 무엇인가요?
스킬은 블록의 출력과 같이 사용자에게 응답을 돌려주는 기능이지만, 실시간 날씨, 환율과 같이 유동적인 값을 활용하여 봇 응답을 출력하고 싶은 경우 사용할 수 있습니다. 또한, 스킬을 사용하려면 스킬 서버가 반드시 생성되어야 합니다.
블록과 스킬을 연결한 경우, 스킬로 계산된 결과값을 봇 응답에 활용하거나 응답 자체를 JSON 포맷을 이용하여 직접 구성할 수 있습니다.
스킬에 대한 상세한 안내는 아래 버튼을 클릭하여 확인해주세요.
카카오 챗봇 관리자 센터 - 응답 설정을 스킬로 사용하는 것과, 값으로 사용하는 것은 무엇이 다른가요?
스킬을 연결한 후 봇 응답 설정 또한 스킬로 사용하고자 하는 경우, 봇이 출력할 말풍선을 약속된 JSON 포맷을 이용해 구성할 수 있습니다.
스킬 응답에 말풍선 형태 및 코드(로직) 결과에 따른 동적인 값을 함께 활용하여 출력하는 것이 가능합니다.
스킬을 연결했지만 봇 응답 설정은 챗봇 관리자센터를 통해서 구성할 수도 있습니다.
이때 코드(로직) 결과에 따른 동적인 값을 말풍선의 텍스트 영역에 입력하여 활용할 수 있습니다.
이는 웹훅(Webhook) 객체 표현을 통해 지원하게 되며 {{#webhook.<json_path>}}와 같은 형태로 사용할 수 있습니다.
카카오 챗봇 관리자 센터 - 사용자 직접 입력 발화인지, 버튼 클릭을 통한 발화인지 구분할 수 있는 방법이 있나요?
JSON 포맷으로 응답 구성시 button > extra 필드를 활용해보시기 바랍니다. 'extra' 필드는 버튼의 block이나 message action으로 블록을 호출하는 경우 봇 작업자의 스킬 서버에 추가적으로 제공하는 정보입니다. 스킬 요청 Payload 내 action > clientExtra 필드에서 입력해둔 임의의 값을 확인할 수 있게 됩니다. 필드에 입력 가능한 타입은 Map<String, Any> 입니다. 사용자 직접 입력 발화와 버튼 클릭을 통해 발송되는 메시지(발화)가 동일한 경우, 'clientExtra' 필드 내 값이 포함되어있는지 여부를 확인하는 방법으로 구분합니다.
예)
- clientExtra 필드에 값 포함 : 버튼 클릭을 통한 발화
- clientExtra 필드에 값 포함되지 않음 : 사용자 직접 입력 발화
카카오 챗봇 관리자 센터 - 사용자가 입력한 발화 내용을 어떻게 스킬 서버로 가져가나요?
스킬이 연결되어있다면, 사용자의 발화가 스킬과 연결된 블록에 해당할 때 봇 서버에서 스킬 서버로 스킬 Payload를 전송합니다. 이 스킬 Payload에는 사용자의 발화 뿐만 아니라 봇의 정보 및 유저 관련 정보, 그리고 실행되는 스킬에 대한 정보가 포함됩니다.
이 요청 정보를 바탕으로 스킬서버에서 응답을 구성하여 다시 봇 서버로 정보를 전송하면, 구성된 응답이 카카오톡 채팅방에 출력됩니다.
카카오 챗봇 관리자 센터 - 스킬 payload에 표시되는 언어는 어떤 언어들이 지원되나요?
현재 챗봇에서는 한국어 외 다른 언어를 지원하지 않고 있으므로, 스킬 Payload의 lang 값은 'ko'로만 전달되고 있습니다.
카카오 챗봇 관리자 센터 - 스킬에서 사용자 발화를 확인할 수 있나요?
스킬 Payload의 [userRequest > utterance] 필드에서 사용자 발화를 확인할 수 있습니다.
userRequest는 사용자의 정보를 담고 있는 필드이며, 사용자의 발화와 시간대/언어, 반응한 블록의 정보를 추가적으로 포함합니다.
카카오 챗봇 관리자 센터 - 엔티티 태깅 없이, 패턴발화의 특정 변수값을 스킬서버에서 구분해서 받을 수 있을까요?
패턴 발화는 엔티티 태깅 형태를 통해 그 패턴을 이루게 됩니다. 패턴이 지정되지 않은 일반 텍스트의 경우 봇이 특정 패턴을 확인하여 변화하는 값을 수집하기는 어려우므로 엔티티 태깅을 권고합니다.
출처 kakao 고객센터 https://cs.kakao.com/