Ibm cloud 如何在Watson对话中进行个性化问候?

Ibm cloud 如何在Watson对话中进行个性化问候?,ibm-cloud,ibm-watson,watson-conversation,Ibm Cloud,Ibm Watson,Watson Conversation,在Watson对话中定义对话时,我无法用用户的姓名问候用户,或者我无法检测到用户发送的联系人号码并将其重新表述给用户。是否可以在Watson对话Api中执行此操作。您是否已经可以访问此信息?您可以将这些值作为上下文发送,并使用$context\u变量引用它们 从用户那里收集信息也是如此。您可以通过应用程序使用正则表达式捕获内容,或者使用一些Spring表达式,您可以在此处看到text.matches: 您可以将其存储为上下文,然后再次使用$context\u变量引用它。 姓名和电话号码等信息是非

在Watson对话中定义对话时,我无法用用户的姓名问候用户,或者我无法检测到用户发送的联系人号码并将其重新表述给用户。是否可以在Watson对话Api中执行此操作。

您是否已经可以访问此信息?您可以将这些值作为上下文发送,并使用$context\u变量引用它们 从用户那里收集信息也是如此。您可以通过应用程序使用正则表达式捕获内容,或者使用一些Spring表达式,您可以在此处看到text.matches: 您可以将其存储为上下文,然后再次使用$context\u变量引用它。
姓名和电话号码等信息是非常开放的,因此如果不使用开放的实体提取引擎就很难捕获,我们正在研究最好的方法来整合这一点

尽管米奇的回答是正确的,但下面是一个个性化回答的例子

一,。将您的
对话\u start
节点文本设置为“
Hello

二,。在您的代码中,您可以这样做(Python)

三,。当您运行此程序时,它应该输出以下内容,“文本”部分是用户看到的内容

{
  "entities":[],
  "intents":[],
  "output":{
    "log_messages":[],
    "nodes_visited":["node_1_1472298724972],
    "text":["Hello Simon"]
  },
  "context":{
    "username":"Simon",
    "conversation_id":"9dc1501b-ac53-4b51-a299-37f5314ebf89",
    "system":{
      "dialog_turn_counter":1,
      "dialog_stack":["root"],
      "dialog_request_counter":1
    }
  },
  "input":{}
}

需要注意的一点是,上下文对象用于维护会话的状态。因此,如果您计划只使用RESTAPI,那么您需要在发送之前将上下文变量合并到前面的上下文对象中。您只需要在您确实知道对话需要该上下文的情况下执行此操作

要获取用户的输入,请使用:

"context": {"yourVariable": "<?input.text?>"}

当你说“在你的代码中你会做这样的事情(Python)”“我应该在哪里包含这个代码片段?另外,有没有办法不硬编码用户名?(我看到你有硬编码的Simon),而是让用户输入他的名字并使用它?”。另外,我是BlueMix的新手,例如,它是硬编码的,但是您可以通过应用程序加载它。我应该在哪里编写python代码段?我应该在我的电脑中本地运行它,还是应该将它集成到对话服务?如果我要集成到对话服务,我应该如何进行?如果您可以提供指向任何教程的链接,它将是great@AthifShaffy我的博客上有一些例子。但您也可以查看对话示例:
"context": {"yourVariable": "<?input.text?>"}
"output": {"text": "You entered this $yourVariable"}