维护上下文

我试图保持在沃森对话的上下文,但它不工作..我已经试过这个答案 ,但它没有奏效。 我正在尝试将bot整合到html中。

我在对话configuration中试过这个:

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,但我想要更简单和直接的东西..在此先感谢!

你可以尝试使用这个作为出发点: https : //github.com/snrubnomis/burgerbot

它旨在尽可能简单。 “sendMessage”函数(在burgerbot.js中)进行调用,然后存储返回的上下文以供后续调用使用。

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

 var latestResponse = Api.getResponsePayload(); var context = latestResponse.context; Api.setResponsePayload('{"output": {"text": ["Hi $name!"]},"context" : ' + JSON.stringify(context) +'}'); 

您可以在api.js(path public / js / api.js)中看到Javascript代码使用ApigetResponsePayload()setResponsePayload函数发送消息,如Watson。 但是,在您的索引中,您必须添加文件才能使用。

你可以在我的setResponsePayload里面看到我使用output和文本来发送消息,就像Watson发送消息时的有效载荷显示一样。

没有必要浪费时间来维护上下文,只需删除ibm watson会话中的conversation_start对话框(第一个对话框节点),然后input,然后您将得到确切的输出