维护上下文

Maintain Context

我试图在 Watson Conversation 中保留上下文,但它不起作用。我已经尝试过此 ,但它不起作用。我正在尝试将机器人集成到 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,但我想要更简单直接的东西。提前致谢!

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

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

您可以看到 Javascript 代码在 api.js 中使用 ApigetResponsePayload() 以及 setResponsePayload 函数(路径 public/js/api.js)像 Watson 一样发送消息。但是,在您的索引中,您必须添加文件以供使用 line.

您可以在我的 setResponsePayload 中看到我使用 outputtext 发送消息,如 Watson 发送消息时的负载显示。

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

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

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