나는 꽤 오랫동안 Watson Conversation을 사용 해왔다. 최근 뉴스 기능을 통해 슬롯 옵션을 사용하기 시작했습니다. 툴링에 카운터가있는 루프를 멈출 수 있는지 알고 싶습니다. 핸들러를 관리하는 데 다른 조건을 사용하여 루프를 중지 할 수는 있지만 카운터는 사용할 수 없습니다. 툴을 사용하는 사람은 누구입니까?슬롯에서 루프를 멈추는 방법 - Watson Conversation 툴링
답변
그래서 올바른 지역에 있습니다. 핸들러를 사용합니다.
1. counter
이라는 컨텍스트 변수를 만들고 1
값으로 설정하십시오. 1에 대한 이유는 그것을 0으로 설정하면 보이지 않게 할 수 있기 때문입니다. 환영 파트에서 이것을하십시오.
2. 슬롯을 만듭니다. 예를 들어, 조건을 input.text == "go"
으로 설정합니다.
3. 슬롯을 정상적으로 설정하십시오. 다시 예를 들어, 내가 $person
및 $date
(@ sys-person 및 @ sys-date)
을 찾습니다. JSON 대상 :
{
"conditions": "$counter > 3",
"output": {
"text": {
"values": [
"You have gotten the question wrong too many times."
],
"selection_policy": "sequential"
}
},
"context": {
"date": "cancel",
"person": "cancel",
"counter": 99
}
}
처리기가 3 회 클릭되면 활성화됩니다. counter
을 99
(나중에 표시)으로 설정하고 원하는 컨텍스트 변수를 "cancel"
으로 설정하여 슬롯을 종료하십시오.
5. 핸들러의 두 번째 응답을이 JSON으로 설정하십시오.
{
"output": {},
"context": {
"counter": "<? $counter = $counter + 1 ?>"
}
}
이 값은 counter
에 해당합니다.
6. 슬롯의 주요 부분으로 돌아갑니다. '다음에서 응답 :'에서 조건을 :
$date != "cancel" or $person != "cancel"
으로 설정하고 값을 표시하도록 응답을 설정합니다. 이 시점에서 작동해야합니다. 그러나 슬롯에 다시 들어가면 실패합니다. 그래서 그것을위한 처리기를 만들 수 있습니다.
7. 슬롯 아래에 하위 노드를 만듭니다. 조건 블록에 "마침내 점프"하도록 슬롯을 설정하십시오.
8. 하위 노드에서 조건을 $counter == 99
으로 설정하십시오. 이 카운터를 재설정하고, 슬롯 변수를 제거
{
"context": {
"counter": 1,
"date": null,
"person": null
},
"output": {}
}
: 다음에 넣어 당신의 JSON 응답하십시오. 이렇게하면 슬롯을 다시 입력 할 수 있습니다. https://pastebin.com/caA2gb5u
이 (안 예)이에서에 따르십시오 : 여기
는 예를 들어 대화의 작업 공간입니다. 각 컨텍스트 변수에 대한 개별 슬롯 핸들러를 사용하여 동일한 방식으로 카운터를 재설정 할 수 있습니다.