@tiledesk/tiledesk-tybot-connector 0.2.75-rc1 → 0.2.76
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
CHANGED
|
@@ -5,8 +5,15 @@
|
|
|
5
5
|
available on:
|
|
6
6
|
▶️ https://www.npmjs.com/package/@tiledesk/tiledesk-tybot-connector
|
|
7
7
|
|
|
8
|
+
# v0.2.76 - dev
|
|
9
|
+
- Added support to button alias
|
|
10
|
+
|
|
11
|
+
# v0.2.75 - dev
|
|
12
|
+
- Fix. get images and urls also without text
|
|
13
|
+
- "userLeadId" = message.request.lead._id (instead of the unuseful lead.lead_id)
|
|
14
|
+
|
|
8
15
|
# v0.2.74 - online
|
|
9
|
-
- Fix. Get DepartmentId in test-mode in IfOnelineAgentsV2
|
|
16
|
+
- Fix. Get DepartmentId for default department in test-mode in IfOnelineAgentsV2
|
|
10
17
|
|
|
11
18
|
# v0.2.73 - debug
|
|
12
19
|
- Fix. static getMachine with check on bot not null
|
|
@@ -252,13 +252,13 @@ class TiledeskChatbotUtil {
|
|
|
252
252
|
if (commands[i].message) {
|
|
253
253
|
if (commands[i].message.type === "text") { // check text commands
|
|
254
254
|
if (( commands[i].message.text && commands[i].message.text.trim() === "") || !commands[i].message.text) {
|
|
255
|
-
console.log("deleting command:", commands[i]);
|
|
255
|
+
// console.log("deleting command:", commands[i]);
|
|
256
256
|
commands.splice(i, 1);
|
|
257
257
|
if (commands[i-1]) {
|
|
258
258
|
if (commands[i-1].type === "wait") {
|
|
259
259
|
commands.splice(i-1, 1);
|
|
260
260
|
i--;
|
|
261
|
-
console.log("deleted wait");
|
|
261
|
+
// console.log("deleted wait");
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
}
|
|
@@ -369,17 +369,42 @@ class TiledeskChatbotUtil {
|
|
|
369
369
|
if (buttons === null || text === null) {
|
|
370
370
|
return null;
|
|
371
371
|
}
|
|
372
|
-
let search_text = text.toLowerCase();
|
|
372
|
+
let search_text = text.toLowerCase().trim();
|
|
373
373
|
let selected_button = null;
|
|
374
374
|
for (let i = 0; i < buttons.length; i++) {
|
|
375
375
|
const button = buttons[i];
|
|
376
376
|
if (button.value !== null && button.value.toLowerCase() === search_text) {
|
|
377
377
|
selected_button = button;
|
|
378
|
-
break;
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
else if (button.alias && button.alias.trim() !== "") { // search in button alias
|
|
381
|
+
let alias = button.alias.split(",");
|
|
382
|
+
// console.log("alias splitted:", alias);
|
|
383
|
+
if (alias.length > 0) {
|
|
384
|
+
for (let ii = 0; ii < alias.length; ii++) {
|
|
385
|
+
alias[ii] = alias[ii].toLowerCase().trim();
|
|
386
|
+
}
|
|
387
|
+
// console.log("alias proc:", alias);
|
|
388
|
+
if (alias.indexOf(search_text) > -1) {
|
|
389
|
+
selected_button = button;
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
379
393
|
}
|
|
380
394
|
}
|
|
395
|
+
|
|
381
396
|
return selected_button;
|
|
382
397
|
}
|
|
398
|
+
|
|
399
|
+
static stripEmoji(str) {
|
|
400
|
+
// console.log("checking:", str);
|
|
401
|
+
if (str === null) {
|
|
402
|
+
return str;
|
|
403
|
+
}
|
|
404
|
+
return str.replace(/\p{Emoji}/gu, '')
|
|
405
|
+
.replace(/\s+/g, ' ')
|
|
406
|
+
.trim();
|
|
407
|
+
}
|
|
383
408
|
|
|
384
409
|
static async updateConversationTranscript(chatbot, message) {
|
|
385
410
|
if (!message || !message.senderFullname) { // not a conversation, can it be an Automation invocation?
|
|
@@ -510,104 +535,105 @@ class TiledeskChatbotUtil {
|
|
|
510
535
|
}
|
|
511
536
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_TYPE_KEY, message.type);
|
|
512
537
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_USER_MESSAGE_KEY, TiledeskChatbotUtil.lastUserMessageFrom(message)); // JSON TYPE *NEW
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
// get image
|
|
541
|
+
if (message.type && message.type === "image" && message.metadata) {
|
|
542
|
+
// "text": "\nimage text",
|
|
543
|
+
// "id_project": "65203e12f8c0cf002cf4110b",
|
|
544
|
+
// "createdBy": "8ac52a30-133f-4ee1-8b4b-96055bb81757",
|
|
545
|
+
// "metadata": {
|
|
546
|
+
// "height": 905,
|
|
547
|
+
// "name": "tiledesk_Open graph_general.png",
|
|
548
|
+
// "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2Fda5bbc8d-5174-49a8-a041-3d9355242da5%2Ftiledesk_Open%20graph_general.png?alt=media&token=be82fecb-3cd1-45b9-a135-c2c57a932862",
|
|
549
|
+
// "type": "image/png",
|
|
550
|
+
// "uid": "lo68iyq5",
|
|
551
|
+
// "width": 1724
|
|
552
|
+
// }
|
|
553
|
+
if (message.metadata.src) {
|
|
554
|
+
await chatbot.addParameter("lastUserImageURL", message.metadata.src);
|
|
555
|
+
await chatbot.addParameter("lastUserImageName", message.metadata.name);
|
|
556
|
+
await chatbot.addParameter("lastUserImageWidth", message.metadata.width);
|
|
557
|
+
await chatbot.addParameter("lastUserImageHeight", message.metadata.height);
|
|
558
|
+
await chatbot.addParameter("lastUserImageType", message.metadata.type);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
await chatbot.addParameter("lastUserImageURL", null);
|
|
563
|
+
await chatbot.addParameter("lastUserImageName", null);
|
|
564
|
+
await chatbot.addParameter("lastUserImageWidth", null);
|
|
565
|
+
await chatbot.addParameter("lastUserImageHeight", null);
|
|
566
|
+
await chatbot.addParameter("lastUserImageType", null);
|
|
567
|
+
}
|
|
568
|
+
// get document
|
|
569
|
+
if (message.type && message.type === "file" && message.metadata) {
|
|
570
|
+
// "type": "file",
|
|
571
|
+
// "text": "[LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf](https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1)\nistruzioni",
|
|
572
|
+
// "metadata": {
|
|
573
|
+
// "name": "LIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf",
|
|
574
|
+
// "src": "https://firebasestorage.googleapis.com/v0/b/chat21-pre-01.appspot.com/o/public%2Fimages%2F8ac52a30-133f-4ee1-8b4b-96055bb81757%2F502265ee-4f4a-47a4-9375-172bb0e6bf39%2FLIBRETTO-WEB-ISTRUZIONI-GENITORI.pdf?alt=media&token=a09d065a-9b56-4507-8960-344cc294e4d1",
|
|
575
|
+
// "type": "application/pdf",
|
|
576
|
+
// "uid": "lo68oz8i"
|
|
577
|
+
// }
|
|
578
|
+
if (message.metadata.src) {
|
|
579
|
+
await chatbot.addParameter("lastUserDocumentURL", message.metadata.src); // legacy. will be deprecated
|
|
580
|
+
const url_as_attachment = message.metadata.src;
|
|
581
|
+
await chatbot.addParameter("lastUserDocumentAsAttachmentURL", url_as_attachment);
|
|
582
|
+
let url_inline = url_as_attachment;
|
|
583
|
+
if (url_as_attachment.match(/.*\/download.*/)) { // removing "/download" removes the "Content-disposion: attachment" HTTP header
|
|
584
|
+
url_inline = url_as_attachment.replace('/download', '/');
|
|
532
585
|
}
|
|
586
|
+
await chatbot.addParameter("lastUserDocumentAsInlineURL", url_inline);
|
|
587
|
+
await chatbot.addParameter("lastUserDocumentName", message.metadata.name);
|
|
588
|
+
await chatbot.addParameter("lastUserDocumentType", message.metadata.type);
|
|
533
589
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
await chatbot.addParameter("lastUserDocumentURL", null);
|
|
593
|
+
await chatbot.addParameter("lastUserDocumentName", null);
|
|
594
|
+
await chatbot.addParameter("lastUserDocumentType", null);
|
|
595
|
+
}
|
|
596
|
+
if (message && message.request && message.request.lead) {
|
|
597
|
+
if (message.request.lead.email) {
|
|
598
|
+
await chatbot.addParameter("userEmail", message.request.lead.email);
|
|
540
599
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
await chatbot.addParameter("lastUserDocumentAsAttachmentURL", url_as_attachment);
|
|
555
|
-
let url_inline = url_as_attachment;
|
|
556
|
-
if (url_as_attachment.match(/.*\/download.*/)) { // removing "/download" removes the "Content-disposion: attachment" HTTP header
|
|
557
|
-
url_inline = url_as_attachment.replace('/download', '/');
|
|
558
|
-
}
|
|
559
|
-
await chatbot.addParameter("lastUserDocumentAsInlineURL", url_inline);
|
|
560
|
-
await chatbot.addParameter("lastUserDocumentName", message.metadata.name);
|
|
561
|
-
await chatbot.addParameter("lastUserDocumentType", message.metadata.type);
|
|
600
|
+
if (message.request.lead.fullname && !message.request.lead.fullname.startsWith("guest#")) {
|
|
601
|
+
// worth saving
|
|
602
|
+
try {
|
|
603
|
+
// const current_userFullname = await chatbot.getParameter("userFullname");
|
|
604
|
+
// if (current_userFullname && current_userFullname.startsWith("guest#")) { // replace if exists as guest#
|
|
605
|
+
// await chatbot.addParameter("userFullname", message.request.lead.fullname);
|
|
606
|
+
// }
|
|
607
|
+
// else if (!current_userFullname) {
|
|
608
|
+
await chatbot.addParameter("userFullname", message.request.lead.fullname);
|
|
609
|
+
// }
|
|
610
|
+
}
|
|
611
|
+
catch(error) {
|
|
612
|
+
console.error("Error on setting userFullname:", error);
|
|
562
613
|
}
|
|
563
614
|
}
|
|
564
615
|
else {
|
|
565
|
-
|
|
566
|
-
await chatbot.addParameter("lastUserDocumentName", null);
|
|
567
|
-
await chatbot.addParameter("lastUserDocumentType", null);
|
|
616
|
+
// console.log("!lead.fullname");
|
|
568
617
|
}
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
// if (current_userFullname && current_userFullname.startsWith("guest#")) { // replace if exists as guest#
|
|
578
|
-
// await chatbot.addParameter("userFullname", message.request.lead.fullname);
|
|
579
|
-
// }
|
|
580
|
-
// else if (!current_userFullname) {
|
|
581
|
-
await chatbot.addParameter("userFullname", message.request.lead.fullname);
|
|
582
|
-
// }
|
|
583
|
-
}
|
|
584
|
-
catch(error) {
|
|
585
|
-
console.error("Error on setting userFullname:", error);
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
else {
|
|
589
|
-
// console.log("!lead.fullname");
|
|
590
|
-
}
|
|
591
|
-
// console.log("Getting userPhone:", JSON.stringify(message.request));
|
|
592
|
-
if (message.request.lead.phone) {
|
|
593
|
-
await chatbot.addParameter("userPhone", message.request.lead.phone);
|
|
594
|
-
}
|
|
595
|
-
if (message.request.lead.lead_id && message.request.lead.lead_id.startsWith("wab-")) {
|
|
596
|
-
const splits = message.request.lead.lead_id.split("-");
|
|
597
|
-
if (splits && splits.length > 1) {
|
|
598
|
-
await chatbot.addParameter("currentPhoneNumber",splits[1]);
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
if (message.request.lead.lead_id) {
|
|
602
|
-
await chatbot.addParameter("userLeadId", message.request.lead.lead_id);
|
|
603
|
-
}
|
|
604
|
-
if (message.request.lead.company) {
|
|
605
|
-
await chatbot.addParameter("userCompany", message.request.lead.company);
|
|
606
|
-
}
|
|
607
|
-
if (message.request.ticket_id) {
|
|
608
|
-
await chatbot.addParameter("ticketId", message.request.ticket_id);
|
|
618
|
+
// console.log("Getting userPhone:", JSON.stringify(message.request));
|
|
619
|
+
if (message.request.lead.phone) {
|
|
620
|
+
await chatbot.addParameter("userPhone", message.request.lead.phone);
|
|
621
|
+
}
|
|
622
|
+
if (message.request.lead.lead_id && message.request.lead.lead_id.startsWith("wab-")) {
|
|
623
|
+
const splits = message.request.lead.lead_id.split("-");
|
|
624
|
+
if (splits && splits.length > 1) {
|
|
625
|
+
await chatbot.addParameter("currentPhoneNumber",splits[1]);
|
|
609
626
|
}
|
|
610
627
|
}
|
|
628
|
+
if (message.request.lead._id) {
|
|
629
|
+
await chatbot.addParameter("userLeadId", message.request.lead._id);
|
|
630
|
+
}
|
|
631
|
+
if (message.request.lead.company) {
|
|
632
|
+
await chatbot.addParameter("userCompany", message.request.lead.company);
|
|
633
|
+
}
|
|
634
|
+
if (message.request.ticket_id) {
|
|
635
|
+
await chatbot.addParameter("ticketId", message.request.ticket_id);
|
|
636
|
+
}
|
|
611
637
|
}
|
|
612
638
|
|
|
613
639
|
await chatbot.addParameter(TiledeskChatbotConst.REQ_LAST_MESSAGE_ID_KEY, messageId);
|
package/package.json
CHANGED
|
@@ -57,13 +57,11 @@ class DirAskGPTV2 {
|
|
|
57
57
|
|
|
58
58
|
// default values
|
|
59
59
|
let answer = "No answers";
|
|
60
|
-
let
|
|
60
|
+
let source = null;
|
|
61
61
|
let model = "gpt-3.5-turbo";
|
|
62
62
|
let temperature;
|
|
63
63
|
let max_tokens;
|
|
64
64
|
let top_k;
|
|
65
|
-
|
|
66
|
-
let source = null;
|
|
67
65
|
|
|
68
66
|
if (!action.question || action.question === '') {
|
|
69
67
|
console.error("Error: DirAskGPT question attribute is mandatory. Executing condition false...");
|
|
@@ -75,9 +73,6 @@ class DirAskGPTV2 {
|
|
|
75
73
|
return;
|
|
76
74
|
}
|
|
77
75
|
|
|
78
|
-
if (action.namespace) {
|
|
79
|
-
namespace = action.namespace;
|
|
80
|
-
}
|
|
81
76
|
if (action.model) {
|
|
82
77
|
model = action.model;
|
|
83
78
|
}
|
|
@@ -148,7 +143,7 @@ class DirAskGPTV2 {
|
|
|
148
143
|
let json = {
|
|
149
144
|
question: filled_question,
|
|
150
145
|
gptkey: key,
|
|
151
|
-
namespace:
|
|
146
|
+
namespace: this.context.projectId,
|
|
152
147
|
model: model
|
|
153
148
|
};
|
|
154
149
|
if (top_k) {
|