0

J'utilise Watson Conversation et j'essaie de définir de manière conditionnelle une variable de contexte. En réponse à une question que nous posons, certaines personnes disent «oui», d'autres disent «non» et d'autres «non, mais mon mari a» (ou des variantes similaires). J'ai l'entité @other_person qui reconnaît "mari" (et épouse, et ami, etc.). Ce que j'essaie de faire est de définir une variable de contexte $ mentionother à true si elles mentionnent une autre personne, et false sinon.
Jusqu'à présent, j'ai ceci, mais ça ne marche pas et je n'arrive pas à le comprendre. Je n'ai pas été en mesure de trouver une bonne documentation à ce sujet, donc je peux être loin. Est-ce que quelqu'un peut fournir de l'aide ici, et/ou me dire où chercher une meilleure documentation à ce sujet?
Je ne suis pas sûr à 100% quelle langue regarder sous; Je pense que j'ai lu ceci est Java mais je suis hors de la pratique donc pas positif.Définir conditionnellement un contexte dans Watson Conversation

Répondre

1

les variables conditionnelles fonctionnent comme ceci:

variable x = (expression)? valeur si elle est vraie: valeur si elle est fausse

essayez ceci: "? (@ other_person == null) false: true"

puisque vous n'êtes pas sûr de ce que vous utilisez à côté de JSON je ne suis pas 100% positif cela fonctionne.

source: https://www.tutorialspoint.com/java/java_basic_operators.htm

+0

Merci pour la suggestion. Cela crache malheureusement le tout entre les citations comme une chaîne –

1

Dans ce cas, @R. Timmer est correct. Mais vous devez définir la condition à l'intérieur du <? ?>, donc, est essentiellement ceci:

{ 
    "context": { 
    "otherPerson": "<? (@other_person==null)? false : true ?>" 
    }, 
    "output": { 
    "text": { 
     "values": [ 
     "Now you can see $otherPerson true or false" 
     ], 
     "selection_policy": "sequential" 
    } 
    } 
} 

S'il vous plaît, pensez à marquer la réponse pour R. Timmer, je viens arrondissait ses réponses.