如何从对话框Node.js外部接收watson中的用户名

时间:2018-06-14 18:56:56

标签: json node.js watson

我使用来自IBM的带有Node.js的webApplication创建一个聊天机器人。

聊天机器人将迁移到博客"在需要登录的Intranet中。所以我想在聊天开始之前将用户名作为上下文传递给Watson,从网站上获取它。

通过代码在json上输入新的上下文。

  "context": {
    "conversation_id": "8a433bbf-8e27-42ba-bdac-9341f5b16fcf",
    "system": {
      "dialog_stack": [
        {
          "dialog_node": "root"
        }
      ],
      "dialog_turn_counter": 1,
      "dialog_request_counter": 1,
      "_node_output_map": {
        "node_1_1528906594423": [
          0
        ],
        "node_14_1527085355836": [
          0,
          0
        ]
      },
      "branch_exited": true,
      "branch_exited_reason": "completed"
    },
    "timezone": "America/Sao_Paulo",
    "nome_bot": "Malu"
    "username": variable
  }

所以最后,对话开始于:

用户以约翰身份登录。

Watson:"您好,$ username。" /"你好,约翰。"

1 个答案:

答案 0 :(得分:0)

解决了问题! 在“ public / script.js”中,代码​​将调用.json,因此我们需要在此处进行更改!

// Calling server and get the watson output
const getWatsonMessageAndInsertTemplate = async (text = '') => {
  const uri = 'https://localhost/conversation/';
  const response = await (await fetch(uri, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      text,
      context,
    }),
  })).json();

因此,如果我们将从数据库中获取用户名的变量添加到上下文中,并将其放在上下文“用户名”中,结果将是预期的!

...
context: { 'username': variable },
...