wechaty-web-panel 1.6.112 → 1.6.113

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.
Files changed (109) hide show
  1. package/dist/bot/chatgpt/index.js +235 -0
  2. package/dist/bot/coze/sdk/index.js +110 -0
  3. package/dist/bot/dify/sdk/index.js +461 -0
  4. package/dist/bot/dify/sdk/office.js +319 -0
  5. package/dist/bot/fastgpt/index.js +98 -0
  6. package/dist/bot/qanything/index.js +136 -0
  7. package/dist/botInstance/coze.js +167 -0
  8. package/dist/botInstance/cozev3.js +157 -0
  9. package/dist/botInstance/dify.js +160 -0
  10. package/dist/botInstance/fastgpt.js +130 -0
  11. package/dist/botInstance/gpt4v.js +95 -0
  12. package/dist/botInstance/officialOpenAi.js +186 -0
  13. package/dist/botInstance/qany.js +144 -0
  14. package/dist/botInstance/sdk/chatGPT4V.js +89 -0
  15. package/dist/botInstance/sdk/coze.js +200 -0
  16. package/dist/botInstance/sdk/difyClient.js +354 -0
  17. package/dist/botInstance/sdk/pTimeout.js +97 -0
  18. package/dist/botInstance/sdk/qanything.js +137 -0
  19. package/dist/botInstance/sdk/quick-lru.js +237 -0
  20. package/dist/common/hook.js +66 -0
  21. package/dist/common/index.js +513 -0
  22. package/dist/common/multiReply.js +158 -0
  23. package/dist/common/reply.js +23 -0
  24. package/dist/const/puppet-type.js +71 -0
  25. package/dist/db/aiDb.js +27 -0
  26. package/dist/db/aichatDb.js +84 -0
  27. package/dist/db/chatHistory.js +137 -0
  28. package/dist/db/configDb.js +97 -0
  29. package/dist/db/global.js +62 -0
  30. package/dist/db/gptConfig.js +85 -0
  31. package/dist/db/nedb.js +88 -0
  32. package/dist/db/puppetDb.js +58 -0
  33. package/dist/db/roomDb.js +83 -0
  34. package/dist/db/rssConfig.js +82 -0
  35. package/dist/db/rssHistory.js +88 -0
  36. package/dist/db/userDb.js +27 -0
  37. package/dist/handlers/on-callback-message.js +183 -0
  38. package/dist/handlers/on-error.js +5 -0
  39. package/dist/handlers/on-friend.js +62 -0
  40. package/dist/handlers/on-heartbeat.js +20 -0
  41. package/dist/handlers/on-login.js +58 -0
  42. package/dist/handlers/on-logout.js +17 -0
  43. package/dist/handlers/on-message.js +644 -0
  44. package/dist/handlers/on-ready.js +36 -0
  45. package/dist/handlers/on-record-message.js +56 -0
  46. package/dist/handlers/on-roomjoin.js +42 -0
  47. package/dist/handlers/on-roomleave.js +12 -0
  48. package/dist/handlers/on-roomtopic.js +16 -0
  49. package/dist/handlers/on-scan.js +64 -0
  50. package/dist/handlers/on-verifycode.js +42 -0
  51. package/dist/index.js +81 -69306
  52. package/dist/lib/contentCensor.js +23 -0
  53. package/dist/lib/index.js +562 -0
  54. package/dist/lib/oss.js +43 -0
  55. package/dist/lib/s3oss.js +33 -0
  56. package/dist/mcp/mcp-server.js +26 -0
  57. package/dist/mcp/src/config/database.js +51 -0
  58. package/dist/mcp/src/index.js +238 -0
  59. package/dist/mcp/src/mcp/schemas.js +178 -0
  60. package/dist/mcp/src/mcp/server.js +421 -0
  61. package/dist/mcp/src/mcp/streamable-server.js +690 -0
  62. package/dist/mcp/src/models/ChatMessage.js +151 -0
  63. package/dist/mcp/src/models/Friend.js +64 -0
  64. package/dist/mcp/src/models/Group.js +55 -0
  65. package/dist/mcp/src/models/GroupMember.js +67 -0
  66. package/dist/mcp/src/models/index.js +27 -0
  67. package/dist/mcp/src/scripts/migrate.js +21 -0
  68. package/dist/mcp/src/services/ChatDataService.js +284 -0
  69. package/dist/mcp/src/services/McpService.js +521 -0
  70. package/dist/mcp/src/services/McpTools.js +504 -0
  71. package/dist/mcp/streamable-examples.js +283 -0
  72. package/dist/mcp/streamable-server.js +79 -0
  73. package/dist/mcp/test-mcp.js +64 -0
  74. package/dist/mcp/test-streamable-server.js +86 -0
  75. package/dist/package-json.js +89 -0
  76. package/dist/proxy/aibotk.js +829 -0
  77. package/dist/proxy/api.js +431 -0
  78. package/dist/proxy/apib.js +587 -0
  79. package/dist/proxy/bot/chatgpt.js +38 -0
  80. package/dist/proxy/bot/coze.js +38 -0
  81. package/dist/proxy/bot/cozev3.js +38 -0
  82. package/dist/proxy/bot/dify.js +38 -0
  83. package/dist/proxy/bot/dispatch.js +81 -0
  84. package/dist/proxy/bot/fastgpt.js +27 -0
  85. package/dist/proxy/bot/qany.js +27 -0
  86. package/dist/proxy/config.js +14 -0
  87. package/dist/proxy/cozeAi.js +60 -0
  88. package/dist/proxy/cozeV3Ai.js +60 -0
  89. package/dist/proxy/difyAi.js +58 -0
  90. package/dist/proxy/fastgpt.js +55 -0
  91. package/dist/proxy/mqtt.js +275 -0
  92. package/dist/proxy/multimodal.js +122 -0
  93. package/dist/proxy/openAi.js +63 -0
  94. package/dist/proxy/outapi.js +62 -0
  95. package/dist/proxy/qAnyAi.js +57 -0
  96. package/dist/proxy/superagent.js +200 -0
  97. package/dist/proxy/tencent-open.js +255 -0
  98. package/dist/service/event-dispatch-service.js +309 -0
  99. package/dist/service/gpt4vService.js +45 -0
  100. package/dist/service/msg-filter-service.js +121 -0
  101. package/dist/service/msg-filters.js +645 -0
  102. package/dist/service/room-async-service.js +455 -0
  103. package/dist/task/index.js +535 -0
  104. package/dist/task/rss.js +174 -0
  105. package/package.json +2 -2
  106. package/src/package-json.js +2 -2
  107. package/tsconfig.json +3 -12
  108. package/dist/index.d.ts +0 -9
  109. package/tsconfig.cjs.json +0 -12
