0

Dies ist nur relevant für IBM Watson Conversation-Benutzer.Auswahl der SpEL-Sammlung in IBM Conversation

Ich versuche, eine Kontextvariable auf das einzige "gültige" Datum festzulegen, das der Benutzer in der Eigenschaft @ sys-date eingibt. Ein gültiges Datum ist hier nach dem 01.01.1900 und davor. Gemäß der SPEL-Definition sollte ich die Liste mit .?[value > expression] auswählen. Wobei value oder #this der aktuelle Listenpunkt ist.

"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 = [] Alles andere wirft einen Fehler. Ich habe versucht mit #this aber watson übersetzt in (intent == 'this') und entkommen wie \#this wirft einen Fehler vor dem Versuch zu sparen.

IBM sagt, es unterstützt SPEL und Teil der Definition ist Sammlung Auswahl. Sogar in this blog post heißt es, dass diese Art von Feature unterstützt wird. Es gibt jedoch keine Beispiele dafür und alles, was ich versucht habe, führt zu Fehlern.

Hat jemand andere die Auswahl der Sammlung in Watson Conversation verwendet und ein Beispiel angegeben?

Antwort

0

Nicht sicher über Ihre Frage, aber vielleicht können diese Informationen Ihnen helfen.

Versuchen Sie das Datum in einem context Variable zu speichern, zB:

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

Und nach, Ihre Bedingungen machen ...

Um zu sehen, ob die $date in Zukunft verwendet wird:

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

Wenn die Vergangenheit:

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

Obs .: Sie können diese Beispiele in den Bedingungen verwenden. In Ihrem Fall verwenden Sie die Gültigkeitsdaten in , wenn Bot erkennt.

0

Der einzige Weg, ich eine Liste zu filtern, war in der Lage ist es eine Liste von Objekten zu machen . Zum Beispiel:

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

Hoffe, das hilft.

Verwandte Themen