- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 Meteor 项目中使用 RiveScript。但我无法让事情运行。我通过 npm 安装 RiveScript,然后按照 npm 站点上的指南进行操作。
读取 RiveScript 模块并为其提供用户输入的文件。
var RiveScript = require("RiveScript");
var bot;
function loadingDone(files) {
console.log("ok")
}
function loadingError(files, error) {
console.log("error");
}
Meteor.startup(function () {
bot = new RiveScript({utf8: true});
bot.loadDirectory("brain", loadingDone, loadingError);
bot.sortReplies();
});
Meteor.methods({
'user-input': function (input) {
return bot.reply("local-user", input);
}
});
我收到此错误(在服务器上):
(STDERR) User local-user was in an empty topic named 'random'
bot.reply()函数的返回消息是:
ERR: No default topic 'random' was found!
最佳答案
这里是 RiveScript 作者。
代码中的一个问题是,需要在回复加载完成后调用 sortReplies()
函数(在 loadingDone
中)处理程序)。
var RiveScript = require("RiveScript");
var bot;
function loadingDone(files) {
console.log("ok");
bot.sortReplies();
}
function loadingError(files, error) {
console.log("error");
}
Meteor.startup(function () {
bot = new RiveScript({utf8: true});
bot.loadDirectory("brain", loadingDone, loadingError);
});
Meteor.methods({
'user-input': function (input) {
return bot.reply("local-user", input);
}
});
如果之后仍然遇到问题,请尝试确保 RiveScript 在 Meteor 初始化之前已完全加载回复集。查看您的代码,应该没问题,因为 bot
变量是全局变量,并且如果 user-input
处理程序没有立即被调用,机器人此时应该已准备就绪。
要尝试的另一件事是验证回复是否已加载;打开 Debug模式并查看它是否打印正在解析的 RiveScript 文件的内容;如果不是,则可能意味着它从错误的目录加载并且找不到任何要解析的 *.rive
文件。
关于node.js - RiveScript 与 Meteor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35959739/
我的机器人将用户名存储在数据库中,并且数据库不时向 session 发送一条消息“setname username”。示例脚本: + setname * - > + (what is my name|
我正在使用 Rivescript 开发聊天机器人,并尝试在条件响应中使用关键字触发器。 在tutorial在网站上,解释说您可以使用... [*] optionals to ignore parts
我想在 Meteor 项目中使用 RiveScript。但我无法让事情运行。我通过 npm 安装 RiveScript,然后按照 npm 站点上的指南进行操作。 读取 RiveScript 模块并为其
我是 rivescript 的新手,我想在 RiveScript 的 javascript 对象宏中发出同步 ajax get 请求。如果有人能提供帮助,我将不胜感激。谢谢 最佳答案 这就是您的做法。
我是一名优秀的程序员,十分优秀!