wechaty-web-panel 1.4.17 → 1.5.1

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 (53) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +3 -8
  3. package/dist/cjs/src/common/index.js +15 -23
  4. package/dist/cjs/src/handlers/on-login.js +1 -1
  5. package/dist/cjs/src/index.js +9 -1
  6. package/dist/cjs/src/lib/index.d.ts +0 -18
  7. package/dist/cjs/src/lib/index.js +1 -79
  8. package/dist/cjs/src/package-json.d.ts +1 -3
  9. package/dist/cjs/src/package-json.js +6 -8
  10. package/dist/cjs/src/proxy/aibotk.d.ts +0 -13
  11. package/dist/cjs/src/proxy/aibotk.js +2 -43
  12. package/dist/cjs/src/proxy/openAi.js +60 -8
  13. package/dist/cjs/src/proxy/openAiHook.d.ts +14 -0
  14. package/dist/cjs/src/proxy/openAiHook.js +132 -0
  15. package/dist/cjs/src/service/event-dispatch-service.js +7 -37
  16. package/dist/cjs/src/service/msg-filters.d.ts +0 -15
  17. package/dist/cjs/src/service/msg-filters.js +1 -64
  18. package/dist/esm/src/common/index.js +15 -23
  19. package/dist/esm/src/handlers/on-login.js +1 -1
  20. package/dist/esm/src/index.js +9 -1
  21. package/dist/esm/src/lib/index.d.ts +0 -18
  22. package/dist/esm/src/lib/index.js +0 -78
  23. package/dist/esm/src/package-json.d.ts +1 -3
  24. package/dist/esm/src/package-json.js +6 -8
  25. package/dist/esm/src/proxy/aibotk.d.ts +0 -13
  26. package/dist/esm/src/proxy/aibotk.js +1 -42
  27. package/dist/esm/src/proxy/openAi.js +34 -5
  28. package/dist/esm/src/proxy/openAiHook.d.ts +14 -0
  29. package/dist/esm/src/proxy/openAiHook.js +100 -0
  30. package/dist/esm/src/service/event-dispatch-service.js +9 -39
  31. package/dist/esm/src/service/msg-filters.d.ts +0 -15
  32. package/dist/esm/src/service/msg-filters.js +0 -63
  33. package/package.json +7 -9
  34. package/dist/cjs/src/db/roomAvatarDb.d.ts +0 -8
  35. package/dist/cjs/src/db/roomAvatarDb.js +0 -33
  36. package/dist/cjs/src/puppeteer-paint/drawHelp.d.ts +0 -20
  37. package/dist/cjs/src/puppeteer-paint/drawHelp.js +0 -242
  38. package/dist/cjs/src/puppeteer-paint/index.d.ts +0 -16
  39. package/dist/cjs/src/puppeteer-paint/index.js +0 -43
  40. package/dist/cjs/src/puppeteer-paint/lanuch.d.ts +0 -8
  41. package/dist/cjs/src/puppeteer-paint/lanuch.js +0 -44
  42. package/dist/cjs/src/puppeteer-paint/mainConfig.d.ts +0 -11
  43. package/dist/cjs/src/puppeteer-paint/mainConfig.js +0 -13
  44. package/dist/esm/src/db/roomAvatarDb.d.ts +0 -8
  45. package/dist/esm/src/db/roomAvatarDb.js +0 -27
  46. package/dist/esm/src/puppeteer-paint/drawHelp.d.ts +0 -20
  47. package/dist/esm/src/puppeteer-paint/drawHelp.js +0 -239
  48. package/dist/esm/src/puppeteer-paint/index.d.ts +0 -16
  49. package/dist/esm/src/puppeteer-paint/index.js +0 -38
  50. package/dist/esm/src/puppeteer-paint/lanuch.d.ts +0 -8
  51. package/dist/esm/src/puppeteer-paint/lanuch.js +0 -38
  52. package/dist/esm/src/puppeteer-paint/mainConfig.d.ts +0 -11
  53. package/dist/esm/src/puppeteer-paint/mainConfig.js +0 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## 更新日志
2
2
 
3
+ ### V1.4.18(2023-04-04)
4
+ 1、去除头像处理和群合影功能,因为占用依赖过大,且不稳定
5
+ 2、支持chatGPT 模型在线切换
6
+ 3、支持chatGPT 网页hook版本切换
7
+ 4、log格式优化,添加时间戳
8
+
3
9
  ### V1.4.17(2023-03-16)
