@tiledesk/tiledesk-server 2.5.3 → 2.7.0

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.
@@ -4,7 +4,8 @@ require('dotenv').config();
4
4
 
5
5
  let openai_endpoint = process.env.OPENAI_ENDPOINT;
6
6
  let kb_endpoint = process.env.KB_ENDPOINT;
7
- let kb_endpoint_dev = process.env.KB_ENDPOINT_DEV;
7
+ let kb_endpoint_train = process.env.KB_ENDPOINT_TRAIN;
8
+ let kb_endpoint_qa = process.env.KB_ENDPOINT_QA;
8
9
 
9
10
  class OpenaiService {
10
11
 
@@ -100,12 +101,12 @@ class OpenaiService {
100
101
 
101
102
  // PUGLIA AI V2
102
103
  singleScrape(data) {
103
- winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_dev);
104
+ winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_train);
104
105
 
105
106
  return new Promise((resolve, reject) => {
106
107
 
107
108
  axios({
108
- url: kb_endpoint_dev + "/scrape/single",
109
+ url: kb_endpoint_train + "/scrape/single",
109
110
  headers: {
110
111
  'Content-Type': 'application/json'
111
112
  },
@@ -121,12 +122,12 @@ class OpenaiService {
121
122
  }
122
123
 
123
124
  scrapeStatus(data) {
124
- winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_dev);
125
+ winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_train);
125
126
 
126
127
  return new Promise((resolve, reject) => {
127
128
 
128
129
  axios({
129
- url: kb_endpoint_dev + "/scrape/status",
130
+ url: kb_endpoint_train + "/scrape/status",
130
131
  headers: {
131
132
  'Content-Type': 'application/json'
132
133
  },
@@ -141,12 +142,12 @@ class OpenaiService {
141
142
  }
142
143
 
143
144
  askNamespace(data) {
144
- winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_dev);
145
+ winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_qa);
145
146
 
146
147
  return new Promise((resolve, reject) => {
147
148
 
148
149
  axios({
149
- url: kb_endpoint_dev + "/qa",
150
+ url: kb_endpoint_qa + "/qa",
150
151
  headers: {
151
152
  'Content-Type': 'application/json'
152
153
  },
@@ -162,12 +163,12 @@ class OpenaiService {
162
163
  }
163
164
 
164
165
  deleteIndex(data) {
165
- winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_dev);
166
+ winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_train);
166
167
 
167
168
  return new Promise((resolve, reject) => {
168
169
 
169
170
  axios({
170
- url: kb_endpoint_dev + "/delete/id",
171
+ url: kb_endpoint_train + "/delete/id",
171
172
  headers: {
172
173
  'Content-Type': 'application/json'
173
174
  },
@@ -182,12 +183,12 @@ class OpenaiService {
182
183
  }
183
184
 
184
185
  deleteNamespace(data) {
185
- winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_dev);
186
+ winston.debug("[OPENAI SERVICE] kb endpoint: " + kb_endpoint_train);
186
187
 
187
188
  return new Promise((resolve, reject) => {
188
189
 
189
190
  axios({
190
- url: kb_endpoint_dev + "/delete/namespace",
191
+ url: kb_endpoint_train + "/delete/namespace",
191
192
  headers: {
192
193
  'Content-Type': 'application/json'
193
194
  },
@@ -32,100 +32,104 @@ class RequestService {
32
32
  }
33
33
 
34
34
  listen() {
35
- this.updateSnapshotLead();
36
- this.sendMessageUpdateLead();
35
+ // 12 marzo 2024 I disabled these two functions due to performance problems for a chatbot created by Sponziello "Community bots Sendinblue Hubspot Qapla)"
36
+ // this.updateSnapshotLead();
37
+ // this.sendMessageUpdateLead();
37
38
  }
38
- updateSnapshotLead() {
39
- leadEvent.on('lead.update', function (lead) {
40
- setImmediate(() => {
41
- winston.debug("updateSnapshotLead on lead.update ", lead);
42
39
 
43
- Request.updateMany({ lead: lead._id, id_project: lead.id_project }, { "$set": { "snapshot.lead": lead } }, function (err, updates) {
44
- if (err) {
45
- winston.error("Error updating requests updateSnapshotLead", err);
46
- return 0;
47
- }
48
- winston.verbose("updateSnapshotLead updated for " + updates.nModified + " request")
49
- requestEvent.emit('request.update.snapshot.lead', { lead: lead, updates: updates });
50
- return;
51
- });
52
- // Request.find({lead: lead._id, id_project: lead.id_project}, function(err, requests) {
53
-
54
- // if (err) {
55
- // winston.error("Error getting request by lead", err);
56
- // return 0;
57
- // }
58
- // if (!requests || (requests && requests.length==0)) {
59
- // winston.warn("No request found for lead id " +lead._id );
60
- // return 0;
61
- // }
62
-
63
- // requests.forEach(function(request) {
64
-
65
-
66
- // });
67
-
68
- // });
69
-
70
-
71
- });
72
- });
73
- }
74
-
75
-
76
- sendMessageUpdateLead() {
77
- leadEvent.on('lead.fullname.email.update', function (lead) {
78
- winston.debug("lead.fullname.email.update ");
79
- // leadEvent.on('lead.update', function(lead) {
80
-
81
- setImmediate(() => {
82
- winston.debug("sendMessageUpdateLead on lead.update ", lead);
83
-
84
- Request.find({ lead: lead._id, id_project: lead.id_project }, function (err, requests) {
85
-
86
- if (err) {
87
- winston.error("Error getting sendMessageUpdateLead request by lead", err);
88
- return 0;
89
- }
90
- if (!requests || (requests && requests.length == 0)) {
91
- winston.warn("sendMessageUpdateLead No request found for lead id " + lead._id);
92
- return 0;
93
- }
94
-
95
- // winston.info("sendMessageUpdateLead requests ", requests);
96
-
97
- requests.forEach(function (request) {
98
-
99
- winston.debug("sendMessageUpdateLead request ", request);
100
-
101
- // send(sender, senderFullname, recipient, text, id_project, createdBy, attributes, type, metadata, language)
102
- messageService.send(
103
- 'system',
104
- 'Bot',
105
- // lead.fullname,
106
- request.request_id,
107
- "Lead updated",
108
- request.id_project,
109
- 'system',
110
- {
111
- subtype: "info/support",
112
- "updateconversation": false,
113
- messagelabel: { key: "LEAD_UPDATED" },
114
- updateUserEmail: lead.email,
115
- updateUserFullname: lead.fullname
116
- },
117
- undefined,
118
- request.language
119
-
120
- );
121
-
122
- });
123
-
124
- });
125
-
126
- });
127
- });
128
- }
40
+ // 12 marzo 2024 I disabled these two functions due to performance problems for a chatbot created by Sponziello "Community bots Sendinblue Hubspot Qapla)"
41
+ // updateSnapshotLead() {
42
+ // leadEvent.on('lead.update', function (lead) {
43
+ // setImmediate(() => {
44
+ // winston.debug("updateSnapshotLead on lead.update ", lead);
45
+
46
+ // Request.updateMany({ lead: lead._id, id_project: lead.id_project }, { "$set": { "snapshot.lead": lead } }, function (err, updates) {
47
+ // if (err) {
48
+ // winston.error("Error updating requests updateSnapshotLead", err);
49
+ // return 0;
50
+ // }
51
+ // winston.verbose("updateSnapshotLead updated for " + updates.nModified + " request")
52
+ // requestEvent.emit('request.update.snapshot.lead', { lead: lead, updates: updates });
53
+ // return;
54
+ // });
55
+ // // Request.find({lead: lead._id, id_project: lead.id_project}, function(err, requests) {
56
+
57
+ // // if (err) {
58
+ // // winston.error("Error getting request by lead", err);
59
+ // // return 0;
60
+ // // }
61
+ // // if (!requests || (requests && requests.length==0)) {
62
+ // // winston.warn("No request found for lead id " +lead._id );
63
+ // // return 0;
64
+ // // }
65
+
66
+ // // requests.forEach(function(request) {
67
+
68
+
69
+ // // });
70
+
71
+ // // });
72
+
73
+
74
+ // });
75
+ // });
76
+ // }
77
+
78
+
79
+ // 12 marzo 2024 I disabled these two functions due to performance problems for a chatbot created by Sponziello "Community bots Sendinblue Hubspot Qapla)"
80
+ // sendMessageUpdateLead() {
81
+ // leadEvent.on('lead.fullname.email.update', function (lead) {
82
+ // winston.debug("lead.fullname.email.update ");
83
+ // // leadEvent.on('lead.update', function(lead) {
84
+
85
+ // setImmediate(() => {
86
+ // winston.debug("sendMessageUpdateLead on lead.update ", lead);
87
+
88
+ // Request.find({ lead: lead._id, id_project: lead.id_project }, function (err, requests) {
89
+
90
+ // if (err) {
91
+ // winston.error("Error getting sendMessageUpdateLead request by lead", err);
92
+ // return 0;
93
+ // }
94
+ // if (!requests || (requests && requests.length == 0)) {
95
+ // winston.warn("sendMessageUpdateLead No request found for lead id " + lead._id);
96
+ // return 0;
97
+ // }
98
+
99
+ // // winston.info("sendMessageUpdateLead requests ", requests);
100
+
101
+ // requests.forEach(function (request) {
102
+
103
+ // winston.debug("sendMessageUpdateLead request ", request);
104
+
105
+ // // send(sender, senderFullname, recipient, text, id_project, createdBy, attributes, type, metadata, language)
106
+ // messageService.send(
107
+ // 'system',
108
+ // 'Bot',
109
+ // // lead.fullname,
110
+ // request.request_id,
111
+ // "Lead updated",
112
+ // request.id_project,
113
+ // 'system',
114
+ // {
115
+ // subtype: "info/support",
116
+ // "updateconversation": false,
117
+ // messagelabel: { key: "LEAD_UPDATED" },
118
+ // updateUserEmail: lead.email,
119
+ // updateUserFullname: lead.fullname
120
+ // },
121
+ // undefined,
122
+ // request.language
123
+
124
+ // );
125
+
126
+ // });
127
+
128
+ // });
129
+
130
+ // });
131
+ // });
132
+ // }
129
133
 
130
134
 
131
135
  getAvailableAgentsCount(agents) {
@@ -0,0 +1,149 @@
1
+ 'use strict';
2
+
3
+ var Request = require("../models/request");
4
+ var messageService = require('../services/messageService');
5
+ const requestEvent = require('../event/requestEvent');
6
+ const leadEvent = require('../event/leadEvent');
7
+ var winston = require('../config/winston');
8
+
9
+ class UpdateLeadQueued {
10
+
11
+ constructor() {
12
+ // this.listen();
13
+ }
14
+
15
+ listen() {
16
+ // 12 marzo 2024 I disabled these two functions due to performance problems for a chatbot created by Sponziello "Community bots Sendinblue Hubspot Qapla)"
17
+ this.updateSnapshotLead();
18
+ this.sendMessageUpdateLead();
19
+ winston.info("Listening UpdateLeadQueued started")
20
+
21
+ }
22
+
23
+
24
+ updateSnapshotLead() {
25
+
26
+ var leadUpdateKey = 'lead.update';
27
+ if (leadEvent.queueEnabled) {
28
+ leadUpdateKey = 'lead.update.queue';
29
+ }
30
+ winston.debug("leadUpdateKey: " + leadUpdateKey);
31
+
32
+ leadEvent.on(leadUpdateKey, function (lead) {
33
+ setImmediate(() => {
34
+ winston.debug("updateSnapshotLead on lead.update ", lead);
35
+
36
+ var query = { lead: lead._id, id_project: lead.id_project };
37
+ winston.debug("query ", query);
38
+
39
+ Request.updateMany(query, { "$set": { "snapshot.lead": lead } }, function (err, updates) {
40
+ if (err) {
41
+ winston.error("Error updating requests updateSnapshotLead", err);
42
+ return 0;
43
+ }
44
+ winston.debug("updateSnapshotLead updated for " + updates.nModified + " request")
45
+ requestEvent.emit('request.update.snapshot.lead', { lead: lead, updates: updates });
46
+ return;
47
+ });
48
+ // Request.find({lead: lead._id, id_project: lead.id_project}, function(err, requests) {
49
+
50
+ // if (err) {
51
+ // winston.error("Error getting request by lead", err);
52
+ // return 0;
53
+ // }
54
+ // if (!requests || (requests && requests.length==0)) {
55
+ // winston.warn("No request found for lead id " +lead._id );
56
+ // return 0;
57
+ // }
58
+
59
+ // requests.forEach(function(request) {
60
+
61
+
62
+ // });
63
+
64
+ // });
65
+
66
+
67
+ });
68
+ });
69
+ }
70
+
71
+
72
+ sendMessageUpdateLead() {
73
+
74
+ var leadUpdateEmailKey = 'lead.fullname.email.update';
75
+ if (leadEvent.queueEnabled) {
76
+ leadUpdateEmailKey = 'lead.fullname.email.update.queue';
77
+ }
78
+ winston.debug("leadUpdateEmailKey: " + leadUpdateEmailKey);
79
+
80
+
81
+ leadEvent.on(leadUpdateEmailKey, function (lead) {
82
+ winston.debug("lead.fullname.email.update ");
83
+ // leadEvent.on('lead.update', function(lead) {
84
+
85
+ setImmediate(() => {
86
+ winston.debug("sendMessageUpdateLead on lead.update ", lead);
87
+
88
+ // .find({"channel.name":"chat21"}).sort({"createdAt": -1}).limit(2)
89
+ Request.find({ lead: lead._id, id_project: lead.id_project, "channel.name":"chat21" }).limit(1).sort({"createdAt": -1}).
90
+ exec(function (err, requests) {
91
+
92
+ if (err) {
93
+ winston.error("Error getting sendMessageUpdateLead request by lead", err);
94
+ return 0;
95
+ }
96
+ if (!requests || (requests && requests.length == 0)) {
97
+ winston.warn("sendMessageUpdateLead No request found for lead id " + lead._id);
98
+ return 0;
99
+ }
100
+
101
+ // winston.info("sendMessageUpdateLead requests ", requests);
102
+
103
+ // requests.forEach(function (request) {
104
+
105
+ var request = requests[0];
106
+
107
+ winston.debug("sendMessageUpdateLead request ", request);
108
+
109
+ // send(sender, senderFullname, recipient, text, id_project, createdBy, attributes, type, metadata, language)
110
+ messageService.send(
111
+ 'system',
112
+ 'Bot',
113
+ // lead.fullname,
114
+ request.request_id,
115
+ "Lead updated",
116
+ request.id_project,
117
+ 'system',
118
+ {
119
+ subtype: "info/support",
120
+ "updateconversation": false,
121
+ messagelabel: { key: "LEAD_UPDATED" },
122
+ updateUserEmail: lead.email,
123
+ updateUserFullname: lead.fullname
124
+ },
125
+ undefined,
126
+ request.language
127
+
128
+ );
129
+
130
+ // });
131
+
132
+ });
133
+
134
+ });
135
+ });
136
+ }
137
+
138
+
139
+
140
+
141
+
142
+ }
143
+
144
+
145
+ var updateLeadQueued = new UpdateLeadQueued();
146
+
147
+
148
+ module.exports = updateLeadQueued;
149
+