通过上下文将Unity C#字符串发送给Watson Conversation / Assistant

时间:2018-04-05 11:43:51

标签: c# unity3d ibm-watson watson watson-conversation

如何从Unity C#向Watson Conversation服务发送字符串?我知道我必须通过上下文来完成它,但我不知道如何将字符串添加到上下文或访问上下文来执行此操作。之后我需要将上下文发送到Watson会话服务,所以我可以使用字符串作为上下文变量的值。有人可以帮助我,或解释如何使用Unity自己的变量将上下文发送给Watson Conversation吗?

这是我到目前为止的脚本:

import java.util.Scanner;

public class howToDoRepeatedSequanceCheck {

  public void repeatedTests() {

      String whole;
      int inputLength,i;

      Scanner keyboard = new Scanner(System.in);
      System.out.println("Enter an input string:");
      whole = keyboard.nextLine();

      while(!whole.equals("quit")) {

        whole=whole.replaceAll("\\s+","");
        inputLength = whole.length();
        boolean isInOrder = true;
        i = 0;
        while(isInOrder && i<inputLength-1 ) {
          if(whole.charAt(i)<whole.charAt(i+1)) {
//            System.out.println("ok " + whole.charAt(i)+ " < " +whole.charAt(i+1));
          }else {
//            System.out.println("error");
            isInOrder = false;
          }
          i++;
        }

        if(isInOrder == true) {
          System.out.println("The input is in order");
        }else {
          System.out.println("The input is out of order");
        }
        System.out.println();

        System.out.println("Enter an input string:");
        whole = keyboard.nextLine();
      }
      System.out.println("Goodbye");

  }

}

1 个答案:

答案 0 :(得分:1)

如果我正确地读取你的代码,在HandleMessageCallback中,你会看到你在反序列化后将你的上下文作为字典处理。

var context = dict["context"] as Dictionary<string, object>;

您需要将新的上下文变量添加到上下文字典中。

您可以使用添加方法

context.Add("newItem", "Value here");

以下是一些有关使用词典的Unity特定文档:https://unity3d.com/learn/tutorials/modules/intermediate/scripting/lists-and-dictionaries