如何在Watson Conversation中提供个性化的问候语?

use*_*430 4 ibm-watson watson-conversation ibm-cloud

在Watson Conversation中定义对话框时,我无法用他/她的名字问候用户,或者我无法检测用户发送的联系号码并将其重新发送给用户.是否可以在Watson Conversation Api中进行.

Sim*_*rty 6

虽然Mitch的回答是正确的,但这是一个做个性化回应的例子.

1.将conversation_start节点文本设置为" Hello <? context.username ?>".

在此输入图像描述

2.在你的代码中,你会做这样的事情(Python).

import json
from watson_developer_cloud import ConversationV1

conversation = ConversationV1(
    username='SERVICE_USERNAME',
    password='SERVICE_PASSWORD',
    version='2016-07-11')

workspace_id = 'WORKSPACE_ID_CONVERSATION'

response = conversation.message(workspace_id=workspace_id, context= {'username':'Simon'})

print json.dumps(response)
Run Code Online (Sandbox Code Playgroud)

3.当你运行它时,它应输出以下内容,"text"部分是用户看到的部分.

{
  "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":{}
}
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是,上下文对象用于维护会话的状态.因此,如果您计划仅使用REST API,则需要在发送之前将上下文变量合并到前面的上下文对象中.您只需要在知道对话需要该上下文的位置执行此操作.