4
10
  1、支持添加自己搭建或开放的的反向代理地址
5
11
  2、支持配置gpt返回内容是否带原问题
package/README.md CHANGED
@@ -49,7 +49,7 @@ Wechaty Web Panel 插件,让你的 wechaty 机器人快速接入 web 控制面
49
49
  - [x] 获取美女图 例: "美女图"
50
50
  - [x] 群合影 例: "群合影"
51
51
  - [x] 牛年头像 例: "牛气冲天"
52
- - [x] 国旗头像 例: "我要国旗"
52
+ - [x] 国旗头像 例: "我要国旗"(下线)
53
53
  - [ ] 更多待你发现
54
54
  - [x] 进群自动欢迎
55
55
  - [x] 加好友自动回复
@@ -62,7 +62,7 @@ Wechaty Web Panel 插件,让你的 wechaty 机器人快速接入 web 控制面
62
62
 
63
63
  * 特色功能
64
64
 
65
- - [x] 群合影
65
+ - [x] 群合影(下线)
66
66
  - [x] 主动发送消息
67
67
  - [x] 主动更新配置
68
68
  - [x] 主动同步好友和群列表
@@ -184,9 +184,4 @@ $ node mybot.js
184
184
 
185
185
  群消息同步
186
186
 
187
- <img src="./doc/img/async.png" width="300">
188
-
189
- 群合影
190
-
191
- <img src="./doc/img/group.jpeg" width="300">
192
-
187
+ <img src="./doc/img/async.png" width="300">
@@ -65,37 +65,30 @@ exports.getCountDownContent = getCountDownContent;
65
65
  async function updateContactInfo(that) {
66
66
  try {
67
67
  const contactSelf = await (0, userDb_js_1.getUser)();
68
- const hasWeixin = contactSelf && !!contactSelf.weixin;
69
68
  const contactList = await that.Contact.findAll() || [];
70
69
  let res = [];
71
70
  const notids = ['filehelper', 'fmessage'];
72
- let realContact = hasWeixin
73
- ? contactList.filter((item) => {
74
- const payload = item.payload || item._payload;
75
- return payload.type === 1 && payload.friend && !notids.includes(payload.id);
76
- })
77
- : contactList;
71
+ let realContact = contactList.filter((item) => {
72
+ const payload = item.payload || item._payload;
73
+ return payload.friend && !notids.includes(payload.id) && !payload.id.includes('gh_');
74
+ });
78
75
  for (let i of realContact) {
79
76
  let contact = i.payload || i._payload;
80
77
  let obj = {
81
- robotId: hasWeixin ? contactSelf.weixin : (0, index_js_1.MD5)(contactSelf.name),
82
- contactId: hasWeixin ? contact.id : (0, index_js_1.MD5)(contactSelf.name + contact.name + contact.alias + contact.province + contact.city + contact.gender),
78
+ robotId: contactSelf.robotId,
79
+ contactId: contact.id,
83
80
  wxid: contact.id,
84
- name: contact.name,
85
- alias: contact.alias,
81
+ name: contact.name || '',
82
+ alias: contact.alias || '',
86
83
  gender: contact.gender,
87
- province: contact.province,
88
- city: contact.city,
89
- avatar: hasWeixin ? contact.avatar : '',
84
+ avatar: contact.avatar || '',
90
85
  friend: contact.friend,
91
- signature: contact.signature,
92
- star: contact.star,
93
- type: hasWeixin ? contact.type : '',
94
- weixin: hasWeixin ? contact.weixin : '',
86
+ type: contact.type || '',
87
+ weixin: contact.weixin || '',
95
88
  };
96
89
  res.push(obj);
97
90
  }
98
- await updateFriendInfo(res, 50);
91
+ await updateFriendInfo(res, 80);
99
92
  }
100
93
  catch (e) {
101
94
  console.log('e', e);
@@ -121,15 +114,14 @@ async function updateFriendInfo(list, num) {
121
114
  async function updateRoomInfo(that) {
122
115
  try {
123
116
  const contactSelf = await (0, userDb_js_1.getUser)();
124
- const hasWeixin = contactSelf && !!contactSelf.weixin;
125
117
  const roomList = await that.Room.findAll() || [];
126
118
  let res = [];
127
119
  for (let i of roomList) {
128
120
  let room = i.payload || i._payload;
129
121
  let obj = {
130
- robotId: hasWeixin ? contactSelf.weixin : (0, index_js_1.MD5)(contactSelf.name),
122
+ robotId: contactSelf.robotId,
131
123
  wxid: room.id,
132
- roomId: (0, index_js_1.MD5)(room.topic),
124
+ roomId: room.id,
133
125
  topic: room.topic,
134
126
  avatar: room.avatar || '',
135
127
  ownerId: room.ownerId || '',
@@ -138,7 +130,7 @@ async function updateRoomInfo(that) {
138
130
  };
139
131
  res.push(obj);
140
132
  }
141
- await updateRoomsInfo(res, 40);
133
+ await updateRoomsInfo(res, 80);
142
134
  }
143
135
  catch (e) {
144
136
  console.log('e', e);
@@ -21,7 +21,7 @@ async function onLogin(user) {
21
21
  const payload = user.payload || user._payload;
22
22
  const userInfo = {
23
23
  ...payload,
24
- robotId: payload.weixin || (0, index_js_1.MD5)(user.name()),
24
+ robotId: payload.wxid || user.id,
25
25
  };
26
26
  await (0, userDb_js_1.addUser)(userInfo); // 全局存储登录用户信息
27
27
  let file = '';
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.WechatyWebPanelPlugin = void 0;
7
- require("isomorphic-fetch");
8
7
  const aiDb_js_1 = require("./db/aiDb.js");
9
8
  const on_scan_js_1 = __importDefault(require("./handlers/on-scan.js"));
10
9
  const on_login_js_1 = __importDefault(require("./handlers/on-login.js"));
@@ -17,6 +16,15 @@ const on_heartbeat_js_1 = __importDefault(require("./handlers/on-heartbeat.js"))
17
16
  const on_error_js_1 = __importDefault(require("./handlers/on-error.js"));
18
17
  const on_roomtopic_js_1 = __importDefault(require("./handlers/on-roomtopic.js"));
19
18
  const on_roomleave_js_1 = __importDefault(require("./handlers/on-roomleave.js"));
19
+ const dayjs_1 = __importDefault(require("dayjs"));
20
+ const originalConsoleLog = console.log;
21
+ // 重写 console.log 方法
22
+ console.log = function () {
23
+ // 在原始方法上调用,确保与原始方法相同的行为
24
+ originalConsoleLog.apply(console,
25
+ // 将类数组对象转换为数组,并在其开头添加一个时间戳
26
+ [`${(0, dayjs_1.default)().format('YYYY-MM-DD HH:mm:ss')} -`].concat(Array.from(arguments)).concat('\n'));
27
+ };
20
28
  let envKey = '';
21
29
  let envSecret = '';
22
30
  if (process.env['AIBOTK_KEY']) {
@@ -19,8 +19,6 @@ declare namespace _default {
19
19
  export { throttle };
20
20
  export { cancelAllSchedule };
21
21
  export { groupArray };
22
- export { getRoomAvatarList };
23
- export { getRoomAvatar };
24
22
  export { getNewsType };
25
23
  }
26
24
  export default _default;
@@ -149,22 +147,6 @@ export function cancelAllSchedule(type: any): void;
149
147
  * @param {*} subGroupLength 每个数组长度
150
148
  */
151
149
  export function groupArray(array: any, subGroupLength: any): any[];
152
- /**
153
- * 获取群用户列表
154
- * @param {*}} room
155
- * @param {*} name
156
- */
157
- export function getRoomAvatarList(room: any, name: any): Promise<({
158
- img: any;
159
- name: any;
160
- } | undefined)[] | undefined>;
161
- /**
162
- * 获取群头像列表
163
- * @param {*} roomObj
164
- * @param {*} roomName
165
- * @param {*} name
166
- */
167
- export function getRoomAvatar(roomObj: any, roomName: any, name: any): Promise<any>;
168
150
  /**
169
151
  * 获取新闻的英文
170
152
  * @param {*} msg
@@ -26,11 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getNewsType = exports.getRoomAvatar = exports.getRoomAvatarList = exports.groupArray = exports.cancelAllSchedule = exports.throttle = exports.msgArr = exports.contentDistinguish = exports.getFormatQuery = exports.MD5 = exports.writeFile = exports.randomRange = exports.getConstellation = exports.isRealDate = exports.formatDate = exports.getDay = exports.convertTime = exports.getToday = exports.delay = exports.parseBody = exports.setLocalSchedule = exports.Base64Decode = exports.Base64Encode = void 0;
29
+ exports.getNewsType = exports.groupArray = exports.cancelAllSchedule = exports.throttle = exports.msgArr = exports.contentDistinguish = exports.getFormatQuery = exports.MD5 = exports.writeFile = exports.randomRange = exports.getConstellation = exports.isRealDate = exports.formatDate = exports.getDay = exports.convertTime = exports.getToday = exports.delay = exports.parseBody = exports.setLocalSchedule = exports.Base64Decode = exports.Base64Encode = void 0;
30
30
  const crypto_1 = __importDefault(require("crypto"));
31
31
  const schedule = __importStar(require("node-schedule"));
32
32
  const fs_1 = __importDefault(require("fs"));
33
- const roomAvatarDb_js_1 = require("../db/roomAvatarDb.js");
34
33
  const dayjs_1 = __importDefault(require("dayjs"));
35
34
  /**
36
35
  * 设置定时器
@@ -493,81 +492,6 @@ function groupArray(array, subGroupLength) {
493
492
  return newArray;
494
493
  }
495
494
  exports.groupArray = groupArray;
496
- /**
497
- * 获取群用户列表
498
- * @param {*}} room
499
- * @param {*} name
500
- */
501
- async function getRoomAvatarList(room, name) {
502
- try {
503
- const members = await room.memberAll();
504
- let res = [];
505
- console.log('正在努力获取群成员信息...');
506
- for (let i of members) {
507
- let member = i.payload || i._payload;
508
- try {
509
- const avatar = await i.avatar();
510
- if (avatar._mediaType && avatar._name) {
511
- const base64 = member.weixin ? member.avatar : await avatar.toDataURL();
512
- let obj = {
513
- img: base64,
514
- name: member.name,
515
- };
516
- res.push(obj);
517
- }
518
- }
519
- catch (error) {
520
- console.log(`获取${member.name}头像失败, 头像文件格式错误,不影响群合影生成`);
521
- continue;
522
- }
523
- }
524
- const say = res.splice(res.findIndex((e) => e.name === name), 1);
525
- res.unshift(say[0]);
526
- console.log('获取群成员信息完成...');
527
- return res;
528
- }
529
- catch (e) {
530
- console.log('获取群成员头像列表失败', e);
531
- }
532
- }
533
- exports.getRoomAvatarList = getRoomAvatarList;
534
- /**
535
- * 设置中心位置
536
- */
537
- function setFirstAvatr(list, name) {
538
- const temp = list;
539
- const say = temp.splice(temp.findIndex((e) => e.name === name), 1);
540
- temp.unshift(say[0]);
541
- return temp;
542
- }
543
- /**
544
- * 获取群头像列表
545
- * @param {*} roomObj
546
- * @param {*} roomName
547
- * @param {*} name
548
- */
549
- async function getRoomAvatar(roomObj, roomName, name) {
550
- try {
551
- let memberList = [];
552
- const room = await (0, roomAvatarDb_js_1.getRoom)(roomName); // 先获取缓存中是否存在已经获取的头像
553
- if (room && room.list) {
554
- memberList = room.list;
555
- }
556
- else {
557
- const list = await getRoomAvatarList(roomObj, name);
558
- const obj = { name: roomName, list };
559
- await (0, roomAvatarDb_js_1.addRoom)(obj);
560
- memberList = list;
561
- }
562
- console.log('准备绘制...');
563
- const list = setFirstAvatr(memberList, name);
564
- return list;
565
- }
566
- catch (e) {
567
- console.log('getRoomAvatar error', e);
568
- }
569
- }
570
- exports.getRoomAvatar = getRoomAvatar;
571
495
  exports.default = {
572
496
  Base64Encode,
573
497
  Base64Decode,
@@ -589,8 +513,6 @@ exports.default = {
589
513
  throttle,
590
514
  cancelAllSchedule,
591
515
  groupArray,
592
- getRoomAvatarList,
593
- getRoomAvatar,
594
516
  getNewsType,
595
517
  };
596
518
  //# sourceMappingURL=index.js.map
@@ -42,6 +42,7 @@ export namespace packageJson {
42
42
  "npm-run-all": string;
43
43
  prettier: string;
44
44
  wechaty: string;
45
+ "wechaty-puppet-padlocal": string;
45
46
  };
46
47
  const readme: string;
47
48
  namespace engines {
@@ -53,15 +54,12 @@ export namespace packageJson {
53
54
  chatgpt: string;
54
55
  dayjs: string;
55
56
  "https-proxy-agent": string;
56
- "isomorphic-fetch": string;
57
- ix: string;
58
57
  jsonwebtoken: string;
59
58
  mqtt: string;
60
59
  mustache: string;
61
60
  nedb: string;
62
61
  "node-fetch": string;
63
62
  "node-schedule": string;
64
- puppeteer: string;
65
63
  "qrcode-terminal": string;
66
64
  superagent: string;
67
65
  };
@@ -6,7 +6,7 @@ exports.packageJson = void 0;
6
6
  */
7
7
  exports.packageJson = {
8
8
  "name": "wechaty-web-panel",
9
- "version": "1.4.17",
9
+ "version": "1.5.1",
10
10
  "description": "智能微秘书插件",
11
11
  "exports": {
12
12
  ".": {
@@ -59,27 +59,25 @@ exports.packageJson = {
59
59
  "eslint-plugin-prettier": "^3.1.4",
60
60
  "npm-run-all": "^4.1.5",
61
61
  "prettier": "^2.0.5",
62
- "wechaty": "^1.20.2"
62
+ "wechaty": "^1.20.2",
63
+ "wechaty-puppet-padlocal": "^1.20.1"
63
64
  },
64
65
  "readme": "README.md",
65
66
  "engines": {
66
- "node": ">=16",
67
- "npm": ">=7"
67
+ "node": ">=18",
68
+ "npm": ">=8"
68
69
  },
69
70
  "dependencies": {
70
71
  "axios": "^0.27.2",
71
- "chatgpt": "^5.1.1",
72
+ "chatgpt": "^5.2.2",
72
73
  "dayjs": "^1.11.7",
73
74
  "https-proxy-agent": "^5.0.1",
74
- "isomorphic-fetch": "^3.0.0",
75
- "ix": "^4.5.2",
76
75
  "jsonwebtoken": "^8.5.1",
77
76
  "mqtt": "^4.2.6",
78
77
  "mustache": "^4.2.0",
79
78
  "nedb": "^1.8.0",
80
79
  "node-fetch": "^2.6.9",
81
80
  "node-schedule": "^1.3.2",
82
- "puppeteer": "^13.3.2",
83
81
  "qrcode-terminal": "^0.12.0",
84
82
  "superagent": "^5.2.2"
85
83
  },
@@ -23,9 +23,7 @@ declare namespace _default {
23
23
  export { sendFriend };
24
24
  export { sendRoom };
25
25
  export { asyncData };
26
- export { drawRoomPhoto };
27
26
  export { updatePanelVersion };
28
- export { getRoomPhotoConfig };
29
27
  export { getMqttConfig };
30
28
  export { getMeiNv };
31
29
  export { getOne };
@@ -102,22 +100,11 @@ export function sendRoom(room: any): Promise<void>;
102
100
  * type: 1 好友 2 群组
103
101
  */
104
102
  export function asyncData(robotId: any, type: any): Promise<void>;
105
- /**
106
- * 生成群合影
107
- * @param {*}} roomName 群名
108
- * @param {*} list 群成员列表
109
- * @param {*} contactName 触发用户
110
- */
111
- export function drawRoomPhoto(roomName: any, list: any, contactName: any): Promise<any>;
112
103
  /**
113
104
  * 更新插件版本信息
114
105
  * @param {*} version
115
106
  */
116
107
  export function updatePanelVersion(): Promise<any>;
117
- /**
118
- * 获取群合影配置
119
- */
120
- export function getRoomPhotoConfig(roomName: any): Promise<any>;
121
108
  /**
122
109
  * 获取mqtt信息
123
110
  * @param {*} version
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFireNews = exports.getMaterial = exports.getOne = exports.getMeiNv = exports.getMqttConfig = exports.getRoomPhotoConfig = exports.updatePanelVersion = exports.drawRoomPhoto = exports.asyncData = exports.sendRoom = exports.sendFriend = exports.putqn = exports.sendRobotInfo = exports.sendError = exports.sendHeartBeat = exports.setQrCode = exports.updateSchedule = exports.setSchedule = exports.getScheduleList = exports.getConfig = exports.getWordCloud = exports.getWordCloudConfig = exports.getWordCloudRoom = void 0;
3
+ exports.getFireNews = exports.getMaterial = exports.getOne = exports.getMeiNv = exports.getMqttConfig = exports.updatePanelVersion = exports.asyncData = exports.sendRoom = exports.sendFriend = exports.putqn = exports.sendRobotInfo = exports.sendError = exports.sendHeartBeat = exports.setQrCode = exports.updateSchedule = exports.setSchedule = exports.getScheduleList = exports.getConfig = exports.getWordCloud = exports.getWordCloudConfig = exports.getWordCloudRoom = void 0;
4
4
  const superagent_js_1 = require("./superagent.js");
5
5
  const configDb_js_1 = require("../db/configDb.js");
6
6
  const package_json_js_1 = require("../package-json.js");
@@ -155,7 +155,7 @@ async function getConfig() {
155
155
  let content = await (0, superagent_js_1.aiBotReq)(option);
156
156
  const config = JSON.parse(content.data.config);
157
157
  const cloudRoom = await getWordCloudRoom();
158
- let cres = await (0, configDb_js_1.updateConfig)({ puppetType: 'wechaty-puppet-wechat', botScope: 'all', parseMini: false, showQuestion: true, proxyUrl: '', proxyPassUrl: '', countDownTaskSchedule: [], parseMiniRooms: [], preventLength: 1000, ...config, cloudRoom });
158
+ let cres = await (0, configDb_js_1.updateConfig)({ puppetType: 'wechaty-puppet-wechat', botScope: 'all', parseMini: false, showQuestion: true, openaiTimeout: 60, openaiAccessToken: '', openaiDebug: false, openaiModel: 'gpt-3.5-turbo', proxyUrl: '', proxyPassUrl: '', countDownTaskSchedule: [], parseMiniRooms: [], preventLength: 1000, ...config, cloudRoom });
159
159
  return cres;
160
160
  }
161
161
  catch (e) {
@@ -389,45 +389,6 @@ async function getQiToken() {
389
389
  console.log('token error', e);
390
390
  }
391
391
  }
392
- /**
393
- * 获取群合影配置
394
- */
395
- async function getRoomPhotoConfig(roomName) {
396
- try {
397
- let option = {
398
- method: 'get',
399
- url: '/roomPhoto',
400
- params: { name: roomName },
401
- };
402
- let content = await (0, superagent_js_1.aiBotReq)(option);
403
- return content.data || '';
404
- }
405
- catch (e) {
406
- console.log('群合影生成错误', e);
407
- }
408
- }
409
- exports.getRoomPhotoConfig = getRoomPhotoConfig;
410
- /**
411
- * 生成群合影
412
- * @param {*}} roomName 群名
413
- * @param {*} list 群成员列表
414
- * @param {*} contactName 触发用户
415
- */
416
- async function drawRoomPhoto(roomName, list, contactName) {
417
- try {
418
- let option = {
419
- method: 'POST',
420
- url: '/roomPhoto',
421
- params: { name: roomName, user: contactName, list: list },
422
- };
423
- let content = await (0, superagent_js_1.aiBotReq)(option);
424
- return content.data;
425
- }
426
- catch (e) {
427
- console.log('群合影生成错误', e);
428
- }
429
- }
430
- exports.drawRoomPhoto = drawRoomPhoto;
431
392
  /**
432
393
  * 上传base64图片到七牛云
433
394
  * @param base
@@ -531,9 +492,7 @@ exports.default = {
531
492
  sendFriend,
532
493
  sendRoom,
533
494
  asyncData,
534
- drawRoomPhoto,
535
495
  updatePanelVersion,
536
- getRoomPhotoConfig,
537
496
  getMqttConfig,
538
497
  getMeiNv,
539
498
  getOne,
@@ -1,26 +1,66 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.geGPT3Reply = exports.initGpt = exports.initChatGPT = void 0;
7
30
  const configDb_js_1 = require("../db/configDb.js");
8
- const chatgpt_1 = require("chatgpt");
9
31
  const https_proxy_agent_1 = __importDefault(require("https-proxy-agent"));
10
32
  const node_fetch_1 = __importDefault(require("node-fetch"));
11
33
  let chatGPT = null;
12
34
  let chatOption = {};
13
35
  async function initChatGPT() {
36
+ const { ChatGPTAPI } = await Promise.resolve().then(() => __importStar(require('chatgpt')));
14
37
  const config = await (0, configDb_js_1.allConfig)();
15
38
  if (!config.gpttoken) {
16
39
  console.log('请到智能微秘书平台配置Openai apikey参数方可使用');
17
40
  return [{ type: 1, content: '请到平台配置Openai apikey参数方可使用' }];
18
41
  }
19
42
  console.log('config.gpttoken', config.gpttoken);
43
+ const baseOptions = {
44
+ apiKey: config.gpttoken,
45
+ completionParams: { model: config.openaiModel },
46
+ debug: config.openaiDebug,
47
+ };
48
+ // increase max token limit if use gpt-4
49
+ if (config.openaiModel.toLowerCase().includes('gpt-4')) {
50
+ // if use 32k model
51
+ if (config.openaiModel.toLowerCase().includes('32k')) {
52
+ baseOptions.maxModelTokens = 32768;
53
+ baseOptions.maxResponseTokens = 8192;
54
+ }
55
+ else {
56
+ baseOptions.maxModelTokens = 8192;
57
+ baseOptions.maxResponseTokens = 2048;
58
+ }
59
+ }
20
60
  if (config.proxyUrl) {
21
61
  console.log(`启用代理请求:${config.proxyUrl}`);
22
- chatGPT = new chatgpt_1.ChatGPTAPI({
23
- apiKey: config.gpttoken,
62
+ chatGPT = new ChatGPTAPI({
63
+ ...baseOptions,
24
64
  fetch: (url, options = {}) => {
25
65
  const defaultOptions = {
26
66
  agent: (0, https_proxy_agent_1.default)(config.proxyUrl),
@@ -35,15 +75,27 @@ async function initChatGPT() {
35
75
  }
36
76
  else if (config.proxyPassUrl) {
37
77
  console.log(`启用反向代理请求:${config.proxyPassUrl}`);
38
- chatGPT = new chatgpt_1.ChatGPTAPI({
78
+ chatGPT = new ChatGPTAPI({
79
+ ...baseOptions,
39
80
  apiBaseUrl: config.proxyPassUrl,
40
- apiKey: config.gpttoken
81
+ fetch: (url, options = {}) => {
82
+ const mergedOptions = {
83
+ ...options,
84
+ };
85
+ return (0, node_fetch_1.default)(url, mergedOptions);
86
+ },
41
87
  });
42
88
  }
43
89
  else {
44
90
  console.log('未启用代理请求,可能会失败');
45
- chatGPT = new chatgpt_1.ChatGPTAPI({
46
- apiKey: config.gpttoken,
91
+ chatGPT = new ChatGPTAPI({
92
+ ...baseOptions,
93
+ fetch: (url, options = {}) => {
94
+ const mergedOptions = {
95
+ ...options,
96
+ };
97
+ return (0, node_fetch_1.default)(url, mergedOptions);
98
+ },
47
99
  });
48
100
  }
49
101
  }
@@ -67,7 +119,7 @@ async function geGPT3Reply(content, uid) {
67
119
  console.log('看到此消息说明已启用最新版chat gpt 3.5 turbo模型');
68
120
  await initChatGPT();
69
121
  }
70
- const { conversationId, text, id } = await chatGPT.sendMessage(content, chatOption[uid]);
122
+ const { conversationId, text, id } = await chatGPT.sendMessage(content, { ...chatOption[uid], timeoutMs: config.openaiTimeout * 1000 });
71
123
  chatOption = {
72
124
  [uid]: {
73
125
  conversationId,
@@ -0,0 +1,14 @@
1
+ export function initChatGPTHook(): Promise<{
2
+ type: number;
3
+ content: string;
4
+ }[] | undefined>;
5
+ /**
6
+ * 重置apikey
7
+ * @return {Promise<void>}
8
+ */
9
+ export function initGptHook(): Promise<void>;
10
+ export function geGPTHookReply(content: any, uid: any): Promise<{
11
+ type: number;
12
+ content: any;
13
+ }[]>;
14
+ //# sourceMappingURL=openAiHook.d.ts.map