0

これはIBM Watson会話ユーザーにのみ関連しています。IBM会話のSpELコレクションの選択

ユーザーが@sys-dateプロパティに入力する唯一の「有効な」日付にコンテキスト変数を設定しようとしています。有効な日付は、1900年1月1日以降、今までです。 SpELの定義によると、.?[value > expression]でリストを選択する必要があります。 valueまたは#thisが現在のリスト項目です。他

"context": { 
    "date": "<? @sys-date and @sys-date.values ? @sys-date.values.?[value.after('1900-01-01') and value.before(now())] : null ?>", 
    "thisWorks": "<? {0,1,2,3,4}.?[false] ?>", 
    "thisDoesNot": "<? {0,1,2,3,4}.?[value > 1] ?>" 
} 

thisWorks = [] すべてがエラーをスローします。 #thisを使用しようとしましたが、ワトソンは(intent == 'this')に変換され、\#thisのようなエスケープは保存する前にエラーをスローします。

IBMはSpELをサポートしており、定義の一部はコレクション選択であると言います。 this blog postでも、このタイプの機能はサポートされています。しかし、その例はありません。私が試したことのすべてがエラーになります。

他の誰かがワトソン会話でコレクションの選択を使用していますか?

答えて

0

あなたの質問は不明ですが、この情報が役立つかもしれません。

は例えば、1つのcontext変数に日付を保存しよう:

{ 
    "context": { 
    "date": <? @sys-date ?>; 
    }, 
    "output": { 
    "text": { 
     "values": [ 
     "Are you sure about this $date?" 
     ], 
     "selection_policy": "sequential" 
    } 
    } 
} 

そして後、あなたの条件を作る...

$dateは、将来使用されているかどうかを確認するには、次の

if bot recognizes now().before($date) or @sys-date.before($date) 
response "Ok, the date is before $date." 

過去の場合:

now().after($date) or @sys-date.after($date) 
response "Ok, the date is after $date, in this case is one invalid date" 

出所:この例は、条件内で使用できます。あなたのケースでは、が認識された場合はに '有効期限'の日付を使用します。

  • はワトソンの会話で、よりmethods to process values
  • は私がリストをフィルタリングすることができた唯一の方法は、それのオブジェクトのリストにすることですワトソン会話
0

にシステム・エンティティ@sys-dateについての詳細を見ます。例:

<? {1:1, 2:2, 3:3 }.?[value < 3 ].![value] ?> 

これは役立ちます。

関連する問題