如何将RASA套件与NodeJS集成

时间:2018-07-24 05:22:31

标签: node.js mongodb rasa-nlu

我已将聊天机器人作为网页功能。我在后台使用的数据库是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);
    });
});

这是我将mongodb与node集成的工作。但是我应该怎么做才能将'rasa botkit'与node集成在一起。

2 个答案:

答案 0 :(得分:5)

Rasa NLU和Core可以将自己显示为HTTP服务器。下面的文档链接。在按照他们自己的文档培训了他们之后,您就可以使用标准节点库(例如request或wreck)来调用他们的HTTP api。然后对响应做任何您想做的事情。

基础

作为示例,您可以在docker中启动Rasa:

docker run -p5000:5000 rasa/rasa_nlu:latest-spacy

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

curl -XPOST -H "Content-Type: application/json" localhost:5000/train?project=my_project \
-d @my_training_data.json

完成后,您可以从您选择的节点库中调用/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);
});

文档

预构建替代方案

请注意,有几个UI在Rasa NLU的顶部运行,并与数据库和Webhooks集成

使用其中之一可能会使您不必编写太多代码。

答案 1 :(得分:0)

有一个Node.js包“ rasa-api”,它使您可以方便地访问Rasa HTTP API:https://github.com/Hexastack/rasa-api

您只需执行npm install rasa-api并开始使用它;)