Botkit(https://github.com/howdyai/botkit/blob/master/readme-facebook.md)上的文档完全没有意义:
// if you are already using Express, you can use your own server instance...
// see "Use BotKit with an Express web server"
controller.setupWebserver(process.env.port,function(err,webserver) {
controller.createWebhookEndpoints(controller.webserver, bot, function() {
console.log('This bot is online!!!');
});
});
Run Code Online (Sandbox Code Playgroud)
此外,没有自定义网络服务器(如快递),Botkit不提供设置自定义本地网址的方法(相反,它只选择0.0.0.0,这是不切实际的).
是否有人成功组装app = require('express')();
到setupWebserver
Botkit(特别是Messenger).如果是,请提供完整的代码.
我正在使用 rasa 学习机器人开发。我采用了简单的银行系统用例。以下是短流程:
I want to apply for loan
Home loan Car Loan Personal Loan
**User comes again after some days**
Hey, you inquired about the loan previously, what is the status?
Bought from another bank
Which bank?
Axis Bank
What interest rate did you buy the loan at?
5%
Run Code Online (Sandbox Code Playgroud)
假设用户问“我想申请贷款”,这样我就可以对意图进行分类并提取实体并相应地回复用户。但是,如果用户说“Axis Bank”,我应该如何跟踪他回答为“Axis Bank”的哪个问题以及我的下一个问题或答案是什么?
我搜索了“如何跟踪对话状态?”
我遇到了 [ https://github.com/RasaHQ/rasa_nlu/issues/303][1]这个链接 因为他们提到
我认为这不应该是 RASA 目标 IMO 的一部分:NLU 本身就是一个非常庞大且复杂的话题。但是你可以使用一个特定的框架,比如 botkit。
但是在 rasa-core 中有一个插槽选项(在对话期间跟踪的信息(例如用户年龄))
在下面的链接中提到 Rasa core 和 Rasa nlu 之间的区别
Rasa核心用于引导对话流程,而Rasa nlu是理解和处理文本以提取信息(实体)
有人可以帮助我了解rasa-core …
我在哪里可以添加勾选手柄?把垃圾邮件发给日志真是太烦人了
我使用Howdy.ai的Botkit作为一个简单的bot应用程序,让它在VPS上的node.js上运行.基本上,我从这里定制Slack应用程序的示例,现在我正在努力保持机器人活着 - 在一些未定义的时间之后,Slack API的RTM通道关闭,我找不到正确的重新连接方式.到目前为止我试过了
controller.on('rtm_close',function(bot) {
console.log('** The RTM api just closed. Trying reconnect...');
// Try a reconnect
bot.startRTM(function(err) {
if (!err) {
trackBot(bot);
} else {
console.log('** The RTM api couldn\'t be reopened. It\'s closed now.');
}
});
});
Run Code Online (Sandbox Code Playgroud)
该trackBot
函数控制日志记录:
function trackBot(bot) {
_bots[bot.config.token] = bot;
}
Run Code Online (Sandbox Code Playgroud)
我似乎错过了整个方法的工作原理.任何帮助都非常感谢!
我正在构建一个需要监听环境关键字的slackbot,但检查以确保特定用户编写了关键字.我正试图用这个来测试命令:
controller.hears(['texas'], 'ambient', function(bot, message) {
username = users.info.name;
bot.reply(message, username);
});
Run Code Online (Sandbox Code Playgroud)
最后,我想运行条件逻辑以确保用户名与我希望机器人响应的用户匹配.但这不起作用; 我使用API错了吗?如何检索用户名,如何检查以确保用户名正确?
我有一个在免费套餐中运行在heroku上的机器人,我正在寻找一种方法来在Slack中收到用户的消息时唤醒应用程序.
我的Procfile中有一个Web worker:
web: npm start
Run Code Online (Sandbox Code Playgroud)
我还设置了一个webserver和botkit:
var app = express();
var port = process.env.PORT || 3000;
app.listen(port, function (err) {
if (err) throw err;
console.log('Bot up!');
});
var controller = Botkit.slackbot({
debug: false
});
var bot = controller.spawn({
token: botConfig.SLACK_BOT_KEY
}).startRTM();
Run Code Online (Sandbox Code Playgroud)
机器人正常运行,并在30分钟不活动后空转
2016-09-27T18:55:18.013318+00:00 app[web.1]: info: ** API CALL: https://slack.com/api/rtm.start
2016-09-27T18:55:18.027341+00:00 app[web.1]: Bot up!
2016-09-27T18:55:18.253156+00:00 app[web.1]: notice: ** BOT ID: bot ...attempting to connect to RTM!
2016-09-27T18:55:18.298822+00:00 app[web.1]: notice: RTM websocket opened
2016-09-27T18:55:18.346493+00:00 heroku[web.1]: State changed from starting to up …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 slack api https://api.slack.com/methods/channels.join创建一个新频道,但收到此响应
info: ** API CALL: https://slack.com/api/channels.join
Response : { ok: false, error: 'user_is_bot' }
Run Code Online (Sandbox Code Playgroud)
我试过这个
controller.hears('hello', ['direct_message', 'direct_mention', 'mention'], function (bot, message) {
bot.api.channels.join({'name':'nag'}, function (err, response) {
console.log("Response : ",response);
})
});
Run Code Online (Sandbox Code Playgroud)
如果我弄错了,请告诉我。我已经开始学习 slack api。