@tiledesk/tiledesk-server 2.4.59 → 2.4.62
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 +6 -1
- package/package.json +1 -1
- package/routes/kbsettings.js +13 -10
- package/services/openaiService.js +0 -5
- package/test/kbsettingsRoute.js +283 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
🚀 IN PRODUCTION 🚀
|
|
6
6
|
(https://www.npmjs.com/package/@tiledesk/tiledesk-server/v/2.3.77)
|
|
7
7
|
|
|
8
|
-
# 2.4.
|
|
8
|
+
# 2.4.61
|
|
9
|
+
- improved kbsettings endpoints for qa, scrape and check status
|
|
10
|
+
- update tiledesk-whatsapp-connector to 0.1.52
|
|
11
|
+
- update tiledesk-telegram-connector to 0.1.8
|
|
12
|
+
|
|
13
|
+
# 2.4.59
|
|
9
14
|
- update tiledesk-whatsapp-connector to 0.1.52
|
|
10
15
|
- update tiledesk-telegram-connector to 0.1.8
|
|
11
16
|
|
package/package.json
CHANGED
package/routes/kbsettings.js
CHANGED
|
@@ -102,28 +102,30 @@ router.delete('/:settings_id/:kb_id', async (req, res) => {
|
|
|
102
102
|
// PROXY PUGLIA AI - START
|
|
103
103
|
router.post('/qa', async (req, res) => {
|
|
104
104
|
let data = req.body;
|
|
105
|
-
|
|
105
|
+
winston.debug("/qa data: ", data);
|
|
106
106
|
|
|
107
107
|
openaiService.ask(data).then((resp) => {
|
|
108
|
-
|
|
108
|
+
winston.debug("qa resp: ", resp.data);
|
|
109
109
|
res.status(200).send(resp.data);
|
|
110
110
|
}).catch((err) => {
|
|
111
111
|
winston.error("qa err: ", err);
|
|
112
|
-
|
|
112
|
+
let status = err.response.status;
|
|
113
|
+
res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
|
|
113
114
|
})
|
|
114
115
|
})
|
|
115
116
|
|
|
116
117
|
router.post('/startscrape', async (req, res) => {
|
|
117
118
|
|
|
118
119
|
let data = req.body;
|
|
119
|
-
|
|
120
|
+
winston.debug("/startscrape data: ", data);
|
|
120
121
|
|
|
121
122
|
openaiService.startScrape(data).then((resp) => {
|
|
122
|
-
|
|
123
|
+
winston.debug("startScrape resp: ", resp.data);
|
|
123
124
|
res.status(200).send(resp.data);
|
|
124
125
|
}).catch((err) => {
|
|
125
126
|
winston.error("startScrape err: ", err);
|
|
126
|
-
|
|
127
|
+
let status = err.response.status;
|
|
128
|
+
res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
|
|
127
129
|
})
|
|
128
130
|
})
|
|
129
131
|
|
|
@@ -131,14 +133,15 @@ router.post('/startscrape', async (req, res) => {
|
|
|
131
133
|
router.post('/checkstatus', async (req, res) => {
|
|
132
134
|
|
|
133
135
|
let data = req.body;
|
|
134
|
-
|
|
136
|
+
winston.debug("/checkstatus data: ", data);
|
|
135
137
|
|
|
136
138
|
openaiService.checkStatus(data).then((resp) => {
|
|
137
|
-
|
|
139
|
+
winston.debug("checkStatus resp: ", resp.data);
|
|
138
140
|
res.status(200).send(resp.data);
|
|
139
141
|
}).catch((err) => {
|
|
140
|
-
winston.error("
|
|
141
|
-
|
|
142
|
+
winston.error("checkstatus err: ", err);
|
|
143
|
+
let status = err.response.status;
|
|
144
|
+
res.status(status).send({ statusText: err.response.statusText, detail: err.response.data.detail });
|
|
142
145
|
})
|
|
143
146
|
})
|
|
144
147
|
// PROXY PUGLIA AI - END
|
|
@@ -24,11 +24,8 @@ class OpenaiService {
|
|
|
24
24
|
data: data,
|
|
25
25
|
method: 'POST'
|
|
26
26
|
}).then((resbody) => {
|
|
27
|
-
//winston.debug("[Openai] completions resbody: ", resbody.data);
|
|
28
27
|
resolve(resbody);
|
|
29
28
|
}).catch((err) => {
|
|
30
|
-
console.log("err: ", err);
|
|
31
|
-
// winston.error("[Openai] completions error: ", err);
|
|
32
29
|
reject(err);
|
|
33
30
|
})
|
|
34
31
|
|
|
@@ -53,7 +50,6 @@ class OpenaiService {
|
|
|
53
50
|
}).then((resbody) => {
|
|
54
51
|
resolve(resbody);
|
|
55
52
|
}).catch((err) => {
|
|
56
|
-
console.log("err: ", err);
|
|
57
53
|
reject(err);
|
|
58
54
|
})
|
|
59
55
|
|
|
@@ -75,7 +71,6 @@ class OpenaiService {
|
|
|
75
71
|
}).then((resbody) => {
|
|
76
72
|
resolve(resbody);
|
|
77
73
|
}).catch((err) => {
|
|
78
|
-
console.log("err: ", err);
|
|
79
74
|
reject(err);
|
|
80
75
|
})
|
|
81
76
|
|
package/test/kbsettingsRoute.js
CHANGED
|
@@ -244,7 +244,289 @@ describe('KbSettingsRoute', () => {
|
|
|
244
244
|
|
|
245
245
|
|
|
246
246
|
|
|
247
|
-
|
|
247
|
+
// THE FOLLOWING TEST REQUIRES REAL REQUESTS
|
|
248
|
+
// it('start scrape', (done) => {
|
|
249
|
+
|
|
250
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
251
|
+
// var pwd = "pwd";
|
|
252
|
+
|
|
253
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
254
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
255
|
+
|
|
256
|
+
// chai.request(server)
|
|
257
|
+
// .post('/' + savedProject._id + '/kbsettings')
|
|
258
|
+
// .auth(email, pwd)
|
|
259
|
+
// .send({}) // can be empty
|
|
260
|
+
// .end((err, res) => {
|
|
261
|
+
// if (log) { console.log("create kbsettings res.body: ", res.body); }
|
|
262
|
+
// res.should.have.status(200);
|
|
263
|
+
// res.body.should.be.a('object');
|
|
264
|
+
// expect(res.body.id_project).to.equal(savedProject._id.toString());
|
|
265
|
+
|
|
266
|
+
// chai.request(server)
|
|
267
|
+
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
|
268
|
+
// .auth(email, pwd)
|
|
269
|
+
// .send({ name: "exampleurl.com/kb/", url: "https://exampleurl.com/kb/" })
|
|
270
|
+
// .end((err, res) => {
|
|
271
|
+
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
|
272
|
+
// res.should.have.status(200);
|
|
273
|
+
// res.body.should.be.a('object');
|
|
274
|
+
// expect(res.body.kbs).to.have.length(1)
|
|
275
|
+
|
|
276
|
+
// chai.request(server)
|
|
277
|
+
// .post('/' + savedProject._id + "/kbsettings/startscrape")
|
|
278
|
+
// .auth(email, pwd)
|
|
279
|
+
// .send({ full_url: "https://developer.tiledesk.com/", gptkey: "valid-key" })
|
|
280
|
+
// .end( async (err, res) => {
|
|
281
|
+
// if (err) {
|
|
282
|
+
// console.log(" test err: ", err);
|
|
283
|
+
// }
|
|
284
|
+
// if (log) { console.log("start scrape res.body: ", res.body); }
|
|
285
|
+
|
|
286
|
+
// res.should.have.status(200);
|
|
287
|
+
// res.body.should.be.a('object');
|
|
288
|
+
// expect(res.body.message).to.not.equal(null);
|
|
289
|
+
|
|
290
|
+
// done();
|
|
291
|
+
// })
|
|
292
|
+
|
|
293
|
+
// })
|
|
294
|
+
// })
|
|
295
|
+
|
|
296
|
+
// });
|
|
297
|
+
// });
|
|
298
|
+
|
|
299
|
+
// }).timeout(20000)
|
|
300
|
+
|
|
301
|
+
// it('start scrape error - invalid key', (done) => {
|
|
302
|
+
|
|
303
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
304
|
+
// var pwd = "pwd";
|
|
305
|
+
|
|
306
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
307
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
308
|
+
|
|
309
|
+
// chai.request(server)
|
|
310
|
+
// .post('/' + savedProject._id + '/kbsettings')
|
|
311
|
+
// .auth(email, pwd)
|
|
312
|
+
// .send({}) // can be empty
|
|
313
|
+
// .end((err, res) => {
|
|
314
|
+
// if (log) { console.log("create kbsettings res.body: ", res.body); }
|
|
315
|
+
// res.should.have.status(200);
|
|
316
|
+
// res.body.should.be.a('object');
|
|
317
|
+
// expect(res.body.id_project).to.equal(savedProject._id.toString());
|
|
318
|
+
|
|
319
|
+
// chai.request(server)
|
|
320
|
+
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
|
321
|
+
// .auth(email, pwd)
|
|
322
|
+
// .send({ name: "exampleurl.com/kb/", url: "https://exampleurl.com/kb/" })
|
|
323
|
+
// .end((err, res) => {
|
|
324
|
+
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
|
325
|
+
// res.should.have.status(200);
|
|
326
|
+
// res.body.should.be.a('object');
|
|
327
|
+
// expect(res.body.kbs).to.have.length(1)
|
|
328
|
+
|
|
329
|
+
// chai.request(server)
|
|
330
|
+
// .post('/' + savedProject._id + "/kbsettings/startscrape")
|
|
331
|
+
// .auth(email, pwd)
|
|
332
|
+
// .send({ full_url: "https://developer.tiledesk.com/", gptkey: "invalid-gptkey" })
|
|
333
|
+
// .end( async (err, res) => {
|
|
334
|
+
// if (err) {
|
|
335
|
+
// console.log(" test err: ", err);
|
|
336
|
+
// }
|
|
337
|
+
// if (log) { console.log("start scrape res.body: ", res.body); }
|
|
338
|
+
|
|
339
|
+
// res.should.have.status(200);
|
|
340
|
+
// res.body.should.be.a('object');
|
|
341
|
+
// expect(res.body.message).to.not.equal(null);
|
|
342
|
+
|
|
343
|
+
// done();
|
|
344
|
+
// })
|
|
345
|
+
|
|
346
|
+
// })
|
|
347
|
+
// })
|
|
348
|
+
|
|
349
|
+
// });
|
|
350
|
+
// });
|
|
351
|
+
|
|
352
|
+
// }).timeout(20000)
|
|
353
|
+
|
|
354
|
+
// it('start scrape error - missing parameter', (done) => {
|
|
355
|
+
|
|
356
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
357
|
+
// var pwd = "pwd";
|
|
358
|
+
|
|
359
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
360
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
361
|
+
|
|
362
|
+
// chai.request(server)
|
|
363
|
+
// .post('/' + savedProject._id + '/kbsettings')
|
|
364
|
+
// .auth(email, pwd)
|
|
365
|
+
// .send({}) // can be empty
|
|
366
|
+
// .end((err, res) => {
|
|
367
|
+
// if (log) { console.log("create kbsettings res.body: ", res.body); }
|
|
368
|
+
// res.should.have.status(200);
|
|
369
|
+
// res.body.should.be.a('object');
|
|
370
|
+
// expect(res.body.id_project).to.equal(savedProject._id.toString());
|
|
371
|
+
|
|
372
|
+
// chai.request(server)
|
|
373
|
+
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
|
374
|
+
// .auth(email, pwd)
|
|
375
|
+
// .send({ name: "exampleurl.com/kb/", url: "https://exampleurl.com/kb/" })
|
|
376
|
+
// .end((err, res) => {
|
|
377
|
+
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
|
378
|
+
// res.should.have.status(200);
|
|
379
|
+
// res.body.should.be.a('object');
|
|
380
|
+
// expect(res.body.kbs).to.have.length(1)
|
|
381
|
+
|
|
382
|
+
// chai.request(server)
|
|
383
|
+
// .post('/' + savedProject._id + "/kbsettings/startscrape")
|
|
384
|
+
// .auth(email, pwd)
|
|
385
|
+
// // .send({ full_url: "https://fakeurl.com/support", gptkey: null })
|
|
386
|
+
// // OR
|
|
387
|
+
// .send({ full_url: "https://fakeurl.com/support" })
|
|
388
|
+
// .end((err, res) => {
|
|
389
|
+
// res.should.have.status(422);
|
|
390
|
+
// res.body.should.be.a('object');
|
|
391
|
+
// expect(res.body.statusText).to.equal("Unprocessable Entity");
|
|
392
|
+
// expect(res.body.detail).to.not.equal(null);
|
|
393
|
+
|
|
394
|
+
// done();
|
|
395
|
+
// })
|
|
396
|
+
|
|
397
|
+
// })
|
|
398
|
+
// })
|
|
399
|
+
|
|
400
|
+
// });
|
|
401
|
+
// });
|
|
402
|
+
|
|
403
|
+
// }).timeout(20000)
|
|
404
|
+
|
|
405
|
+
// it('check status error - missing parameter', (done) => {
|
|
406
|
+
|
|
407
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
408
|
+
// var pwd = "pwd";
|
|
409
|
+
|
|
410
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
411
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
412
|
+
|
|
413
|
+
// chai.request(server)
|
|
414
|
+
// .post('/' + savedProject._id + '/kbsettings')
|
|
415
|
+
// .auth(email, pwd)
|
|
416
|
+
// .send({}) // can be empty
|
|
417
|
+
// .end((err, res) => {
|
|
418
|
+
// if (log) { console.log("create kbsettings res.body: ", res.body); }
|
|
419
|
+
// res.should.have.status(200);
|
|
420
|
+
// res.body.should.be.a('object');
|
|
421
|
+
// expect(res.body.id_project).to.equal(savedProject._id.toString());
|
|
422
|
+
|
|
423
|
+
// chai.request(server)
|
|
424
|
+
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
|
425
|
+
// .auth(email, pwd)
|
|
426
|
+
// .send({ name: "exampleurl.com/kb/", url: "https://exampleurl.com/kb/" })
|
|
427
|
+
// .end((err, res) => {
|
|
428
|
+
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
|
429
|
+
// res.should.have.status(200);
|
|
430
|
+
// res.body.should.be.a('object');
|
|
431
|
+
// expect(res.body.kbs).to.have.length(1)
|
|
432
|
+
|
|
433
|
+
// chai.request(server)
|
|
434
|
+
// .post('/' + savedProject._id + "/kbsettings/checkstatus")
|
|
435
|
+
// .auth(email, pwd)
|
|
436
|
+
// // .send()
|
|
437
|
+
// // OR
|
|
438
|
+
// .send({ full_url: null })
|
|
439
|
+
// .end((err, res) => {
|
|
440
|
+
// res.should.have.status(422);
|
|
441
|
+
// res.body.should.be.a('object');
|
|
442
|
+
// expect(res.body.statusText).to.equal("Unprocessable Entity");
|
|
443
|
+
// expect(res.body.detail).to.not.equal(null);
|
|
444
|
+
|
|
445
|
+
// done();
|
|
446
|
+
// })
|
|
447
|
+
|
|
448
|
+
// })
|
|
449
|
+
// })
|
|
450
|
+
|
|
451
|
+
// });
|
|
452
|
+
// });
|
|
453
|
+
|
|
454
|
+
// }).timeout(20000)
|
|
455
|
+
|
|
456
|
+
// it('check status error - no db created for', (done) => {
|
|
457
|
+
|
|
458
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
459
|
+
// var pwd = "pwd";
|
|
460
|
+
|
|
461
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
462
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
463
|
+
|
|
464
|
+
// chai.request(server)
|
|
465
|
+
// .post('/' + savedProject._id + '/kbsettings')
|
|
466
|
+
// .auth(email, pwd)
|
|
467
|
+
// .send({}) // can be empty
|
|
468
|
+
// .end((err, res) => {
|
|
469
|
+
// if (log) { console.log("create kbsettings res.body: ", res.body); }
|
|
470
|
+
// res.should.have.status(200);
|
|
471
|
+
// res.body.should.be.a('object');
|
|
472
|
+
// expect(res.body.id_project).to.equal(savedProject._id.toString());
|
|
473
|
+
|
|
474
|
+
// chai.request(server)
|
|
475
|
+
// .post('/' + savedProject._id + "/kbsettings/" + res.body._id)
|
|
476
|
+
// .auth(email, pwd)
|
|
477
|
+
// .send({ name: "dbnevercreated.com/kb/", url: "https://exampleurl.com/kb/" })
|
|
478
|
+
// .end((err, res) => {
|
|
479
|
+
// if (log) { console.log("add kb to kb settings res.body: ", res.body); }
|
|
480
|
+
// res.should.have.status(200);
|
|
481
|
+
// res.body.should.be.a('object');
|
|
482
|
+
// expect(res.body.kbs).to.have.length(1)
|
|
483
|
+
|
|
484
|
+
// chai.request(server)
|
|
485
|
+
// .post('/' + savedProject._id + "/kbsettings/checkstatus")
|
|
486
|
+
// .auth(email, pwd)
|
|
487
|
+
// .send({ full_url: "dbnevercreated.com/kb/" })
|
|
488
|
+
// .end((err, res) => {
|
|
489
|
+
// res.should.have.status(200);
|
|
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);
|
|
493
|
+
|
|
494
|
+
// done();
|
|
495
|
+
// })
|
|
496
|
+
|
|
497
|
+
// })
|
|
498
|
+
// })
|
|
499
|
+
|
|
500
|
+
// });
|
|
501
|
+
// });
|
|
502
|
+
|
|
503
|
+
// }).timeout(20000)
|
|
504
|
+
|
|
505
|
+
// it('qa error', (done) => {
|
|
506
|
+
|
|
507
|
+
// var email = "test-signup-" + Date.now() + "@email.com";
|
|
508
|
+
// var pwd = "pwd";
|
|
509
|
+
|
|
510
|
+
// userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
|
|
511
|
+
// projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
|
|
512
|
+
|
|
513
|
+
// chai.request(server)
|
|
514
|
+
// .post('/' + savedProject._id + "/kbsettings/qa")
|
|
515
|
+
// .auth(email, pwd)
|
|
516
|
+
// .send({ question: "How to connect Tiledesk with Telegram?", kbid: "https://gethelp.tiledesk.com/", gptkey: "valid-key" })
|
|
517
|
+
// .end((err, res) => {
|
|
518
|
+
// if (log) {}
|
|
519
|
+
// console.log("qa res.body: ", res.body);
|
|
520
|
+
// res.should.have.status(200);
|
|
521
|
+
// res.body.should.be.a('object');
|
|
522
|
+
|
|
523
|
+
// done();
|
|
524
|
+
// })
|
|
525
|
+
|
|
526
|
+
// });
|
|
527
|
+
// });
|
|
528
|
+
|
|
529
|
+
// }).timeout(20000)
|
|
248
530
|
|
|
249
531
|
});
|
|
250
532
|
|