我使用来自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。" /"你好,约翰。"
答案 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 },
...