2017-11-01 17 views
1

私はしばらくの間、ワトソンの会話を使っています。最近、ニュース機能で、私はスロットオプションを使用し始めました。私は、工具を使って直接カウンターを使ってループを止めることができるかどうかを知りたいと思います。ハンドラの管理では別の条件を使用してループを停止できますが、カウンタでは停止できません。 誰でもツールでそれを行う方法を知っていますか?スロットのループを止める方法 - ワトソンの会話ツール

答えて

1

あなたは正しいエリアにいます。ハンドラを使用します。

1. counterというコンテキスト変数を作成し、値を1に設定します。 1の理由は、0に設定すると非表示になるためです。ウェルカム部分でこれを行います。

2.スロットを作成します。この例では、条件をinput.text == "go"と設定しています。

3.スロットを通常どおりに設定します。この例でも、私は$person$date(@ sys-personと@ sys-date)を探します。

4.「どのプロンプトにも答えが見つからない場合は:」の最初の応答のハンドラで、 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.ハンドラの2番目のレスポンスは、このJSONに設定します。

{ 
    "output": {}, 
    "context": { 
    "counter": "<? $counter = $counter + 1 ?>" 
    } 
} 

counterの増分です。

6.スロットの主要部分に戻ります。設定した条件:「その後で応答」:ではと

$date != "cancel" or $person != "cancel" 

あなたの値を表示する応答を設定します。この時点でうまくいくはずです。しかし、再びスロットに入ると失敗します。だから、それのためのハンドラを構築することができます。

7.スロットの下に子ノードを作成します。条件ブロックに「最後にジャンプ」するようにスロットを設定します。

8.子ノードで、条件を$counter == 99に設定します。以下に置くあなたのJSONレスポンスの場合:

{ 
    "context": { 
    "counter": 1, 
    "date": null, 
    "person": null 
    }, 
    "output": {} 
} 

これは、カウンタをリセットし、スロット変数を削除します。これにより、スロットに再び入ることができます。 https://pastebin.com/caA2gb5u


本(ない例では)からの、次のとおりです。ここで

は、例えば、会話のワークスペースです。コンテキスト変数ごとに個別のスロットハンドラを使用して、同じ方法でカウンタをリセットすることができます。

関連する問題