如何将RASA工具包与NodeJS集成

Aay*_*pta 1 mongodb node.js rasa-nlu

我把A聊天机器人作为网页功能.我在后台使用的数据库是mongodb.但由于智力,我想添加RASA而不是mongodb.

我已经理解了rasa文件的设计,但我不理解的是rasa与nodejs的集成.

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/Chatbot_Project";
var bodyParse = require('body-parser');
var urlencodedParser = bodyParse.urlencoded({
    extended: false
});

MongoClient.connect(url, function(err, client) {
    if (err) throw err;
    db = client.db("Chatbot_Project");
    var data = db.collection('Questions').find();
    data.forEach(function(results, err) {
        if (err) {
            console.log(err);
        }
        var string = JSON.stringify(results);
        global.str = string.substring(string.indexOf("Apply") + 9, string.indexOf("Where To Apply") - 3);
    });
});
Run Code Online (Sandbox Code Playgroud)

这就是我用mundodb与节点进行交互的方法.但我应该怎么做才能将'rasa botkit'与节点集成.

Cal*_*ler 7

Rasa NLU和Core可以将自己呈现为HTTP服务器.文档链接如下.一旦你按照他们自己的文档训练他们,你就可以用标准的节点库(如请求或破坏)调用他们的HTTP api.然后用响应做任何你想做的事.

基本

举个例子,你可以在docker中启动Rasa:

docker run -p5000:5000 rasa/rasa_nlu:latest-spacy
Run Code Online (Sandbox Code Playgroud)

然后训练模型,确保使用您的训练数据文件而不是 my_training_data.json

curl -XPOST -H "Content-Type: application/json" localhost:5000/train?project=my_project \
-d @my_training_data.json
Run Code Online (Sandbox Code Playgroud)

完成后,您可以/parse从您选择的节点库中调用端点,如请求:

var request = require('request');

var queryString = { project:'my_project' };
var url = 'http://localhost:5000/parse'

request({url:url, qs: queryString}, function(err, response, body) {
 if(err) { console.log(err); return; }
 console.log("Get response: " + response.statusCode);
});
Run Code Online (Sandbox Code Playgroud)

文档

预制替代品

作为一个注释,有几个UI在Rasa NLU的顶部运行并与数据库和webhooks集成

使用其中一个可能会阻止您编写尽可能多的代码.