이제 남은 개념들 중 내게 필요한 것만 간단하게 정리하고자 한다.
마찬가지로 공식문서를 읽고 정리하는 것. 공식문서 짱!
시나리오 / 블록
- 시나리오(Scenario) : 봇 안에서 사용자가 경험할 수 있는 서비스 단위
- 블록(Block) : 사용자의 의도(Intent)를 응대하는 가장 작은 단위, 하나의 시나리오는 여러개의 블록으로 구성
기본 시나리오
커스텀 시나리오
관리자에서 이런 식으로 시나리오를 추가/제거 할 수 있다.
시나리오 공통 설정
- 되묻기 질문 : 봇이 필수 파라미터를 얻을 때까지 다시 물어보는 질문
- 봇 제네릭 메뉴 : 챗봇 안에서 하단에 슬라이드 메뉴 형태로 존재하는 사용자 인터페이스
(나는 필요없지만) 상업적으로 사용하는 경우, 상담직원 연결하기 기능을 추가할 수 있다. 상담톡에서 자주보는 기능!
파라미터 설정
우리 챗봇에서 굉장히 중요한 부분이다.
왜냐하면 핵심 기능 세가지 모두 사용자가 '롤 닉네임'을 직접 입력해주어야 하기 때문이다.
파라미터는 이렇게 세 가지로 구성된다.
- 파라미터명 : 구분 명
- 엔티티 : 발화에 매핑된 엔티티를 파라미터에 연결하는 역할
- 값 : 엔티티 값 / 특정 값 / 고정 값
- 엔티티 값 : ‘$’로 시작하는 이름으로 구성된 값
사용자 명령에서 추출해서 대표 엔트리로 변환하여 Skill에 전달하는 것이다.
예를 들어, 커피 이름을 입력하면 가격을 반환하는 스킬이 있다고 하자~ (사실 이건 스킬 필요업슴)
값에 엔티티 값(ex. $coffee_name)을 넣어주면, 아메리카노 (=ㅇㅏ메리카노=아매리카노,americano,....)라는 걸 알기 때문에,
사용자가 오타를 내서 'ㅇㅏ메리카노'라고 입력해도 찰떡같이 아메리카노의 가격을 리턴할 수 있는 것이다.
- 특정 값 : 값 위치에 ‘#’으로 시작하는 이름으로 구성된 값 / 'current'를 통해 현재 대화의 발화 내용에 접근 가능 / ‘request payload’의 특정 path 값
특정 값 예시 (1) : current
#[current|contextName].[path].[to]
특정 값 예시 (2) : request payload의 path
아래 코드블락이 request payload의 구조일 때, 운세를 가져오고 싶다면? (thx to 킹갓개발자 isaac)
#[action].[params].[entity_zodiacName]
{
"userRequest": {
"makerId": "june.kay",
"user": {
"id": "1",
"type": "accountId"
},
"chatId": "chatchat",
"utterance": "오늘 용띠 운세 좀",
"device": null,
"params": null
},
"bot": {
"id": "f6a2a947-7b55-4bdb-b36e d9eac9fe9aca",
"name": "노래봇"
},
"intent": {
"id": "af5fb347-ce65-483e-ae2d-dedeb5f97a68",
"name": "띠찾아"
},
"action": {
"id": "88254013-1581-44bc-a4b2-ccfb69327ca9",
"name": "fortune.desc",
"params": {
"entity_toTime": "2017-06-01T12:00:21+0900",
"entity_zodiacName": "용띠",
"entity_fromTime": "2017-06-01T12:00:21+0900",
"intent": "informZodiacFortune"
},
"detailParams": {
"entity_toTime": {
"origin": "오늘",
"value": "2017-06-01T12:00:21+0900"
},
"entity_zodiacName": {
"origin": "용띠",
"value": "용띠"
},
"entity_fromTime": {
"origin": "오늘",
"value": "2017-06-01T12:00:21+0900"
},
"intent": {
"origin": "informZodiacFortune",
"value": "informZodiacFortune"
}
}
}
}
- 고정된 값 : ‘$’ 이나 ‘#’ 으로 시작하지 않는 값 /값 자체가 실제 파라미터의 값으로 사용 / 걍 넣는 것임
하지만 필수 파라미터가 채워지지 않을 경우?
- 슬롯필링 : 파라미터가 ‘필수’임에도 값이 채워지지 않았을 때, 해당 ‘파라미터 값’을 채우기 위해서 ‘되묻기 질문’을 사용하여 사용자와 대화를 시도하는 과정
다음에는... 스킬...
그리고 응답 모양...설정
많관부
이전글
2022.08.16 - [PM 혹은 서비스기획자로 살아보자] - 카카오 챗봇 개념 공부 : (1) 엔티티 정의와 등록 방법 (feat. 사이드프로젝트 롤 챗봇)
'PM 혹은 서비스기획자로 살아보자' 카테고리의 다른 글
Mac에서 내 iPhone 혹은 iPad의 화면을 실시간공유/녹화하는 꿀팁 (무료!) (0) | 2023.05.05 |
---|---|
[ChatGPT] 노코드 툴로 AI 서비스 만들기! : 릴리즈 노트 생성기(feat.GetGPT) (5) | 2023.04.06 |
카카오 챗봇 개념 공부 : (1) 엔티티 정의와 등록 방법 (feat. 사이드프로젝트 롤 챗봇) (1) | 2022.08.16 |
첫번째 회사 + 두번째 회사 회고 (feat.신입PM) (1) | 2022.08.14 |
PM/PO/서비스기획자 면접준비 : (3) 꼬리질문 리스트 (0) | 2022.08.07 |