챗봇은 같은 말을 반복하지 않도록 작성할 수 있지만, 사용자는 같은 질문을 또 할 수 있다. 잊었을 수도 있고 챗봇이 어떻게 나오나 일부러 반복해서 물어볼 수도 있다. 이때 “아까 말했었는데… 잊었나 봐요. 제가 좋아하는 노래는 I love you에요” 라고 답변한다면 단순히 “제가 좋아하는 노래는 I love you에요” 라고 답하는 것보다는 좀 더 지능이 있다고 느끼게 될 것이다. 이렇게 답하기 위해서는 첫째 사용자의 질문이 반복이라는 것을 알아채야 하고 둘째 “아까 말했었는데…” 와 같은 문구를 오직 반복 질문일 때만 출력하도록 통제할 수 있어야 한다.먼저, 상대방이 중복해서 질문할 만한 내용을 찾아 다음과 같이 장기기억 변수에 값을 세팅해 놓자. A. t: MyFavorite () 저는 I lov..
한 토픽 내에 복수 개의 말걸기가 있을 경우 가장 위에서부터 차례로 출력되기 시작하며, 응답하기나 예상응답 등도 맨 위에서부터 차례로 매칭 여부를 점검하며 진행된다. 그리고 출력에 성공한 룰은 재사용이 되지 않도록 자동으로 ‘사용되었음’ 표시가 된다. 즉 챗봇이 한 번 한 말은 사용자에게 반복해서 말하지 않도록 CS가 관리한다. 만약 그 룰이 필요하다면 명시적으로 호출하여 재사용할 수 있다. 이 대원칙 하에 Label과 reuse[1] 함수를 사용하여 다음과 같은 형식으로 스크립트를 작성하면 같은 말을 되풀이 하는 것도 방지하고 코드 효율성도 높일 수 있게 된다 A. t: FaveSong ( ) 저는 I love you를 좋아해요.B. u: (좋아하는 노래가 뭐에요) reuse(FaveSong) 룰A는 ..