@tiledesk/tiledesk-server 2.4.72 → 2.4.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/package.json +2 -2
- package/routes/faq.js +6 -6
- package/routes/faq_kb.js +24 -3
- package/routes/kbsettings.js +34 -3
- package/services/openaiService.js +2 -2
- package/services/trainingService.js +6 -0
- package/test/faqkbRoute.js +47 -0
- package/test/kbsettingsRoute.js +5 -5
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tiledesk/tiledesk-server",
|
3
3
|
"description": "The Tiledesk server module",
|
4
|
-
"version": "2.4.
|
4
|
+
"version": "2.4.73",
|
5
5
|
"scripts": {
|
6
6
|
"start": "node ./bin/www",
|
7
7
|
"pretest": "mongodb-runner start",
|
@@ -44,7 +44,7 @@
|
|
44
44
|
"@tiledesk/tiledesk-kaleyra-proxy": "^0.1.7",
|
45
45
|
"@tiledesk/tiledesk-messenger-connector": "0.1.11",
|
46
46
|
"@tiledesk/tiledesk-rasa-connector": "^1.0.10",
|
47
|
-
"@tiledesk/tiledesk-tybot-connector": "^0.2.
|
47
|
+
"@tiledesk/tiledesk-tybot-connector": "^0.2.17",
|
48
48
|
"@tiledesk/tiledesk-whatsapp-connector": "^0.1.52",
|
49
49
|
"@tiledesk/tiledesk-telegram-connector": "^0.1.8",
|
50
50
|
"amqplib": "^0.5.5",
|
package/routes/faq.js
CHANGED
@@ -122,7 +122,7 @@ router.post('/uploadcsv', upload.single('uploadFile'), function (req, res, next)
|
|
122
122
|
})
|
123
123
|
.on("end", function () {
|
124
124
|
winston.debug("PARSE DONE");
|
125
|
-
faqBotEvent.emit('faq_train.create', id_faq_kb)
|
125
|
+
//faqBotEvent.emit('faq_train.create', id_faq_kb)
|
126
126
|
res.json({ success: true, msg: 'CSV Parsed' });
|
127
127
|
})
|
128
128
|
.on("error", function (err) {
|
@@ -191,7 +191,7 @@ router.post('/', function (req, res) {
|
|
191
191
|
winston.debug('1. ID FAQKB GET IN THE OBJECT OF NEW FAQ CREATED ', savedFaq.id_faq_kb);
|
192
192
|
|
193
193
|
faqBotEvent.emit('faq.create', savedFaq);
|
194
|
-
faqBotEvent.emit('faq_train.create', req.body.id_faq_kb)
|
194
|
+
//faqBotEvent.emit('faq_train.create', req.body.id_faq_kb)
|
195
195
|
|
196
196
|
res.json(savedFaq);
|
197
197
|
|
@@ -317,7 +317,7 @@ router.put('/:faqid', function (req, res) {
|
|
317
317
|
}
|
318
318
|
|
319
319
|
faqBotEvent.emit('faq.update', updatedFaq);
|
320
|
-
faqBotEvent.emit('faq_train.update', updatedFaq.id_faq_kb);
|
320
|
+
//faqBotEvent.emit('faq_train.update', updatedFaq.id_faq_kb);
|
321
321
|
|
322
322
|
res.status(200).send(updatedFaq);
|
323
323
|
})
|
@@ -334,7 +334,7 @@ router.put('/:faqid', function (req, res) {
|
|
334
334
|
}
|
335
335
|
|
336
336
|
faqBotEvent.emit('faq.update', updatedFaq);
|
337
|
-
faqBotEvent.emit('faq_train.update', updatedFaq.id_faq_kb);
|
337
|
+
//faqBotEvent.emit('faq_train.update', updatedFaq.id_faq_kb);
|
338
338
|
|
339
339
|
res.status(200).send(updatedFaq);
|
340
340
|
// updateRemoteFaq(updatedFaq)
|
@@ -373,7 +373,7 @@ router.delete('/:faqid', function (req, res) {
|
|
373
373
|
winston.debug('Deleted FAQ ', faq);
|
374
374
|
|
375
375
|
faqBotEvent.emit('faq.delete', faq);
|
376
|
-
faqBotEvent.emit('faq_train.delete', faq.id_faq_kb);
|
376
|
+
//faqBotEvent.emit('faq_train.delete', faq.id_faq_kb);
|
377
377
|
|
378
378
|
res.status(200).send(faq);
|
379
379
|
|
@@ -387,7 +387,7 @@ router.delete('/:faqid', function (req, res) {
|
|
387
387
|
winston.debug('Deleted FAQ ', faq);
|
388
388
|
|
389
389
|
faqBotEvent.emit('faq.delete', faq);
|
390
|
-
faqBotEvent.emit('faq_train.delete', faq.id_faq_kb);
|
390
|
+
//faqBotEvent.emit('faq_train.delete', faq.id_faq_kb);
|
391
391
|
|
392
392
|
res.status(200).send(faq);
|
393
393
|
|
package/routes/faq_kb.js
CHANGED
@@ -130,6 +130,27 @@ router.post('/train', function (req, res) {
|
|
130
130
|
|
131
131
|
});
|
132
132
|
|
133
|
+
router.post('/train/:id_faq_kb', async (req, res) => {
|
134
|
+
let id_faq_kb = req.params.id_faq_kb;
|
135
|
+
|
136
|
+
Faq_kb.findById(id_faq_kb, (err, chatbot) => {
|
137
|
+
if (err) {
|
138
|
+
return res.status(400).send({ success: false, error: err })
|
139
|
+
}
|
140
|
+
if (!chatbot) {
|
141
|
+
return res.status(404).send({ sucess: false, error: "Chatbot not found" });
|
142
|
+
}
|
143
|
+
if (chatbot.intentsEngine === 'tiledesk-ai') {
|
144
|
+
faqBotEvent.emit('faq_train.train', id_faq_kb);
|
145
|
+
return res.status(200).send({ success: true, message: "Training started"})
|
146
|
+
} else {
|
147
|
+
return res.status(200).send({ success: true, message: "Trained not started", reason: "Training available for intentsEngine equal to tiledesk-ai only" })
|
148
|
+
}
|
149
|
+
})
|
150
|
+
|
151
|
+
|
152
|
+
})
|
153
|
+
|
133
154
|
|
134
155
|
router.post('/askbot', function (req, res) {
|
135
156
|
|
@@ -696,7 +717,7 @@ router.post('/importjson/:id_faq_kb', upload.single('uploadFile'), async (req, r
|
|
696
717
|
}
|
697
718
|
|
698
719
|
})
|
699
|
-
faqBotEvent.emit('faq_train.importedall', id_faq_kb);
|
720
|
+
//faqBotEvent.emit('faq_train.importedall', id_faq_kb);
|
700
721
|
return res.status(200).send({ success: true, msg: "Intents imported successfully" })
|
701
722
|
|
702
723
|
} else {
|
@@ -788,7 +809,7 @@ router.post('/importjson/:id_faq_kb', upload.single('uploadFile'), async (req, r
|
|
788
809
|
|
789
810
|
})
|
790
811
|
}
|
791
|
-
faqBotEvent.emit('faq_train.importedall', savedEditedFaq_kb._id);
|
812
|
+
//faqBotEvent.emit('faq_train.importedall', savedEditedFaq_kb._id);
|
792
813
|
return res.status(200).send(savedEditedFaq_kb);
|
793
814
|
})
|
794
815
|
|
@@ -914,7 +935,7 @@ router.post('/importjson/:id_faq_kb', upload.single('uploadFile'), async (req, r
|
|
914
935
|
})
|
915
936
|
|
916
937
|
}
|
917
|
-
faqBotEvent.emit('faq_train.importedall', id_faq_kb);
|
938
|
+
//faqBotEvent.emit('faq_train.importedall', id_faq_kb);
|
918
939
|
return res.send(updatedFaq_kb);
|
919
940
|
|
920
941
|
})
|
package/routes/kbsettings.js
CHANGED
@@ -132,12 +132,43 @@ router.post('/startscrape', async (req, res) => {
|
|
132
132
|
|
133
133
|
router.post('/checkstatus', async (req, res) => {
|
134
134
|
|
135
|
-
let data = req.body;
|
136
|
-
winston.debug("/checkstatus
|
135
|
+
// let data = req.body;
|
136
|
+
winston.debug("/checkstatus req.body: ", req.body);
|
137
|
+
|
138
|
+
let full_url = req.body.full_url;
|
139
|
+
let data = {
|
140
|
+
url_list: [ req.body.full_url ]
|
141
|
+
}
|
137
142
|
|
138
143
|
openaiService.checkStatus(data).then((resp) => {
|
139
144
|
winston.debug("checkStatus resp: ", resp.data);
|
140
|
-
|
145
|
+
winston.debug("checkStatus resp: ", resp.data);
|
146
|
+
winston.debug("checkStatus resp: ", resp.data[full_url]);
|
147
|
+
|
148
|
+
let response = resp.data[full_url];
|
149
|
+
|
150
|
+
let return_data = {
|
151
|
+
status_message: response.status_message
|
152
|
+
}
|
153
|
+
|
154
|
+
if (response.status_code === 3) {
|
155
|
+
return_data.status_code = 2;
|
156
|
+
}
|
157
|
+
|
158
|
+
if (response.status_code === 1 || response.status_code === 2 ) {
|
159
|
+
return_data.status_code = 1;
|
160
|
+
}
|
161
|
+
|
162
|
+
if (response.status_code === 0) {
|
163
|
+
return_data.status_code = 0;
|
164
|
+
}
|
165
|
+
|
166
|
+
if (!response.status_code) {
|
167
|
+
return_data.status_code = 0;
|
168
|
+
}
|
169
|
+
|
170
|
+
|
171
|
+
res.status(200).send(return_data);
|
141
172
|
}).catch((err) => {
|
142
173
|
winston.error("checkstatus err: ", err);
|
143
174
|
let status = err.response.status;
|
@@ -62,7 +62,7 @@ class OpenaiService {
|
|
62
62
|
return new Promise((resolve, reject) => {
|
63
63
|
|
64
64
|
axios({
|
65
|
-
url: kb_endpoint + "/scrape
|
65
|
+
url: kb_endpoint + "/scrape",
|
66
66
|
headers: {
|
67
67
|
'Content-Type': 'application/json'
|
68
68
|
},
|
@@ -83,7 +83,7 @@ class OpenaiService {
|
|
83
83
|
return new Promise((resolve, reject) => {
|
84
84
|
|
85
85
|
axios({
|
86
|
-
url: kb_endpoint + "/qa
|
86
|
+
url: kb_endpoint + "/qa",
|
87
87
|
headers: {
|
88
88
|
'Content-Type': 'application/json'
|
89
89
|
},
|
@@ -89,6 +89,12 @@ class TrainingService {
|
|
89
89
|
start() {
|
90
90
|
winston.info('TrainingService start');
|
91
91
|
|
92
|
+
faqBotEvent.on('faq_train.train', (id_faq_kb) => {
|
93
|
+
setImmediate(() => {
|
94
|
+
trainingService.train('faq_train.train', id_faq_kb);
|
95
|
+
})
|
96
|
+
})
|
97
|
+
|
92
98
|
faqBotEvent.on('faq_train.importedall', (id_faq_kb) => {
|
93
99
|
setImmediate(() => {
|
94
100
|
trainingService.train('faq.importedall', id_faq_kb);
|
package/test/faqkbRoute.js
CHANGED
@@ -73,6 +73,53 @@ describe('FaqKBRoute', () => {
|
|
73
73
|
|
74
74
|
}).timeout(20000);
|
75
75
|
|
76
|
+
it('train with tiledesk-ai qwerty', (done) => {
|
77
|
+
var email = "test-signup-" + Date.now() + "@email.com";
|
78
|
+
var pwd = "pwd";
|
79
|
+
|
80
|
+
userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
|
81
|
+
projectService.create("test-faqkb-create", savedUser._id).then((savedProject) => {
|
82
|
+
|
83
|
+
chai.request(server)
|
84
|
+
.post('/' + savedProject._id + '/faq_kb')
|
85
|
+
.auth(email, pwd)
|
86
|
+
.send({ "name": "testbot", type: "internal", template: "example", intentsEngine: "tiledesk-ai" })
|
87
|
+
.end((err, res) => {
|
88
|
+
if (log) {
|
89
|
+
console.log("res.body", res.body);
|
90
|
+
}
|
91
|
+
res.should.have.status(200);
|
92
|
+
res.body.should.be.a('object');
|
93
|
+
expect(res.body.name).to.equal("testbot");
|
94
|
+
var id_faq_kb = res.body._id;
|
95
|
+
|
96
|
+
chai.request(server)
|
97
|
+
.get('/' + savedProject._id + '/faq?id_faq_kb=' + id_faq_kb)
|
98
|
+
.auth(email, pwd)
|
99
|
+
.end((err, res) => {
|
100
|
+
console.log("faq_list: ", res.body);
|
101
|
+
res.should.have.status(200);
|
102
|
+
res.body.should.be.an('array').that.is.not.empty;
|
103
|
+
|
104
|
+
chai.request(server)
|
105
|
+
.post('/' + savedProject._id + '/faq_kb/train/' + id_faq_kb)
|
106
|
+
.auth(email, pwd)
|
107
|
+
.send({})
|
108
|
+
.end((err, res) => {
|
109
|
+
console.log("train res.body: ", res.body);
|
110
|
+
})
|
111
|
+
|
112
|
+
done();
|
113
|
+
|
114
|
+
})
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
});
|
119
|
+
})
|
120
|
+
})
|
121
|
+
})
|
122
|
+
|
76
123
|
|
77
124
|
it('create with template example', (done) => {
|
78
125
|
|
package/test/kbsettingsRoute.js
CHANGED
@@ -453,7 +453,7 @@ describe('KbSettingsRoute', () => {
|
|
453
453
|
|
454
454
|
// }).timeout(20000)
|
455
455
|
|
456
|
-
// it('
|
456
|
+
// it('checkstatuserror - no db created for', (done) => {
|
457
457
|
|
458
458
|
// var email = "test-signup-" + Date.now() + "@email.com";
|
459
459
|
// var pwd = "pwd";
|
@@ -474,7 +474,7 @@ describe('KbSettingsRoute', () => {
|
|
474
474
|
// chai.request(server)
|
475
475
|
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
476
476
|
// .auth(email, pwd)
|
477
|
-
// .send({ name: "
|
477
|
+
// .send({ name: "gethelp.tiledesk.com/", url: "https://gethelp.tiledesk.com/" })
|
478
478
|
// .end((err, res) => {
|
479
479
|
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
480
480
|
// res.should.have.status(200);
|
@@ -484,12 +484,12 @@ describe('KbSettingsRoute', () => {
|
|
484
484
|
// chai.request(server)
|
485
485
|
// .post('/' + savedProject._id + "/kbsettings/checkstatus")
|
486
486
|
// .auth(email, pwd)
|
487
|
-
// .send({ full_url: "
|
487
|
+
// .send({ full_url: "https://gethelp.tiledesk.com/" })
|
488
488
|
// .end((err, res) => {
|
489
489
|
// res.should.have.status(200);
|
490
490
|
// res.body.should.be.a('object');
|
491
|
-
// expect(res.body.status_message).to.equal("Database is not created yet for dbnevercreated.com/kb/, please wait a few minutes and try again");
|
492
|
-
// expect(res.body.status_code).to.equal(0);
|
491
|
+
// // expect(res.body.status_message).to.equal("Database is not created yet for dbnevercreated.com/kb/, please wait a few minutes and try again");
|
492
|
+
// // expect(res.body.status_code).to.equal(0);
|
493
493
|
|
494
494
|
// done();
|
495
495
|
// })
|