@ai-group/chat-sdk 3.6.5 → 3.6.7

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,56 @@ 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 deduplicateMessages = function deduplicateMessages(messageItems) {
53
+ var seenMessageIds = new Set();
54
+ var hasDuplicate = false;
55
+ var uniqueIdMessages = messageItems.filter(function (messageItem) {
56
+ if (seenMessageIds.has(messageItem.id)) {
57
+ hasDuplicate = true;
58
+ return false;
59
+ }
60
+ seenMessageIds.add(messageItem.id);
61
+ return true;
62
+ });
63
+ var botTextGroups = new Map();
64
+ uniqueIdMessages.forEach(function (messageItem) {
65
+ var eventId = getMessageEventId(messageItem);
66
+ if (messageItem.role !== "bot" || !eventId || typeof messageItem.text !== "string") return;
67
+ var normalizedText = messageItem.text.replace(/\s+/g, " ").trim();
68
+ if (!normalizedText) return;
69
+ var fileKey = (messageItem.fileData || []).map(function (file) {
70
+ return file.fileUri;
71
+ }).join("|");
72
+ var groupKey = "".concat(eventId, "\0").concat(Boolean(messageItem.thought), "\0").concat(fileKey);
73
+ var group = botTextGroups.get(groupKey) || [];
74
+ group.push({
75
+ messageItem: messageItem,
76
+ normalizedText: normalizedText
77
+ });
78
+ botTextGroups.set(groupKey, group);
79
+ });
80
+ var redundantMessageIds = new Set();
81
+ botTextGroups.forEach(function (group) {
82
+ var completeTexts = [];
83
+ _toConsumableArray(group).sort(function (a, b) {
84
+ return b.normalizedText.length - a.normalizedText.length;
85
+ }).forEach(function (_ref) {
86
+ var messageItem = _ref.messageItem,
87
+ normalizedText = _ref.normalizedText;
88
+ if (completeTexts.some(function (completeText) {
89
+ return completeText.includes(normalizedText);
90
+ })) {
91
+ redundantMessageIds.add(messageItem.id);
92
+ hasDuplicate = true;
93
+ return;
94
+ }
95
+ completeTexts.push(normalizedText);
96
+ });
97
+ });
98
+ return hasDuplicate ? uniqueIdMessages.filter(function (messageItem) {
99
+ return !redundantMessageIds.has(messageItem.id);
100
+ }) : messageItems;
101
+ };
52
102
  var mapSessionMessages = function mapSessionMessages(sessionEvents) {
53
103
  var mapped = [];
54
104
  sessionEvents.forEach(function (item) {
@@ -232,22 +282,22 @@ var insertMissingSessionEvents = function insertMissingSessionEvents(currentMess
232
282
 
233
283
  // 后台会话连接状态
234
284
 
235
- function useADKChat(_ref) {
285
+ function useADKChat(_ref2) {
236
286
  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;
287
+ var _ref2$url = _ref2.url,
288
+ url = _ref2$url === void 0 ? window.location.origin : _ref2$url,
289
+ token = _ref2.token,
290
+ _ref2$config = _ref2.config,
291
+ config = _ref2$config === void 0 ? {} : _ref2$config,
292
+ _ref2$type = _ref2.type,
293
+ type = _ref2$type === void 0 ? "agentDebug" : _ref2$type,
294
+ _ref2$enabled = _ref2.enabled,
295
+ enabled = _ref2$enabled === void 0 ? true : _ref2$enabled,
296
+ strategies = _ref2.strategies,
297
+ onError = _ref2.onError,
298
+ onMessage = _ref2.onMessage,
299
+ onSuccess = _ref2.onSuccess,
300
+ onStream = _ref2.onStream;
251
301
  var _useState = useState(false),
252
302
  _useState2 = _slicedToArray(_useState, 2),
253
303
  loading = _useState2[0],
@@ -266,9 +316,9 @@ function useADKChat(_ref) {
266
316
  var tokenRef = useRef(token);
267
317
  tokenRef.current = token;
268
318
  // 应用配置
269
- var _ref2 = config || {},
270
- appNo = _ref2.appNo,
271
- showFirstSession = _ref2.showFirstSession;
319
+ var _ref3 = config || {},
320
+ appNo = _ref3.appNo,
321
+ showFirstSession = _ref3.showFirstSession;
272
322
  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
323
  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
324
  var _useState5 = useState(null),
@@ -330,13 +380,14 @@ function useADKChat(_ref) {
330
380
  currentSessionIdRef.current = currentSessionId;
331
381
  var mergedMessages = useMemo(function () {
332
382
  var fnResMap = {};
333
- messages.forEach(function (msg) {
383
+ var uniqueMessages = deduplicateMessages(messages);
384
+ uniqueMessages.forEach(function (msg) {
334
385
  if (msg.functionResponse) {
335
386
  var _msg$functionResponse;
336
387
  fnResMap[(msg === null || msg === void 0 || (_msg$functionResponse = msg.functionResponse) === null || _msg$functionResponse === void 0 ? void 0 : _msg$functionResponse.id) || ""] = msg.functionResponse;
337
388
  }
338
389
  });
339
- return messages.map(function (msg) {
390
+ return uniqueMessages.map(function (msg) {
340
391
  if (msg.functionCall) {
341
392
  var _msg$functionCall;
342
393
  return _objectSpread(_objectSpread({}, msg), {}, {
@@ -842,12 +893,12 @@ function useADKChat(_ref) {
842
893
 
843
894
  // 发送会话
844
895
  var startChat = /*#__PURE__*/function () {
845
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref3) {
846
- var _ref3$text, text, _ref3$files, files, functionResponse;
896
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref4) {
897
+ var _ref4$text, text, _ref4$files, files, functionResponse;
847
898
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
848
899
  while (1) switch (_context2.prev = _context2.next) {
849
900
  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;
901
+ _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
902
  if (!(loadingRef.current || sendingRef.current)) {
852
903
  _context2.next = 3;
853
904
  break;
@@ -939,13 +990,13 @@ function useADKChat(_ref) {
939
990
  }, _callee2, null, [[8,, 11, 14]]);
940
991
  }));
941
992
  return function startChat(_x) {
942
- return _ref4.apply(this, arguments);
993
+ return _ref5.apply(this, arguments);
943
994
  };
944
995
  }();
945
996
 
946
997
  // 重新发送会话
947
998
  var reChat = /*#__PURE__*/function () {
948
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
999
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
949
1000
  var lastUserIndex, newMessages, lastUserMessage, _lastUserMessage$text, text, _lastUserMessage$file, fileData;
950
1001
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
951
1002
  while (1) switch (_context3.prev = _context3.next) {
@@ -1013,7 +1064,7 @@ function useADKChat(_ref) {
1013
1064
  }, _callee3, null, [[14,, 17, 20]]);
1014
1065
  }));
1015
1066
  return function reChat() {
1016
- return _ref5.apply(this, arguments);
1067
+ return _ref6.apply(this, arguments);
1017
1068
  };
1018
1069
  }();
1019
1070
 
@@ -1077,7 +1128,7 @@ function useADKChat(_ref) {
1077
1128
 
1078
1129
  // 设置当前会话详情
1079
1130
  var setCurrentSession = /*#__PURE__*/function () {
1080
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(sessionId) {
1131
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(sessionId) {
1081
1132
  var prevSessionId, bg, _yield$fetchSessionDe, data, result, _appInfo$onboardingIn3, _appInfo$onboardingIn4;
1082
1133
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1083
1134
  while (1) switch (_context4.prev = _context4.next) {
@@ -1178,13 +1229,13 @@ function useADKChat(_ref) {
1178
1229
  }, _callee4, null, [[21,, 28, 32]]);
1179
1230
  }));
1180
1231
  return function setCurrentSession(_x2) {
1181
- return _ref6.apply(this, arguments);
1232
+ return _ref7.apply(this, arguments);
1182
1233
  };
1183
1234
  }();
1184
1235
 
1185
1236
  // 获取聊天记录
1186
1237
  var initAppConversations = /*#__PURE__*/function () {
1187
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1238
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1188
1239
  var fetchDetail,
1189
1240
  _yield$fetchSessionLi,
1190
1241
  _yield$fetchSessionLi2,
@@ -1288,13 +1339,13 @@ function useADKChat(_ref) {
1288
1339
  }, _callee5, null, [[1, 13, 16, 19]]);
1289
1340
  }));
1290
1341
  return function initAppConversations() {
1291
- return _ref7.apply(this, arguments);
1342
+ return _ref8.apply(this, arguments);
1292
1343
  };
1293
1344
  }();
1294
1345
 
1295
1346
  // 删除会话
1296
1347
  var deleteSession = /*#__PURE__*/function () {
1297
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(sessionId) {
1348
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(sessionId) {
1298
1349
  var _yield$closeSession, result;
1299
1350
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1300
1351
  while (1) switch (_context6.prev = _context6.next) {
@@ -1332,13 +1383,13 @@ function useADKChat(_ref) {
1332
1383
  }, _callee6);
1333
1384
  }));
1334
1385
  return function deleteSession(_x3) {
1335
- return _ref8.apply(this, arguments);
1386
+ return _ref9.apply(this, arguments);
1336
1387
  };
1337
1388
  }();
1338
1389
 
1339
1390
  // 点赞/点踩
1340
1391
  var likeMessage = /*#__PURE__*/function () {
1341
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(invocationId, isLike, feedbackData) {
1392
+ var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(invocationId, isLike, feedbackData) {
1342
1393
  var _yield$addFeedback, result;
1343
1394
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1344
1395
  while (1) switch (_context7.prev = _context7.next) {
@@ -1381,13 +1432,13 @@ function useADKChat(_ref) {
1381
1432
  }, _callee7);
1382
1433
  }));
1383
1434
  return function likeMessage(_x4, _x5, _x6) {
1384
- return _ref9.apply(this, arguments);
1435
+ return _ref10.apply(this, arguments);
1385
1436
  };
1386
1437
  }();
1387
1438
 
1388
1439
  // 更新会话名称
1389
1440
  var updateSession = /*#__PURE__*/function () {
1390
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(sessionId, title) {
1441
+ var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(sessionId, title) {
1391
1442
  var _yield$updateSessionT, result;
1392
1443
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1393
1444
  while (1) switch (_context8.prev = _context8.next) {
@@ -1422,13 +1473,13 @@ function useADKChat(_ref) {
1422
1473
  }, _callee8);
1423
1474
  }));
1424
1475
  return function updateSession(_x7, _x8) {
1425
- return _ref10.apply(this, arguments);
1476
+ return _ref11.apply(this, arguments);
1426
1477
  };
1427
1478
  }();
1428
1479
 
1429
1480
  // 初始化应用
1430
1481
  var initConfig = /*#__PURE__*/function () {
1431
- var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1482
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1432
1483
  var _yield$fetchAppConfig, data, result;
1433
1484
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1434
1485
  while (1) switch (_context9.prev = _context9.next) {
@@ -1479,7 +1530,7 @@ function useADKChat(_ref) {
1479
1530
  }, _callee9, null, [[0, 10, 13, 16]]);
1480
1531
  }));
1481
1532
  return function initConfig() {
1482
- return _ref11.apply(this, arguments);
1533
+ return _ref12.apply(this, arguments);
1483
1534
  };
1484
1535
  }();
1485
1536
 
@@ -1505,7 +1556,7 @@ function useADKChat(_ref) {
1505
1556
  var requesting = false;
1506
1557
  var pollingSessionId = currentSessionId;
1507
1558
  var poll = /*#__PURE__*/function () {
1508
- var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1559
+ var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1509
1560
  var _yield$fetchSessionDe2, data, result;
1510
1561
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1511
1562
  while (1) switch (_context10.prev = _context10.next) {
@@ -1548,7 +1599,7 @@ function useADKChat(_ref) {
1548
1599
  }, _callee10, null, [[3, 12, 14, 17]]);
1549
1600
  }));
1550
1601
  return function poll() {
1551
- return _ref12.apply(this, arguments);
1602
+ return _ref13.apply(this, arguments);
1552
1603
  };
1553
1604
  }();
1554
1605
  void poll();