维护上下文

时间:2017-05-04 15:58:28

标签: javascript node.js ibm-watson watson-conversation

我试图在Watson Conversation中保持上下文,但它不起作用..我已经尝试了这个answer,但它没有奏效。我试图将机器人集成到html。

我在对话配置中尝试了这个:

var payload = {
workspace_id: workspace,
context: {}}; 
if (req.body) {
 if (req.body.input) {
  payload.input = req.body.input;
}
 if(req.body.context) {
  payload.context = req.body.context;
}}

这在代码中为html / javascript:

var payload = {};
var context = {}; 

function callWatson(){
alert("watson");
$.ajax({
type: 'POST',
dataType: 'JSON',
contentType: "application/json",
url: '/api/message',
data: JSON.stringify(payload)
}).done(function (json) {
if (json.output.text[0]) {
  context = payload.context;
$'<div class="message">+ json.output.text[0]+</div>').appendTo($('.container'));

function insertMessage() {
msg = $('.message-input').val();
$'<div class="message">+ msg+</div>').appendTo($('.container'));

我是编码的初学者,我尝试过处理对话 - 简单的js,但我想要更简单直接的东西..提前感谢!

3 个答案:

答案 0 :(得分:2)

对于像Watson这样的发送消息,使用存储库conversation-simple,您可以简单地添加到您的前端:

Api

您可以在api.js(路径为public / js / api.js)中看到Javascript代码使用getResponsePayload()setResponsePayload以及output函数来发送类似Watson的消息。但是,在索引中,您必须添加文件以供使用,例如line

您可以在我的setResponsePayload中看到我使用textpurrr::map_dbl发送消息,如有效负载显示,如果Watson发送消息。

答案 1 :(得分:0)

无需浪费时间维护上下文只需在ibm watson对话中删除conversation_start对话框(第一个对话框节点),然后输入输入就可以得到确切的输出

答案 2 :(得分:-1)

您可以尝试将此作为起点:https://github.com/snrubnomis/burgerbot

它的目的是尽可能简单。 &#34; sendMessage&#34; function(在burgerbot.js中)进行调用,然后存储返回的上下文,以便在后续调用中使用。