2017-11-01 5 views
1

나는 꽤 오랫동안 Watson Conversation을 사용 해왔다. 최근 뉴스 기능을 통해 슬롯 옵션을 사용하기 시작했습니다. 툴링에 카운터가있는 루프를 멈출 수 있는지 알고 싶습니다. 핸들러를 관리하는 데 다른 조건을 사용하여 루프를 중지 할 수는 있지만 카운터는 사용할 수 없습니다. 툴을 사용하는 사람은 누구입니까?슬롯에서 루프를 멈추는 방법 - Watson Conversation 툴링

답변

1

그래서 올바른 지역에 있습니다. 핸들러를 사용합니다.

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 회 클릭되면 활성화됩니다. counter99 (나중에 표시)으로 설정하고 원하는 컨텍스트 변수를 "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


이 (안 예)이에서에 따르십시오 : 여기

는 예를 들어 대화의 작업 공간입니다. 각 컨텍스트 변수에 대한 개별 슬롯 핸들러를 사용하여 동일한 방식으로 카운터를 재설정 할 수 있습니다.