@ai-group/chat-sdk 3.6.5 → 3.6.6

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.
@@ -49,6 +49,60 @@ var getMessageEventId = function getMessageEventId(messageItem) {
49
49
  var _messageItem$raw;
50
50
  return messageItem.eventId || ((_messageItem$raw = messageItem.raw) === null || _messageItem$raw === void 0 ? void 0 : _messageItem$raw.id);
51
51
  };
52
+ var getMessageInvocationId = function getMessageInvocationId(messageItem) {
53
+ var _messageItem$raw2;
54
+ return messageItem.invocationId || ((_messageItem$raw2 = messageItem.raw) === null || _messageItem$raw2 === void 0 ? void 0 : _messageItem$raw2.invocationId);
55
+ };
56
+ var deduplicateMessages = function deduplicateMessages(messageItems) {
57
+ var seenMessageIds = new Set();
58
+ var hasDuplicate = false;
59
+ var uniqueIdMessages = messageItems.filter(function (messageItem) {
60
+ if (seenMessageIds.has(messageItem.id)) {
61
+ hasDuplicate = true;
62
+ return false;
63
+ }
64
+ seenMessageIds.add(messageItem.id);
65
+ return true;
66
+ });
67
+ var botTextGroups = new Map();
68
+ uniqueIdMessages.forEach(function (messageItem) {
69
+ var invocationId = getMessageInvocationId(messageItem);
70
+ if (messageItem.role !== "bot" || !invocationId || typeof messageItem.text !== "string") return;
71
+ var normalizedText = messageItem.text.replace(/\s+/g, " ").trim();
72
+ if (!normalizedText) return;
73
+ var fileKey = (messageItem.fileData || []).map(function (file) {
74
+ return file.fileUri;
75
+ }).join("|");
76
+ var groupKey = "".concat(invocationId, "\0").concat(Boolean(messageItem.thought), "\0").concat(fileKey);
77
+ var group = botTextGroups.get(groupKey) || [];
78
+ group.push({
79
+ messageItem: messageItem,
80
+ normalizedText: normalizedText
81
+ });
82
+ botTextGroups.set(groupKey, group);
83
+ });
84
+ var redundantMessageIds = new Set();
85
+ botTextGroups.forEach(function (group) {
86
+ var completeTexts = [];
87
+ _toConsumableArray(group).sort(function (a, b) {
88
+ return b.normalizedText.length - a.normalizedText.length;
89
+ }).forEach(function (_ref) {
90
+ var messageItem = _ref.messageItem,
91
+ normalizedText = _ref.normalizedText;
92
+ if (completeTexts.some(function (completeText) {
93
+ return completeText.includes(normalizedText);
94
+ })) {
95
+ redundantMessageIds.add(messageItem.id);
96
+ hasDuplicate = true;
97
+ return;
98
+ }
99
+ completeTexts.push(normalizedText);
100
+ });
101
+ });
102
+ return hasDuplicate ? uniqueIdMessages.filter(function (messageItem) {
103
+ return !redundantMessageIds.has(messageItem.id);
104
+ }) : messageItems;
105
+ };
52
106
  var mapSessionMessages = function mapSessionMessages(sessionEvents) {
53
107
  var mapped = [];
54
108
  sessionEvents.forEach(function (item) {
@@ -205,10 +259,10 @@ var insertMissingSessionEvents = function insertMissingSessionEvents(currentMess
205
259
  return [event.id, index];
206
260
  }));
207
261
  var getMessageOrder = function getMessageOrder(messageItem) {
208
- var _messageItem$timestam, _messageItem$raw2;
262
+ var _messageItem$timestam, _messageItem$raw3;
209
263
  var eventId = getMessageEventId(messageItem);
210
264
  if (eventId && eventOrder.has(eventId)) return eventOrder.get(eventId);
211
- var timestamp = (_messageItem$timestam = messageItem.timestamp) !== null && _messageItem$timestam !== void 0 ? _messageItem$timestam : (_messageItem$raw2 = messageItem.raw) === null || _messageItem$raw2 === void 0 ? void 0 : _messageItem$raw2.timestamp;
265
+ var timestamp = (_messageItem$timestam = messageItem.timestamp) !== null && _messageItem$timestam !== void 0 ? _messageItem$timestam : (_messageItem$raw3 = messageItem.raw) === null || _messageItem$raw3 === void 0 ? void 0 : _messageItem$raw3.timestamp;
212
266
  if (timestamp !== undefined) {
213
267
  var nextEventIndex = sessionEvents.findIndex(function (event) {
214
268
  return (event.timestamp || 0) > timestamp;
@@ -232,22 +286,22 @@ var insertMissingSessionEvents = function insertMissingSessionEvents(currentMess
232
286
 
233
287
  // 后台会话连接状态
234
288
 
235
- function useADKChat(_ref) {
289
+ function useADKChat(_ref2) {
236
290
  var _config$session$pollS, _config$session, _config$session$sessi, _config$session2;
237
- var _ref$url = _ref.url,
238
- url = _ref$url === void 0 ? window.location.origin : _ref$url,
239
- token = _ref.token,
240
- _ref$config = _ref.config,
241
- config = _ref$config === void 0 ? {} : _ref$config,
242
- _ref$type = _ref.type,
243
- type = _ref$type === void 0 ? "agentDebug" : _ref$type,
244
- _ref$enabled = _ref.enabled,
245
- enabled = _ref$enabled === void 0 ? true : _ref$enabled,
246
- strategies = _ref.strategies,
247
- onError = _ref.onError,
248
- onMessage = _ref.onMessage,
249
- onSuccess = _ref.onSuccess,
250
- onStream = _ref.onStream;
291
+ var _ref2$url = _ref2.url,
292
+ url = _ref2$url === void 0 ? window.location.origin : _ref2$url,
293
+ token = _ref2.token,
294
+ _ref2$config = _ref2.config,
295
+ config = _ref2$config === void 0 ? {} : _ref2$config,
296
+ _ref2$type = _ref2.type,
297
+ type = _ref2$type === void 0 ? "agentDebug" : _ref2$type,
298
+ _ref2$enabled = _ref2.enabled,
299
+ enabled = _ref2$enabled === void 0 ? true : _ref2$enabled,
300
+ strategies = _ref2.strategies,
301
+ onError = _ref2.onError,
302
+ onMessage = _ref2.onMessage,
303
+ onSuccess = _ref2.onSuccess,
304
+ onStream = _ref2.onStream;
251
305
  var _useState = useState(false),
252
306
  _useState2 = _slicedToArray(_useState, 2),
253
307
  loading = _useState2[0],
@@ -266,9 +320,9 @@ function useADKChat(_ref) {
266
320
  var tokenRef = useRef(token);
267
321
  tokenRef.current = token;
268
322
  // 应用配置
269
- var _ref2 = config || {},
270
- appNo = _ref2.appNo,
271
- showFirstSession = _ref2.showFirstSession;
323
+ var _ref3 = config || {},
324
+ appNo = _ref3.appNo,
325
+ showFirstSession = _ref3.showFirstSession;
272
326
  var pollSessionEvents = (_config$session$pollS = config === null || config === void 0 || (_config$session = config.session) === null || _config$session === void 0 ? void 0 : _config$session.pollSessionEvents) !== null && _config$session$pollS !== void 0 ? _config$session$pollS : true;
273
327
  var sessionEventsPollingInterval = Math.max((_config$session$sessi = config === null || config === void 0 || (_config$session2 = config.session) === null || _config$session2 === void 0 ? void 0 : _config$session2.sessionEventsPollingInterval) !== null && _config$session$sessi !== void 0 ? _config$session$sessi : DEFAULT_SESSION_EVENTS_POLLING_INTERVAL, 1000);
274
328
  var _useState5 = useState(null),
@@ -330,13 +384,14 @@ function useADKChat(_ref) {
330
384
  currentSessionIdRef.current = currentSessionId;
331
385
  var mergedMessages = useMemo(function () {
332
386
  var fnResMap = {};
333
- messages.forEach(function (msg) {
387
+ var uniqueMessages = deduplicateMessages(messages);
388
+ uniqueMessages.forEach(function (msg) {
334
389
  if (msg.functionResponse) {
335
390
  var _msg$functionResponse;
336
391
  fnResMap[(msg === null || msg === void 0 || (_msg$functionResponse = msg.functionResponse) === null || _msg$functionResponse === void 0 ? void 0 : _msg$functionResponse.id) || ""] = msg.functionResponse;
337
392
  }
338
393
  });
339
- return messages.map(function (msg) {
394
+ return uniqueMessages.map(function (msg) {
340
395
  if (msg.functionCall) {
341
396
  var _msg$functionCall;
342
397
  return _objectSpread(_objectSpread({}, msg), {}, {
@@ -842,12 +897,12 @@ function useADKChat(_ref) {
842
897
 
843
898
  // 发送会话
844
899
  var startChat = /*#__PURE__*/function () {
845
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref3) {
846
- var _ref3$text, text, _ref3$files, files, functionResponse;
900
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref4) {
901
+ var _ref4$text, text, _ref4$files, files, functionResponse;
847
902
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
848
903
  while (1) switch (_context2.prev = _context2.next) {
849
904
  case 0:
850
- _ref3$text = _ref3.text, text = _ref3$text === void 0 ? "" : _ref3$text, _ref3$files = _ref3.files, files = _ref3$files === void 0 ? [] : _ref3$files, functionResponse = _ref3.functionResponse;
905
+ _ref4$text = _ref4.text, text = _ref4$text === void 0 ? "" : _ref4$text, _ref4$files = _ref4.files, files = _ref4$files === void 0 ? [] : _ref4$files, functionResponse = _ref4.functionResponse;
851
906
  if (!(loadingRef.current || sendingRef.current)) {
852
907
  _context2.next = 3;
853
908
  break;
@@ -939,13 +994,13 @@ function useADKChat(_ref) {
939
994
  }, _callee2, null, [[8,, 11, 14]]);
940
995
  }));
941
996
  return function startChat(_x) {
942
- return _ref4.apply(this, arguments);
997
+ return _ref5.apply(this, arguments);
943
998
  };
944
999
  }();
945
1000
 
946
1001
  // 重新发送会话
947
1002
  var reChat = /*#__PURE__*/function () {
948
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
1003
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
949
1004
  var lastUserIndex, newMessages, lastUserMessage, _lastUserMessage$text, text, _lastUserMessage$file, fileData;
950
1005
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
951
1006
  while (1) switch (_context3.prev = _context3.next) {
@@ -1013,7 +1068,7 @@ function useADKChat(_ref) {
1013
1068
  }, _callee3, null, [[14,, 17, 20]]);
1014
1069
  }));
1015
1070
  return function reChat() {
1016
- return _ref5.apply(this, arguments);
1071
+ return _ref6.apply(this, arguments);
1017
1072
  };
1018
1073
  }();
1019
1074
 
@@ -1077,7 +1132,7 @@ function useADKChat(_ref) {
1077
1132
 
1078
1133
  // 设置当前会话详情
1079
1134
  var setCurrentSession = /*#__PURE__*/function () {
1080
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(sessionId) {
1135
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(sessionId) {
1081
1136
  var prevSessionId, bg, _yield$fetchSessionDe, data, result, _appInfo$onboardingIn3, _appInfo$onboardingIn4;
1082
1137
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1083
1138
  while (1) switch (_context4.prev = _context4.next) {
@@ -1178,13 +1233,13 @@ function useADKChat(_ref) {
1178
1233
  }, _callee4, null, [[21,, 28, 32]]);
1179
1234
  }));
1180
1235
  return function setCurrentSession(_x2) {
1181
- return _ref6.apply(this, arguments);
1236
+ return _ref7.apply(this, arguments);
1182
1237
  };
1183
1238
  }();
1184
1239
 
1185
1240
  // 获取聊天记录
1186
1241
  var initAppConversations = /*#__PURE__*/function () {
1187
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1242
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1188
1243
  var fetchDetail,
1189
1244
  _yield$fetchSessionLi,
1190
1245
  _yield$fetchSessionLi2,
@@ -1288,13 +1343,13 @@ function useADKChat(_ref) {
1288
1343
  }, _callee5, null, [[1, 13, 16, 19]]);
1289
1344
  }));
1290
1345
  return function initAppConversations() {
1291
- return _ref7.apply(this, arguments);
1346
+ return _ref8.apply(this, arguments);
1292
1347
  };
1293
1348
  }();
1294
1349
 
1295
1350
  // 删除会话
1296
1351
  var deleteSession = /*#__PURE__*/function () {
1297
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(sessionId) {
1352
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(sessionId) {
1298
1353
  var _yield$closeSession, result;
1299
1354
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1300
1355
  while (1) switch (_context6.prev = _context6.next) {
@@ -1332,13 +1387,13 @@ function useADKChat(_ref) {
1332
1387
  }, _callee6);
1333
1388
  }));
1334
1389
  return function deleteSession(_x3) {
1335
- return _ref8.apply(this, arguments);
1390
+ return _ref9.apply(this, arguments);
1336
1391
  };
1337
1392
  }();
1338
1393
 
1339
1394
  // 点赞/点踩
1340
1395
  var likeMessage = /*#__PURE__*/function () {
1341
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(invocationId, isLike, feedbackData) {
1396
+ var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(invocationId, isLike, feedbackData) {
1342
1397
  var _yield$addFeedback, result;
1343
1398
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1344
1399
  while (1) switch (_context7.prev = _context7.next) {
@@ -1381,13 +1436,13 @@ function useADKChat(_ref) {
1381
1436
  }, _callee7);
1382
1437
  }));
1383
1438
  return function likeMessage(_x4, _x5, _x6) {
1384
- return _ref9.apply(this, arguments);
1439
+ return _ref10.apply(this, arguments);
1385
1440
  };
1386
1441
  }();
1387
1442
 
1388
1443
  // 更新会话名称
1389
1444
  var updateSession = /*#__PURE__*/function () {
1390
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(sessionId, title) {
1445
+ var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(sessionId, title) {
1391
1446
  var _yield$updateSessionT, result;
1392
1447
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1393
1448
  while (1) switch (_context8.prev = _context8.next) {
@@ -1422,13 +1477,13 @@ function useADKChat(_ref) {
1422
1477
  }, _callee8);
1423
1478
  }));
1424
1479
  return function updateSession(_x7, _x8) {
1425
- return _ref10.apply(this, arguments);
1480
+ return _ref11.apply(this, arguments);
1426
1481
  };
1427
1482
  }();
1428
1483
 
1429
1484
  // 初始化应用
1430
1485
  var initConfig = /*#__PURE__*/function () {
1431
- var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1486
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1432
1487
  var _yield$fetchAppConfig, data, result;
1433
1488
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1434
1489
  while (1) switch (_context9.prev = _context9.next) {
@@ -1479,7 +1534,7 @@ function useADKChat(_ref) {
1479
1534
  }, _callee9, null, [[0, 10, 13, 16]]);
1480
1535
  }));
1481
1536
  return function initConfig() {
1482
- return _ref11.apply(this, arguments);
1537
+ return _ref12.apply(this, arguments);
1483
1538
  };
1484
1539
  }();
1485
1540
 
@@ -1505,7 +1560,7 @@ function useADKChat(_ref) {
1505
1560
  var requesting = false;
1506
1561
  var pollingSessionId = currentSessionId;
1507
1562
  var poll = /*#__PURE__*/function () {
1508
- var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1563
+ var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1509
1564
  var _yield$fetchSessionDe2, data, result;
1510
1565
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1511
1566
  while (1) switch (_context10.prev = _context10.next) {
@@ -1548,7 +1603,7 @@ function useADKChat(_ref) {
1548
1603
  }, _callee10, null, [[3, 12, 14, 17]]);
1549
1604
  }));
1550
1605
  return function poll() {
1551
- return _ref12.apply(this, arguments);
1606
+ return _ref13.apply(this, arguments);
1552
1607
  };
1553
1608
  }();
1554
1609
  void poll();