维护上下文
我试图保持在沃森对话的上下文,但它不工作..我已经试过这个答案 ,但它没有奏效。 我正在尝试将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代码使用Api
和getResponsePayload()
和setResponsePayload
函数发送消息,如Watson。 但是,在您的索引中,您必须添加文件才能使用。
你可以在我的setResponsePayload里面看到我使用output
和文本来发送消息,就像Watson发送消息时的有效载荷显示一样。
没有必要浪费时间来维护上下文,只需删除ibm watson会话中的conversation_start对话框(第一个对话框节点),然后input,然后您将得到确切的输出