@tiledesk/tiledesk-tybot-connector 2.0.29-rc5 → 2.0.30
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 -32
- package/TdCache copy.js +242 -0
- package/engine/TiledeskChatbotConst.js +1 -1
- package/engine/mock/MockBotsDataSource.js +2 -1
- package/index.js +0 -7
- package/logs/app1.log +42823 -0
- package/logs/app2.log +13816 -0
- package/package.json +2 -2
- package/services/{LLMService.js → KbService.js} +3 -3
- package/tiledeskChatbotPlugs/DirectivesChatbotPlug.js +12 -30
- package/tiledeskChatbotPlugs/directives/DirAiCondition.js +85 -33
- package/tiledeskChatbotPlugs/directives/DirAiPrompt.js +7 -7
- package/tiledeskChatbotPlugs/directives/DirAskGPTV2.js +7 -6
- package/tiledeskChatbotPlugs/directives/DirWebRequestV2.js +1 -1
- package/tiledeskChatbotPlugs/directives/DirWebRequestV2_old.js +418 -0
- package/tiledeskChatbotPlugs/directives/Directives.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
available on:
|
|
6
6
|
▶️ https://www.npmjs.com/package/@tiledesk/tiledesk-tybot-connector
|
|
7
7
|
|
|
8
|
-
# 2.0.
|
|
8
|
+
# 2.0.29
|
|
9
|
+
- added: support for reranking in DirAskKBV2
|
|
9
10
|
|
|
10
|
-
# 2.0.28
|
|
11
|
+
# 2.0.28
|
|
11
12
|
- bug-fixed: action-model not filled in dirAiPrompt
|
|
12
13
|
|
|
13
14
|
# 2.0.27
|
|
@@ -15,9 +16,6 @@ available on:
|
|
|
15
16
|
|
|
16
17
|
# 2.0.26
|
|
17
18
|
|
|
18
|
-
# 2.0.26-rc1
|
|
19
|
-
- added: check and skip private message from internal-notes
|
|
20
|
-
|
|
21
19
|
# 2.0.9
|
|
22
20
|
|
|
23
21
|
# 2.0.9-rc1
|
|
@@ -33,8 +31,6 @@ available on:
|
|
|
33
31
|
|
|
34
32
|
# v0.5.0
|
|
35
33
|
- added: AI_ENDPOINT env var
|
|
36
|
-
|
|
37
|
-
# v0.5.0-rc1
|
|
38
34
|
- added: ability to get 'none' as bodytype in webresponse
|
|
39
35
|
|
|
40
36
|
# v0.4.2
|
|
@@ -49,19 +45,6 @@ available on:
|
|
|
49
45
|
- changed: refactoring of DIrWebRequestv2
|
|
50
46
|
- bug-fixed: erro while parsing webrequestv2 body
|
|
51
47
|
|
|
52
|
-
# v0.3.5-rc4
|
|
53
|
-
- added: webhook action (same as intent one)
|
|
54
|
-
|
|
55
|
-
# v0.3.5-rc3
|
|
56
|
-
- bug-fixed: jsonBody parse error in web-request-v2
|
|
57
|
-
|
|
58
|
-
# v0.3.5-rc2
|
|
59
|
-
- bug-fixed: cannot set status of undefined reading res.status in DirAssistant
|
|
60
|
-
|
|
61
|
-
# v0.3.5-rc1
|
|
62
|
-
- changed: refactoring web-request-v2
|
|
63
|
-
- bug-fixed: jsonBody parse error in web-request-v2
|
|
64
|
-
|
|
65
48
|
# v0.3.4
|
|
66
49
|
-bug-fixed: slit is undefined in TiledeskChatbotUtils
|
|
67
50
|
|
|
@@ -71,18 +54,6 @@ available on:
|
|
|
71
54
|
# v0.3.2
|
|
72
55
|
- bug-fixed: minor improvement
|
|
73
56
|
|
|
74
|
-
# v0.2.153-rc9
|
|
75
|
-
- changed: updated tiledesk-multi-worker to 0.2.1-rc2
|
|
76
|
-
|
|
77
|
-
# v0.2.153-rc8
|
|
78
|
-
- added: fixToken function in TiledeskService utils class
|
|
79
|
-
|
|
80
|
-
# v0.2.153-rc4
|
|
81
|
-
- log added
|
|
82
|
-
|
|
83
|
-
# v0.2.153-rc3
|
|
84
|
-
- added: specchToText function to transcript audio file
|
|
85
|
-
|
|
86
57
|
# v0.2.153-rc1
|
|
87
58
|
- changed: context for gpt-40 and gpt-40-mini
|
|
88
59
|
|
package/TdCache copy.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
const redis = require('redis');
|
|
2
|
+
|
|
3
|
+
class TdCache {
|
|
4
|
+
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.redis_host = config.host;
|
|
7
|
+
this.redis_port = config.port;
|
|
8
|
+
this.redis_password = config.password;
|
|
9
|
+
this.client = null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async connect(callback) {
|
|
13
|
+
// client = redis.createClient();
|
|
14
|
+
return new Promise( async (resolve, reject) => {
|
|
15
|
+
this.client = redis.createClient(
|
|
16
|
+
{
|
|
17
|
+
host: this.redis_host,
|
|
18
|
+
port: this.redis_port,
|
|
19
|
+
password: this.redis_password
|
|
20
|
+
});
|
|
21
|
+
this.client.on('error', err => {
|
|
22
|
+
reject(err);
|
|
23
|
+
if (callback) {
|
|
24
|
+
callback(err);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// this.client.on('connect', function() {
|
|
28
|
+
// console.log('Redis Connected!');
|
|
29
|
+
// });
|
|
30
|
+
this.client.on('ready',function() {
|
|
31
|
+
console.log("connected")
|
|
32
|
+
resolve();
|
|
33
|
+
if (callback) {
|
|
34
|
+
callback();
|
|
35
|
+
}
|
|
36
|
+
//console.log("Redis is ready.");
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async set(key, value, options) {
|
|
42
|
+
//console.log("setting key value", key, value)
|
|
43
|
+
if (!options) {
|
|
44
|
+
options = {EX: 86400}
|
|
45
|
+
}
|
|
46
|
+
return new Promise( async (resolve, reject) => {
|
|
47
|
+
if (options && options.EX) {
|
|
48
|
+
//console.log("expires:", options.EX)
|
|
49
|
+
try {
|
|
50
|
+
await this.client.set(
|
|
51
|
+
key,
|
|
52
|
+
value,
|
|
53
|
+
'EX', options.EX);
|
|
54
|
+
}
|
|
55
|
+
catch(error) {
|
|
56
|
+
reject(error)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
try {
|
|
61
|
+
//console.log("setting here...key", key, value)
|
|
62
|
+
await this.client.set(
|
|
63
|
+
key,
|
|
64
|
+
value);
|
|
65
|
+
}
|
|
66
|
+
catch(error) {
|
|
67
|
+
console.error("Error", error);
|
|
68
|
+
reject(error)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (options && options.callback) {
|
|
72
|
+
options.callback();
|
|
73
|
+
}
|
|
74
|
+
//console.log("resolving...", key);
|
|
75
|
+
return resolve();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async incr(key) {
|
|
80
|
+
// console.log("incr key:", key)
|
|
81
|
+
return new Promise( async (resolve, reject) => {
|
|
82
|
+
try {
|
|
83
|
+
// console.log("incr here...key", key)
|
|
84
|
+
await this.client.incr(key);
|
|
85
|
+
}
|
|
86
|
+
catch(error) {
|
|
87
|
+
console.error("Error on incr:", error);
|
|
88
|
+
reject(error)
|
|
89
|
+
}
|
|
90
|
+
return resolve();
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async hset(dict_key, key, value, options) {
|
|
95
|
+
//console.log("hsetting dict_key key value", dict_key, key, value)
|
|
96
|
+
return new Promise( async (resolve, reject) => {
|
|
97
|
+
if (options && options.EX) {
|
|
98
|
+
//console.log("expires:", options.EX)
|
|
99
|
+
try {
|
|
100
|
+
await this.client.hset(
|
|
101
|
+
dict_key,
|
|
102
|
+
key,
|
|
103
|
+
value,
|
|
104
|
+
'EX', options.EX);
|
|
105
|
+
}
|
|
106
|
+
catch(error) {
|
|
107
|
+
reject(error)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
try {
|
|
112
|
+
//console.log("setting here...key", key, value)
|
|
113
|
+
await this.client.hset(
|
|
114
|
+
dict_key,
|
|
115
|
+
key,
|
|
116
|
+
value);
|
|
117
|
+
}
|
|
118
|
+
catch(error) {
|
|
119
|
+
console.error("Error", error);
|
|
120
|
+
reject(error)
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (options && options.callback) {
|
|
124
|
+
options.callback();
|
|
125
|
+
}
|
|
126
|
+
return resolve();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async hdel(dict_key, key, options) {
|
|
131
|
+
//console.log("hsetting dict_key key value", dict_key, key, value)
|
|
132
|
+
return new Promise( async (resolve, reject) => {
|
|
133
|
+
if (options && options.EX) {
|
|
134
|
+
//console.log("expires:", options.EX)
|
|
135
|
+
try {
|
|
136
|
+
await this.client.hdel(
|
|
137
|
+
dict_key,
|
|
138
|
+
key,
|
|
139
|
+
'EX', options.EX);
|
|
140
|
+
}
|
|
141
|
+
catch(error) {
|
|
142
|
+
reject(error)
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
try {
|
|
147
|
+
//console.log("setting here...key", key, value)
|
|
148
|
+
await this.client.hdel(
|
|
149
|
+
dict_key,
|
|
150
|
+
key);
|
|
151
|
+
}
|
|
152
|
+
catch(error) {
|
|
153
|
+
console.error("Error", error);
|
|
154
|
+
reject(error);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (options && options.callback) {
|
|
158
|
+
options.callback();
|
|
159
|
+
}
|
|
160
|
+
return resolve();
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async setJSON(key, value, options) {
|
|
165
|
+
const _string = JSON.stringify(value);
|
|
166
|
+
return await this.set(key, _string, options);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
async get(key, callback) {
|
|
170
|
+
//console.log("getting key", key)
|
|
171
|
+
return new Promise( async (resolve, reject) => {
|
|
172
|
+
this.client.get(key, (err, value) => {
|
|
173
|
+
if (err) {
|
|
174
|
+
reject(err);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
if (callback) {
|
|
178
|
+
callback(value);
|
|
179
|
+
}
|
|
180
|
+
return resolve(value);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async hgetall(dict_key, callback) {
|
|
187
|
+
//console.log("hgetting dics", dict_key);
|
|
188
|
+
return new Promise( async (resolve, reject) => {
|
|
189
|
+
this.client.hgetall(dict_key, (err, value) => {
|
|
190
|
+
if (err) {
|
|
191
|
+
reject(err);
|
|
192
|
+
if (callback) {
|
|
193
|
+
callback(err, null);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
if (callback) {
|
|
198
|
+
callback(null, value);
|
|
199
|
+
}
|
|
200
|
+
resolve(value);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
async hget(dict_key, key, callback) {
|
|
207
|
+
//console.log("hgetting dics", dict_key);
|
|
208
|
+
return new Promise( async (resolve, reject) => {
|
|
209
|
+
this.client.hget(dict_key, key, (err, value) => {
|
|
210
|
+
if (err) {
|
|
211
|
+
reject(err);
|
|
212
|
+
if (callback) {
|
|
213
|
+
callback(err, null);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
if (callback) {
|
|
218
|
+
callback(null, value);
|
|
219
|
+
}
|
|
220
|
+
resolve(value);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
async getJSON(key, callback) {
|
|
227
|
+
const value = await this.get(key);
|
|
228
|
+
return JSON.parse(value);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
async del(key, callback) {
|
|
232
|
+
return new Promise( async (resolve, reject) => {
|
|
233
|
+
await this.client.del(key);
|
|
234
|
+
if (callback) {
|
|
235
|
+
callback();
|
|
236
|
+
}
|
|
237
|
+
return resolve();
|
|
238
|
+
})
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
module.exports = { TdCache };
|
|
@@ -42,13 +42,13 @@ class TiledeskChatbotConst {
|
|
|
42
42
|
static REQ_LAST_USER_DOCUMENT_URL = 'lastUserDocumentURL';
|
|
43
43
|
static REQ_LAST_USER_DOCUMENT_NAME = 'lastUserDocumentName';
|
|
44
44
|
static REQ_LAST_USER_DOCUMENT_TYPE = 'lastUserDocumentType';
|
|
45
|
+
static REQ_EMAIL_ATTACHMENTS_LINK = 'link';
|
|
45
46
|
static REQ_EMAIL_SUBJECT = 'email_subject';
|
|
46
47
|
static REQ_EMAIL_TO = 'email_toEmail';
|
|
47
48
|
static REQ_EMAIL_FROM = 'email_fromEmail';
|
|
48
49
|
static REQ_EMAIL_MESSAGE_ID = 'email_messageId';
|
|
49
50
|
static REQ_EMAIL_REPLY_TO = 'email_replyTo';
|
|
50
51
|
static REQ_EMAIL_EML = 'email_eml';
|
|
51
|
-
static REQ_EMAIL_ATTACHMENTS_LINK = 'link';
|
|
52
52
|
static REQ_EMAIL_ATTACHMENTS_FILES = 'attachments'
|
|
53
53
|
}
|
|
54
54
|
|
package/index.js
CHANGED
|
@@ -104,9 +104,6 @@ router.post('/ext/:botid', async (req, res) => {
|
|
|
104
104
|
Promise.reject(err);
|
|
105
105
|
return;
|
|
106
106
|
});
|
|
107
|
-
|
|
108
|
-
winston.debug("(tybotRoute) Bot found: ", bot)
|
|
109
|
-
|
|
110
107
|
|
|
111
108
|
let intentsMachine;
|
|
112
109
|
let backupMachine;
|
|
@@ -173,10 +170,7 @@ router.post('/ext/:botid', async (req, res) => {
|
|
|
173
170
|
cache: tdcache
|
|
174
171
|
}
|
|
175
172
|
);
|
|
176
|
-
|
|
177
|
-
|
|
178
173
|
directivesPlug.processDirectives( () => {
|
|
179
|
-
|
|
180
174
|
winston.verbose("(tybotRoute) Actions - Directives executed.");
|
|
181
175
|
});
|
|
182
176
|
}
|
|
@@ -199,7 +193,6 @@ router.post('/ext/:botid', async (req, res) => {
|
|
|
199
193
|
TILEBOT_ENDPOINT: TILEBOT_ENDPOINT
|
|
200
194
|
});
|
|
201
195
|
apiext.sendSupportMessageExt(reply, projectId, requestId, token, () => {
|
|
202
|
-
|
|
203
196
|
winston.verbose("(tybotRoute) sendSupportMessageExt reply sent: ", reply)
|
|
204
197
|
});
|
|
205
198
|
}
|