@@ -0,0 +1,587 @@
1
+ import { req, txReq } from './superagent.js';
2
+ import { EMOHOST, TULING, MEINV } from './config.js';
3
+ import { randomRange, MD5 } from '../lib/index.js';
4
+ import { allConfig } from '../db/configDb.js';
5
+ import { getFireNews } from "./aibotk.js";
6
+ import { getPuppetEol } from "../const/puppet-type.js";
7
+ /**
8
+ * 天行聊天机器人
9
+ * @param {*} word 内容
10
+ * @param {*} id id
11
+ */
12
+ async function getResByTX(word, id) {
13
+ try {
14
+ const eol = await getPuppetEol();
15
+ let uniqueId = MD5(id);
16
+ let option = {
17
+ method: 'GET',
18
+ url: '/txapi/robot/',
19
+ params: { question: word, userid: uniqueId },
20
+ };
21
+ let res = await txReq(option);
22
+ if (res.code === 200) {
23
+ let response = '';
24
+ let content = res.newslist[0];
25
+ if (content.datatype === 'text') {
26
+ response = content.reply.replaceAll('\n', eol).replace(/<br>/g, eol);
27
+ }
28
+ else if (content.datatype === 'view') {
29
+ let reply = '';
30
+ content.reply.forEach((item) => {
31
+ reply = reply + `《${item.title}》:${item.url}${eol}`;
32
+ });
33
+ response = `虽然我不太懂你说的是什么,但是感觉很高级的样子,因此我也查找了类似的文章去学习,你觉得有用吗:\n${reply}`;
34
+ }
35
+ else {
36
+ response = '你太厉害了,说的话把我难倒了,我要去学习了,不然没法回答你的问题';
37
+ }
38
+ return response;
39
+ }
40
+ else {
41
+ console.log('天行机器人接口调用错误:', res.msg);
42
+ return '我好像迷失在无边的网络中了,你能找回我么';
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.log('天行聊天机器人请求失败:参考 http://wechat.aibotk.com/docs/install 在天行申请必选接口', error);
47
+ }
48
+ }
49
+ /**
50
+ * 图灵智能聊天机器人
51
+ * @param {*} word 内容
52
+ * @param {*} id id
53
+ */
54
+ async function getResByTL(word, id) {
55
+ const config = await allConfig();
56
+ const eol = await getPuppetEol();
57
+ try {
58
+ let uniqueId = MD5(id);
59
+ let data = {
60
+ reqType: 0,
61
+ perception: {
62
+ inputText: {
63
+ text: word,
64
+ },
65
+ },
66
+ userInfo: {
67
+ apiKey: config.tuLingKey,
68
+ userId: uniqueId,
69
+ },
70
+ };
71
+ let option = {
72
+ method: 'POST',
73
+ url: TULING,
74
+ params: data,
75
+ contentType: 'application/json;charset=UTF-8',
76
+ };
77
+ let content = await req(option);
78
+ let reply = content.results[0].values.text;
79
+ return reply.replaceAll('\n', eol).replace(/<br>/g, eol);
80
+ }
81
+ catch (error) {
82
+ console.log('图灵聊天机器人请求失败:', error);
83
+ }
84
+ }
85
+ /**
86
+ * 获取垃圾分类结果
87
+ * @param {String} word 垃圾名称
88
+ */
89
+ async function getRubbishType(word) {
90
+ const eol = await getPuppetEol();
91
+ try {
92
+ let option = {
93
+ method: 'GET',
94
+ url: '/txapi/lajifenlei/',
95
+ params: { word: word },
96
+ };
97
+ let content = await txReq(option);
98
+ if (content.code === 200) {
99
+ let type;
100
+ if (content.newslist[0].type == 0) {
101
+ type = '是可回收垃圾';
102
+ }
103
+ else if (content.newslist[0].type == 1) {
104
+ type = '是有害垃圾';
105
+ }
106
+ else if (content.newslist[0].type == 2) {
107
+ type = '是厨余(湿)垃圾';
108
+ }
109
+ else if (content.newslist[0].type == 3) {
110
+ type = '是其他(干)垃圾';
111
+ }
112
+ let response = `${content.newslist[0].name}${type}${eol}解释:${content.newslist[0].explain}${eol}主要包括:${content.newslist[0].contain}${eol}投放提示:${content.newslist[0].tip}`;
113
+ return response;
114
+ }
115
+ else {
116
+ console.log('查询失败提示:', content.msg);
117
+ return '暂时还没找到这个分类信息呢';
118
+ }
119
+ }
120
+ catch (error) {
121
+ console.log('垃圾分类请求失败:参考 http://wechat.aibotk.com/docs/install 在天行申请必选接口', error);
122
+ }
123
+ }
124
+ /**
125
+ * 土味情话获取
126
+ */
127
+ async function getSweetWord() {
128
+ const eol = await getPuppetEol();
129
+ try {
130
+ let option = {
131
+ method: 'GET',
132
+ url: '/txapi/saylove/',
133
+ params: {},
134
+ };
135
+ let content = await txReq(option);
136
+ if (content.code === 200) {
137
+ let sweet = content.newslist[0].content;
138
+ let str = sweet.replaceAll('\r\n', eol).replace(/<br>/g, eol).replaceAll('\n', eol);
139
+ return str;
140
+ }
141
+ else {
142
+ console.log('获取土情话接口失败', content.msg);
143
+ }
144
+ }
145
+ catch (err) {
146
+ console.log('获取土情话接口失败:参考 http://wechat.aibotk.com/docs/install 在天行申请必选接口', err);
147
+ }
148
+ }
149
+ /**
150
+ * 获取天行天气
151
+ */
152
+ async function getTXweather(city) {
153
+ const eol = await getPuppetEol();
154
+ try {
155
+ let option = {
156
+ method: 'GET',
157
+ url: '/txapi/tianqi/',
158
+ params: { city: city },
159
+ };
160
+ let content = await txReq(option);
161
+ if (content.code === 200) {
162
+ let todayInfo = content.newslist[0];
163
+ let obj = {
164
+ weatherTips: todayInfo.tips,
165
+ todayWeather: `今天:${todayInfo.weather}${eol}温度:${todayInfo.lowest}/${todayInfo.highest}${eol}${todayInfo.wind} ${todayInfo.windspeed}${eol}${eol}`,
166
+ };
167
+ return obj;
168
+ }
169
+ else {
170
+ console.log('获取天气接口失败', content.msg);
171
+ }
172
+ }
173
+ catch (err) {
174
+ console.log('获取天气接口失败:参考 http://wechat.aibotk.com/docs/install 在天行申请必选接口', err);
175
+ }
176
+ }
177
+ /**
178
+ * 获取每日新闻内容
179
+ * @param {*} id 新闻频道对应的ID
180
+ */
181
+ async function getNews(id, num = 10) {
182
+ if (id > 1000) {
183
+ return getFireNews(id, num);
184
+ }
185
+ const eol = await getPuppetEol();
186
+ try {
187
+ let option = {
188
+ method: 'GET',
189
+ url: '/allnews/',
190
+ params: { num: num, col: id },
191
+ };
192
+ let content = await txReq(option);
193
+ if (content.code === 200) {
194
+ let newList = content.newslist;
195
+ let news = '';
196
+ // let shortUrl = 'https://www.tianapi.com/weixin/news/?col=' + id
197
+ for (let i in newList) {
198
+ let num = parseInt(i) + 1;
199
+ news = `${news}${eol}${num}.${newList[i].title}`;
200
+ }
201
+ return `${news}${eol}`;
202
+ }
203
+ else {
204
+ console.log('获取新闻接口失败:请申请https://www.tianapi.com/apiview/51 这个接口', content.msg);
205
+ return '';
206
+ }
207
+ }
208
+ catch (error) {
209
+ console.log('获取天行新闻失败:请申请https://www.tianapi.com/apiview/51 这个接口', error);
210
+ return '';
211
+ }
212
+ }
213
+ /**
214
+ * 获取名人名言
215
+ */
216
+ async function getMingYan() {
217
+ const eol = await getPuppetEol();
218
+ try {
219
+ let option = {
220
+ method: 'GET',
221
+ url: '/txapi/mingyan/',
222
+ params: { num: 1 },
223
+ };
224
+ let content = await txReq(option);
225
+ if (content.code === 200) {
226
+ let newList = content.newslist;
227
+ let news = `${newList[0].content}${eol}——————————${newList[0].author}`;
228
+ return news;
229
+ }
230
+ else {
231
+ console.log('获取名人名言接口失败', content.msg);
232
+ }
233
+ }
234
+ catch (error) {
235
+ console.log('获取天行名人名言失败', error);
236
+ }
237
+ }
238
+ /**
239
+ * 获取星座运势
240
+ * @param {string} satro 星座
241
+ */
242
+ async function getStar(astro) {
243
+ const eol = await getPuppetEol();
244
+ try {
245
+ let option = {
246
+ method: 'GET',
247
+ url: '/txapi/star/',
248
+ params: { astro: astro },
249
+ };
250
+ let content = await txReq(option);
251
+ if (content.code === 200) {
252
+ let newList = content.newslist;
253
+ let news = '';
254
+ for (let item of newList) {
255
+ news = `${news}${item.type}:${item.content}${eol}`;
256
+ }
257
+ return news;
258
+ }
259
+ else {
260
+ console.log('获取星座接口失败', content.msg);
261
+ }
262
+ }
263
+ catch (error) {
264
+ console.log('获取天行星座运势失败', error);
265
+ }
266
+ }
267
+ /**
268
+ * 获取姓氏起源
269
+ * @param {string} 姓
270
+ */
271
+ async function getXing(name) {
272
+ try {
273
+ let option = {
274
+ method: 'GET',
275
+ url: '/txapi/surname/',
276
+ params: { xing: name },
277
+ };
278
+ let content = await txReq(option);
279
+ if (content.code === 200) {
280
+ let newList = content.newslist;
281
+ let news = `${newList[0].content}`;
282
+ return news;
283
+ }
284
+ else {
285
+ console.log('获取姓氏接口失败', content.msg);
286
+ }
287
+ }
288
+ catch (error) {
289
+ console.log('获取天行姓氏起源失败', error);
290
+ }
291
+ }
292
+ /**
293
+ * 获取顺口溜
294
+ */
295
+ async function getSkl() {
296
+ try {
297
+ let option = {
298
+ method: 'GET',
299
+ url: '/txapi/skl/',
300
+ params: {},
301
+ };
302
+ let content = await txReq(option);
303
+ if (content.code === 200) {
304
+ let newList = content.newslist;
305
+ let news = `${newList[0].content}`;
306
+ return news;
307
+ }
308
+ }
309
+ catch (error) {
310
+ console.log('获取天行顺口溜失败', error);
311
+ }
312
+ }
313
+ /**
314
+ * 获取老黄历
315
+ */
316
+ async function getLunar(date) {
317
+ const eol = await getPuppetEol();
318
+ try {
319
+ let option = {
320
+ method: 'GET',
321
+ url: '/txapi/lunar/',
322
+ params: { date: date },
323
+ };
324
+ let content = await txReq(option);
325
+ if (content.code === 200) {
326
+ let item = content.newslist[0];
327
+ let news = `阳历:${item.gregoriandate}${eol}阴历:${item.lunardate}${eol}节日:${item.lunar_festival}${eol}适宜:${item.fitness}${eol}不宜:${item.taboo}${eol}神位:${item.shenwei}${eol}胎神:${item.taishen}${eol}冲煞:${item.chongsha}${eol}岁煞:${item.suisha}`;
328
+ return news;
329
+ }
330
+ else {
331
+ console.log('获取老黄历接口失败', content.msg);
332
+ }
333
+ }
334
+ catch (error) {
335
+ console.log('获取天行老黄历失败', error);
336
+ }
337
+ }
338
+ /**
339
+ * 天行神回复
340
+ */
341
+ async function getGoldReply() {
342
+ const eol = await getPuppetEol();
343
+ try {
344
+ let option = {
345
+ method: 'GET',
346
+ url: '/txapi/godreply/',
347
+ params: { num: 1 },
348
+ };
349
+ let content = await txReq(option);
350
+ if (content.code === 200) {
351
+ let item = content.newslist[0];
352
+ let news = `标题:"${item.title}"${eol}回复:${item.content}`;
353
+ return news;
354
+ }
355
+ else {
356
+ console.log("获取神回复接口失败", content.msg);
357
+ }
358
+ }
359
+ catch (error) {
360
+ console.log('获取天行神回复失败', error);
361
+ }
362
+ }
363
+ /**
364
+ * 天行歇后语
365
+ */
366
+ async function getXhy() {
367
+ try {
368
+ let option = {
369
+ method: 'GET',
370
+ url: '/txapi/xiehou/',
371
+ params: { num: 1 },
372
+ };
373
+ let content = await txReq(option);
374
+ if (content.code === 200) {
375
+ let item = content.newslist[0];
376
+ let news = `${item.quest}————${item.result}`;
377
+ return news;
378
+ }
379
+ else {
380
+ console.log('获取歇后语接口失败', content.msg);
381
+ }
382
+ }
383
+ catch (error) {
384
+ console.log('获取天行歇后语失败', error);
385
+ }
386
+ }
387
+ /**
388
+ * 天行绕口令
389
+ */
390
+ async function getRkl() {
391
+ try {
392
+ let option = {
393
+ method: 'GET',
394
+ url: '/txapi/rkl/',
395
+ params: { num: 1 },
396
+ };
397
+ let content = await txReq(option);
398
+ if (content.code === 200) {
399
+ let item = content.newslist[0];
400
+ let news = `${item.content}`;
401
+ return news;
402
+ }
403
+ else {
404
+ console.log('获取绕口令接口失败', content.msg);
405
+ }
406
+ }
407
+ catch (error) {
408
+ console.log('获取天行绕口令失败', error);
409
+ }
410
+ }
411
+ /**
412
+ * 天行短连接
413
+ */
414
+ async function getShortUrl(url) {
415
+ try {
416
+ let option = {
417
+ method: 'GET',
418
+ url: '/txapi/turl/',
419
+ params: { url: url },
420
+ };
421
+ let content = await txReq(option);
422
+ if (content.code === 200) {
423
+ let item = content.newslist[0];
424
+ let shorturl = item.shorturl;
425
+ return shorturl;
426
+ }
427
+ else {
428
+ console.log('获取短链接口失败', content.msg);
429
+ }
430
+ }
431
+ catch (error) {
432
+ console.log('获取天行短连接失败', error);
433
+ }
434
+ }
435
+ /**
436
+ * 获取自定义头像
437
+ * @param {*} base
438
+ * @param type
439
+ */
440
+ async function getAvatar(base, type) {
441
+ try {
442
+ let option = {
443
+ method: 'POST',
444
+ url: '/txapi/imgtx/index',
445
+ params: {
446
+ createid: type || 2,
447
+ img: 'data:image/jpeg;base64,' + base,
448
+ },
449
+ };
450
+ let content = await txReq(option);
451
+ if (content.code === 200) {
452
+ let item = content.newslist[0];
453
+ return item.picurl;
454
+ }
455
+ else {
456
+ console.log('获取自定义头像接口失败', content.msg);
457
+ }
458
+ }
459
+ catch (e) {
460
+ console.log('获取自定义头像失败', e);
461
+ }
462
+ }
463
+ /**
464
+ * 获取表情包
465
+ * @param {*} msg
466
+ */
467
+ async function getEmo(msg) {
468
+ console.log('msg', msg);
469
+ try {
470
+ let option = {
471
+ method: 'get',
472
+ url: `${EMOHOST}keyword=${encodeURIComponent(msg)}`,
473
+ contentType: 'application/json;charset=UTF-8',
474
+ params: {},
475
+ };
476
+ let content = await req(option);
477
+ if (content.totalSize > 0) {
478
+ if (content.items && content.items.length > 0) {
479
+ let arr = [];
480
+ for (let i of content.items) {
481
+ if (i.url.includes('.jpg') || i.url.includes('.gif')) {
482
+ arr.push(i);
483
+ }
484
+ }
485
+ let item = arr[randomRange(0, arr.length)];
486
+ if (item.url) {
487
+ return item.url;
488
+ }
489
+ else {
490
+ return 'http://img.doutula.com/production/uploads/image/2017/11/30/20171130047004_PiJlhx.gif';
491
+ }
492
+ }
493
+ else {
494
+ return 'http://img.doutula.com/production/uploads/image/2017/11/30/20171130047004_PiJlhx.gif';
495
+ }
496
+ }
497
+ }
498
+ catch (e) {
499
+ console.log('获取表情包失败', e);
500
+ }
501
+ }
502
+ /**
503
+ * 获取美女图片
504
+ */
505
+ async function getMeiNv() {
506
+ try {
507
+ let option = {
508
+ method: 'get',
509
+ url: MEINV,
510
+ contentType: 'application/json;charset=UTF-8',
511
+ params: {},
512
+ };
513
+ let content = await req(option);
514
+ if (content.imgurl) {
515
+ let url = content.imgurl;
516
+ return url.includes('.jpg') ? url : 'https://tva2.sinaimg.cn/large/0072Vf1pgy1foxkcsx9rmj31hc0u0h9k.jpg';
517
+ }
518
+ }
519
+ catch (e) {
520
+ console.log('获取美女图片失败', e);
521
+ return 'https://tva2.sinaimg.cn/large/0072Vf1pgy1foxkcsx9rmj31hc0u0h9k.jpg';
522
+ }
523
+ }
524
+ /**
525
+ * 天行网络取名
526
+ */
527
+ async function getCname() {
528
+ try {
529
+ let option = {
530
+ method: 'GET',
531
+ url: '/txapi/cname/index',
532
+ };
533
+ let content = await txReq(option);
534
+ if (content.code === 200) {
535
+ let item = content.newslist[0];
536
+ let cname = item.name;
537
+ return cname;
538
+ }
539
+ else {
540
+ console.log('获取网络取名接口失败', content.msg);
541
+ }
542
+ }
543
+ catch (error) {
544
+ console.log('获取天行短连接失败', error);
545
+ }
546
+ }
547
+ export { getResByTXTL };
548
+ export { getResByTX };
549
+ export { getResByTL };
550
+ export { getTXweather };
551
+ export { getRubbishType };
552
+ export { getSweetWord };
553
+ export { getNews };
554
+ export { getMingYan };
555
+ export { getStar };
556
+ export { getXing };
557
+ export { getSkl };
558
+ export { getLunar };
559
+ export { getGoldReply };
560
+ export { getXhy };
561
+ export { getRkl };
562
+ export { getAvatar };
563
+ export { getEmo };
564
+ export { getMeiNv };
565
+ export { getCname };
566
+ export default {
567
+ getResByTXTL,
568
+ getResByTX,
569
+ getResByTL,
570
+ getTXweather,
571
+ getRubbishType,
572
+ getSweetWord,
573
+ getNews,
574
+ getMingYan,
575
+ getStar,
576
+ getXing,
577
+ getSkl,
578
+ getLunar,
579
+ getGoldReply,
580
+ getXhy,
581
+ getRkl,
582
+ getAvatar,
583
+ getEmo,
584
+ getMeiNv,
585
+ getCname,
586
+ };
587
+ //# sourceMappingURL=apib.js.map
@@ -0,0 +1,38 @@
1
+ import OfficialOpenAi from "../../botInstance/officialOpenAi.js";
2
+ import { getPromotInfo } from "../aibotk.js";
3
+ let chatGPT = {};
4
+ export function reset(adminId) {
5
+ if (!chatGPT[adminId])
6
+ return;
7
+ chatGPT[adminId].reset();
8
+ chatGPT[adminId] = null;
9
+ }
10
+ export function resetAll() {
11
+ Object.keys(chatGPT).forEach(key => {
12
+ if (chatGPT[key]) {
13
+ chatGPT[key].reset();
14
+ }
15
+ });
16
+ chatGPT = {};
17
+ }
18
+ export async function getChatGPTReply({ content, variables, file }, uid, adminId, config = { token: "", debug: false, proxyPass: "", proxyUrl: "", showQuestion: false, timeoutMs: 80, model: "", systemMessage: "", keywordSystemMessages: [], ignoreFiles: false, filterLinkContent: false }) {
19
+ if (!config.token) {
20
+ console.log('请到智能微秘书平台配置Openai apikey参数方可使用');
21
+ return [{ type: 1, content: '请到平台配置Openai apikey参数方可使用' }];
22
+ }
23
+ if (!chatGPT[adminId]) {
24
+ chatGPT[adminId] = new OfficialOpenAi(config);
25
+ }
26
+ let systemMessage = '';
27
+ if (config.keywordSystemMessages && config.keywordSystemMessages.length) {
28
+ const finalSystemMsg = config.keywordSystemMessages.find(item => content.startsWith(item.keyword));
29
+ if (finalSystemMsg && finalSystemMsg.promotId) {
30
+ const promotInfo = await getPromotInfo(finalSystemMsg.promotId);
31
+ console.log(`触发关键词角色功能,使用对应预设角色:${promotInfo.name}`);
32
+ systemMessage = promotInfo.promot;
33
+ content = content.replace(finalSystemMsg.keyword, '');
34
+ }
35
+ }
36
+ return await chatGPT[adminId].getReply({ content, uid, adminId, systemMessage, file });
37
+ }
38
+ //# sourceMappingURL=chatgpt.js.map
@@ -0,0 +1,38 @@
1
+ import CozeAi from "../../botInstance/coze.js";
2
+ import { getPromotInfo } from "../aibotk.js";
3
+ let chatCoze = {};
4
+ export function reset(adminId) {
5
+ if (!chatCoze[adminId])
6
+ return;
7
+ chatCoze[adminId].reset();
8
+ chatCoze[adminId] = null;
9
+ }
10
+ export function resetAll() {
11
+ Object.keys(chatCoze).forEach(key => {
12
+ if (chatCoze[key]) {
13
+ chatCoze[key].reset();
14
+ }
15
+ });
16
+ chatCoze = {};
17
+ }
18
+ export async function getCozeReply(content, uid, adminId, config = { token: "", debug: false, proxyPass: "", proxyUrl: "", showQuestion: false, timeoutMs: 80, model: "", systemMessage: "", keywordSystemMessages: [], ignoreFiles: false, filterLinkContent: false }) {
19
+ if (!config.token || !config.botId) {
20
+ console.log('请到智能微秘书平台配置Coze token 和 botId参数方可使用');
21
+ return [{ type: 1, content: '请到平台配置Coze token 和 botId参数方可使用' }];
22
+ }
23
+ if (!chatCoze[adminId]) {
24
+ chatCoze[adminId] = new CozeAi(config);
25
+ }
26
+ let systemMessage = '';
27
+ if (config.keywordSystemMessages && config.keywordSystemMessages.length) {
28
+ const finalSystemMsg = config.keywordSystemMessages.find(item => content.startsWith(item.keyword));
29
+ if (finalSystemMsg && finalSystemMsg.promotId) {
30
+ const promotInfo = await getPromotInfo(finalSystemMsg.promotId);
31
+ console.log(`触发关键词角色功能,使用对应预设角色:${promotInfo.name}`);
32
+ systemMessage = promotInfo.promot;
33
+ content = content.replace(finalSystemMsg.keyword, '');
34
+ }
35
+ }
36
+ return await chatCoze[adminId].getReply(content, uid, adminId, systemMessage);
37
+ }
38
+ //# sourceMappingURL=coze.js.map
@@ -0,0 +1,38 @@
1
+ import CozeV3Ai from "../../botInstance/cozev3.js";
2
+ import { getPromotInfo } from "../aibotk.js";
3
+ let cozeV3Ai = {};
4
+ export function reset(adminId) {
5
+ if (!cozeV3Ai[adminId])
6
+ return;
7
+ cozeV3Ai[adminId].reset();
8
+ cozeV3Ai[adminId] = null;
9
+ }
10
+ export function resetAll() {
11
+ Object.keys(cozeV3Ai).forEach(key => {
12
+ if (cozeV3Ai[key]) {
13
+ cozeV3Ai[key].reset();
14
+ }
15
+ });
16
+ cozeV3Ai = {};
17
+ }
18
+ export async function getCozeV3AiReply({ content, file, inputs }, uid, adminId, config = { token: "", botId: '', debug: false, proxyPass: "", proxyUrl: "", showQuestion: false, stream: false, timeoutMs: 180, systemMessage: "", keywordSystemMessages: [], ignoreFiles: false, filterLinkContent: false }) {
19
+ if (!config.token || !config.botId) {
20
+ console.log('请到智能微秘书平台配置Coze的 api秘钥方可使用');
21
+ return [{ type: 1, content: '请到智能微秘书平台配置Coze的 api秘钥方可使用' }];
22
+ }
23
+ if (!cozeV3Ai[adminId]) {
24
+ cozeV3Ai[adminId] = new CozeV3Ai(config);
25
+ }
26
+ let systemMessage = '';
27
+ if (config.keywordSystemMessages && config.keywordSystemMessages.length) {
28
+ const finalSystemMsg = config.keywordSystemMessages.find(item => content.startsWith(item.keyword));
29
+ if (finalSystemMsg && finalSystemMsg.promotId) {
30
+ const promotInfo = await getPromotInfo(finalSystemMsg.promotId);
31
+ console.log(`触发关键词角色功能,使用对应预设角色:${promotInfo.name}`);
32
+ systemMessage = promotInfo.promot;
33
+ content = content.replace(finalSystemMsg.keyword, '');
34
+ }
35
+ }
36
+ return await cozeV3Ai[adminId].getReply({ content, file, inputs }, uid, adminId, systemMessage);
37
+ }
38
+ //# sourceMappingURL=cozev3.js.map