我做了一个聊天机器人作为网页功能。我在后台使用的数据库是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集成在一起。

最佳答案

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);
});


文献资料


Rasa NLU
Rasa Core


预建替代品

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


Articulate(我是他们的团队的成员)
Rasa UI
Rasa Talk


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

关于node.js - 如何将RASA套件与NodeJS集成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51490995/

10-12 16:42