@ai-group/chat-sdk 0.3.7 → 0.3.9

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.
@@ -93,7 +93,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
93
93
  if (url && config) {
94
94
  var initConfig = /*#__PURE__*/function () {
95
95
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
96
- var result, _result$data, _ref4, enableFlag, isDeleted;
96
+ var result;
97
97
  return _regeneratorRuntime().wrap(function _callee$(_context) {
98
98
  while (1) switch (_context.prev = _context.next) {
99
99
  case 0:
@@ -106,41 +106,28 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
106
106
  result = _context.sent;
107
107
  if (result.success) {
108
108
  setAppInfo(result.data);
109
- _ref4 = ((_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.publishDTO) || {}, enableFlag = _ref4.enableFlag, isDeleted = _ref4.isDeleted;
110
- if (!enableFlag) {
111
- onError === null || onError === void 0 || onError({
112
- code: ErrorCode.APP_NOT_ENABLE,
113
- message: '应用未启用或者已下架'
114
- });
115
- } else if (isDeleted === 'Y') {
116
- onError === null || onError === void 0 || onError({
117
- code: ErrorCode.APP_DELETED,
118
- message: '应用已下架'
119
- });
120
- } else {
121
- // 成功回调
122
- onSuccess === null || onSuccess === void 0 || onSuccess({
123
- code: SuccessCode.APP_CONFIG_INIT_SUCCESS,
124
- message: '初始化配置成功'
125
- });
126
- }
109
+
110
+ // 成功回调
111
+ onSuccess === null || onSuccess === void 0 || onSuccess({
112
+ code: SuccessCode.APP_CONFIG_INIT_SUCCESS,
113
+ message: '初始化配置成功'
114
+ });
127
115
  } else {
128
116
  onError === null || onError === void 0 || onError({
129
- code: ErrorCode.APP_NOT_FOUND,
130
- message: (result === null || result === void 0 ? void 0 : result.message) || '获取聊天配置失败'
117
+ code: result.code || ErrorCode.APP_NOT_FOUND,
118
+ message: result.message || '获取应用配置失败'
131
119
  });
132
120
  }
133
- _context.next = 11;
121
+ _context.next = 10;
134
122
  break;
135
123
  case 7:
136
124
  _context.prev = 7;
137
125
  _context.t0 = _context["catch"](0);
138
- console.error('获取聊天配置失败', _context.t0);
139
126
  onError === null || onError === void 0 || onError({
140
127
  code: ErrorCode.API_ERROR,
141
- message: '获取聊天配置失败'
128
+ message: '获取应用配置失败'
142
129
  });
143
- case 11:
130
+ case 10:
144
131
  case "end":
145
132
  return _context.stop();
146
133
  }
@@ -373,7 +360,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
373
360
 
374
361
  // 添加对话(非普通对话)
375
362
  var setMessage = /*#__PURE__*/function () {
376
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
363
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(messageType, content) {
377
364
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
378
365
  while (1) switch (_context2.prev = _context2.next) {
379
366
  case 0:
@@ -456,13 +443,13 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
456
443
  }, _callee2);
457
444
  }));
458
445
  return function setMessage(_x, _x2) {
459
- return _ref5.apply(this, arguments);
446
+ return _ref4.apply(this, arguments);
460
447
  };
461
448
  }();
462
449
 
463
450
  // 简单对话
464
451
  var chat = /*#__PURE__*/function () {
465
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(content) {
452
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(content) {
466
453
  var newMessage;
467
454
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
468
455
  while (1) switch (_context3.prev = _context3.next) {
@@ -504,7 +491,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
504
491
  }, _callee3);
505
492
  }));
506
493
  return function chat(_x3) {
507
- return _ref6.apply(this, arguments);
494
+ return _ref5.apply(this, arguments);
508
495
  };
509
496
  }();
510
497
 
@@ -564,10 +551,10 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
564
551
  setMessages(function (prev) {
565
552
  var initMessagesList = [];
566
553
  data.forEach(function (item) {
567
- var _ref7 = item || {},
568
- content = _ref7.content,
569
- messageTime = _ref7.messageTime,
570
- role = _ref7.role;
554
+ var _ref6 = item || {},
555
+ content = _ref6.content,
556
+ messageTime = _ref6.messageTime,
557
+ role = _ref6.role;
571
558
  if (role === 'USER') {
572
559
  var newMessage = {
573
560
  type: 'TextMessage',
@@ -601,13 +588,13 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
601
588
 
602
589
  // 初始化开场白
603
590
  var initPrologue = /*#__PURE__*/function () {
604
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
605
- var _appInfo$onboardingIn, onboardingInfo, _ref9, _ref9$suggested_quest, suggested_questions, _ref9$prologue, prologue, formatSuggests, suggestMessages, hasMessages;
591
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
592
+ var _appInfo$onboardingIn, onboardingInfo, _ref8, _ref8$suggested_quest, suggested_questions, _ref8$prologue, prologue, formatSuggests, suggestMessages, hasMessages;
606
593
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
607
594
  while (1) switch (_context4.prev = _context4.next) {
608
595
  case 0:
609
596
  _appInfo$onboardingIn = appInfo.onboardingInfo, onboardingInfo = _appInfo$onboardingIn === void 0 ? {} : _appInfo$onboardingIn; // eslint-disable-next-line camelcase
610
- _ref9 = onboardingInfo || {}, _ref9$suggested_quest = _ref9.suggested_questions, suggested_questions = _ref9$suggested_quest === void 0 ? [] : _ref9$suggested_quest, _ref9$prologue = _ref9.prologue, prologue = _ref9$prologue === void 0 ? '' : _ref9$prologue; // 初始化开场白
597
+ _ref8 = onboardingInfo || {}, _ref8$suggested_quest = _ref8.suggested_questions, suggested_questions = _ref8$suggested_quest === void 0 ? [] : _ref8$suggested_quest, _ref8$prologue = _ref8.prologue, prologue = _ref8$prologue === void 0 ? '' : _ref8$prologue; // 初始化开场白
611
598
  if (prologue) {
612
599
  setMessage('prologue', prologue);
613
600
  } else {
@@ -651,14 +638,14 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
651
638
  }, _callee4);
652
639
  }));
653
640
  return function initPrologue() {
654
- return _ref8.apply(this, arguments);
641
+ return _ref7.apply(this, arguments);
655
642
  };
656
643
  }();
657
644
 
658
645
  // 获取聊天记录
659
646
  var initAppConversations = /*#__PURE__*/function () {
660
- var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
661
- var result, _result$data2, resultData, sessionId, sessionResult, _sessionResult$data, sessionsData;
647
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
648
+ var result, _result$data, resultData, sessionId, sessionResult, _sessionResult$data, sessionsData;
662
649
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
663
650
  while (1) switch (_context5.prev = _context5.next) {
664
651
  case 0:
@@ -677,7 +664,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
677
664
  _context5.next = 26;
678
665
  break;
679
666
  }
680
- resultData = (result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.data) || [];
667
+ resultData = (result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.data) || [];
681
668
  if (!(resultData.length > 0)) {
682
669
  _context5.next = 20;
683
670
  break;
@@ -743,7 +730,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
743
730
  }, _callee5, null, [[0, 29]]);
744
731
  }));
745
732
  return function initAppConversations() {
746
- return _ref10.apply(this, arguments);
733
+ return _ref9.apply(this, arguments);
747
734
  };
748
735
  }();
749
736
 
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","fetchAppConfig","fetchSessionList","fetchSessionDetail","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","useAgentGenerator","_ref","url","token","config","onError","onSuccess","textSpeed","_useState","_useState2","_slicedToArray","messages","setMessages","_useState3","_useState4","sessionsList","setSessionList","_useState5","_useState6","currentSession","setCurrentSession","_useState7","_useState8","appInfo","setAppInfo","requestInfo","_ref2","appNo","pt","tc","initConfig","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","_result$data","_ref4","enableFlag","isDeleted","wrap","_callee$","_context","prev","next","_objectSpread","sent","success","data","publishDTO","code","APP_NOT_ENABLE","message","APP_DELETED","APP_CONFIG_INIT_SUCCESS","APP_NOT_FOUND","t0","console","error","API_ERROR","stop","apply","arguments","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","log","start","loading","responseData","content","response","action","contentType","errorMsg","prevMessages","newMessages","_toConsumableArray","_response","uniqueId","toolType","args","knowledgeType","_data$success","suggest","suggestMessageIndex","findIndex","item","type","newMessage","id","createdAt","Date","status","done","role","suggestion","key","description","push","suggestMsg","lastAIMsgIndex","reverse","m","assistant","realIndex","length","lastAIMsg","aiMsg","text","thinks","init","undefined","recallKnowledgeStart","name","extra","icon","expandIcon","recallKnowledgeEnd","_aiMsg$thinks","recallKnowledgeMsg","find","cost","toFixed","invokeToolStart","invokeToolEnd","_aiMsg$thinks2","invokeToolMsg","pending","failed","concat","finish","setMessage","_ref5","_callee2","messageType","_callee2$","_context2","prologueMessageIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","splice","_x","_x2","chat","_ref6","_callee3","_callee3$","_context3","user","appParams","inputs_msg","sessionId","Authorization","_x3","reChat","lastUserMsg","stopChat","forEach","formatMessages","initMessagesList","_ref7","messageTime","initPrologue","_ref8","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref9","_ref9$suggested_quest","suggested_questions","_ref9$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","filter","_item$extra4","index","some","_item$extra5","initAppConversations","_ref10","_callee5","_result$data2","resultData","sessionResult","_sessionResult$data","sessionsData","_callee5$","_context5","list","reduce","acc","cur","sessionMessages","APP_MESSAGES_INIT_SUCCESS"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { Error, ErrorCode, Success, SuccessCode } from '@/types/XAiProvider';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail } from '@/services/api';\n// 图标\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n// contents 类型\nexport type Contents = ContentDef[];\n\n// —————————————— 接口字段定义 ————————————\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START', // 知识库召回开始\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END', // 知识库召回结束\n invokeToolStart = 'INVOKE_AGENT_TOOL_START', // 开始调用工具\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END', // 调用工具完成\n suggest = 'FOLLOW_UP', // 用户提示\n response = 'RESPONSE', // 响应\n finish = 'FINISHED', // 结束\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled', // 不可用\n enabled = 'enabled', // 可用\n remote = 'remote', // 远程可用\n}\n\nexport type ThinkStep = any; // 临时定义,后续可完善\n\n/**\n* 工具/动作定义\n*/\nexport interface Action {\n name: string; // 名称\n description: string; // 描述\n jsonSchema: string; // 参数JSON Schema\n available?: ActionAvailability; // 可用性\n error?: Error; // 错误信息\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n}\nconst useAgentGenerator = ({\n url,\n token,\n config,\n onError,\n onSuccess,\n}: UseAgentGeneratorProps) => {\n const textSpeed = 60;\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 会话记录\n const [sessionsList, setSessionList] = useState<any[]>([]);\n // 当前会话\n const [currentSession, setCurrentSession] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo, pt, tc } = config || {};\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const result = await fetchAppConfig({ url, ...config });\n if (result.success) {\n setAppInfo(result.data);\n\n const { enableFlag, isDeleted } = result.data?.publishDTO || {};\n if (!enableFlag) {\n onError?.({\n code: ErrorCode.APP_NOT_ENABLE,\n message: '应用未启用或者已下架',\n });\n } else if (isDeleted === 'Y') {\n onError?.({\n code: ErrorCode.APP_DELETED,\n message: '应用已下架',\n });\n } else {\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n }\n } else {\n onError?.({\n code: ErrorCode.APP_NOT_FOUND,\n message: result?.message || '获取聊天配置失败',\n });\n }\n } catch (error) {\n console.error('获取聊天配置失败', error);\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取聊天配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据更新\n useEffect(() => {\n if (!responseData || !responseData.content || !responseData.data) return;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n setMessages((prevMessages) => {\n let newMessages = [...prevMessages];\n // 消息类型判断\n const { action, data } = response;\n const { uniqueId, contentType, content, toolType, args, knowledgeType, success = true, errorMsg } = data;\n\n // 建议类信息 特殊处理\n if (action === ActionType.suggest) {\n const suggestMessageIndex = messages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex === -1) {\n const newMessage: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{\n key: uuidV4(),\n description: content,\n }],\n };\n // 插到末尾\n newMessages.push(newMessage);\n } else {\n const suggestMsg = newMessages[suggestMessageIndex] as SuggestionMessage;\n if (suggestMsg?.content) {\n suggestMsg.content.push({\n key: uuidV4(),\n description: content,\n });\n }\n }\n return newMessages;\n }\n\n // 找到最后一条 AI 消息\n const lastAIMsgIndex = [...prevMessages].reverse().findIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage' && (m.status === 'init' || m.status === 'pending'),\n );\n const realIndex = lastAIMsgIndex === -1 ? -1 : prevMessages.length - 1 - lastAIMsgIndex;\n const lastAIMsg = realIndex !== -1 ? prevMessages[realIndex] : null;\n\n let aiMsg: TextMessage | undefined;\n\n if (!lastAIMsg) {\n aiMsg = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n thinks: [],\n status: MessageStatus.init,\n };\n newMessages.push(aiMsg);\n } else if (lastAIMsg.type === 'TextMessage') {\n aiMsg = { ...lastAIMsg };\n } else if (lastAIMsg.type === 'ImageMessage') {\n aiMsg = undefined;\n }\n\n // 如果 aiMsg 为 undefined,则跳过处理\n if (!aiMsg) {\n return newMessages;\n }\n\n switch (action) {\n case ActionType.recallKnowledgeStart:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: knowledgeType === 'DOCUMENT' ? '已搜索文档知识库' : '已搜索问答知识库',\n arguments: args,\n extra: {\n ...data,\n icon: knowledgeType === 'DOCUMENT' ? documentIcon : qaIcon,\n expandIcon: knowledgeType === 'DOCUMENT' ? documentExpandIcon : qaExpandIcon,\n },\n });\n break;\n case ActionType.recallKnowledgeEnd: {\n // 需要给之前的recallKnowledgeStart添加cost - 通过uniqueId关联\n const recallKnowledgeMsg = aiMsg.thinks?.find((item) => item.id === uniqueId);\n if (recallKnowledgeMsg) {\n recallKnowledgeMsg.extra.cost = data?.cost ? (data?.cost / 1000).toFixed(2) : 0;\n }\n break;\n }\n case ActionType.invokeToolStart:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n icon: toolType === 'SKILL' ? skillNoIcon : toolIcon,\n expandIcon: toolType === 'SKILL' ? skillNoExpandIcon : toolExpandIcon,\n },\n });\n break;\n case ActionType.invokeToolEnd: {\n // 需要给之前的invokeToolStart添加cost - 通过uniqueId关联\n const invokeToolMsg = aiMsg.thinks?.find((item) => item.id === uniqueId);\n if (invokeToolMsg) {\n invokeToolMsg.extra.cost = data?.cost ? (data?.cost / 1000).toFixed(2) : 0;\n }\n break;\n }\n case ActionType.response:\n if (success) {\n // 正常渲染\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n } else {\n // 调用失败\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n break;\n case ActionType.finish:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: data?.cost ? (data?.cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n aiMsg.status = MessageStatus.done;\n break;\n // 其他类型略\n }\n\n // 更新消息数组\n if (lastAIMsg && lastAIMsg.type === 'TextMessage') {\n newMessages[realIndex] = aiMsg;\n } else if (!lastAIMsg) {\n // 只有 newMessages 最后一条是 TextMessage 时才替换,否则 push\n if (newMessages.length > 0 && newMessages[newMessages.length - 1].type === 'TextMessage') {\n newMessages[newMessages.length - 1] = aiMsg;\n } else {\n // 只 push TextMessage,不替换非 TextMessage\n newMessages = [...newMessages, aiMsg];\n }\n }\n return newMessages;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [responseData]);\n\n // 添加对话(非普通对话)\n const setMessage = async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueMessageIndex = prev.findIndex((item) => item.extra?.prologue);\n if (prologueMessageIndex === -1) {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n extra: {\n prologue: true,\n noFooter: true,\n },\n };\n return [newMessage, ...prev];\n }\n return prev.map((item) => {\n if (item.extra?.prologue && item.content && 'text' in item.content) {\n item.content.text = content;\n }\n return item;\n });\n });\n break;\n }\n case 'suggest': {\n setMessages((prev) => {\n const suggestMessageIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex === -1) {\n const prologueMessageIndex = prev.findIndex((item) => item.extra?.prologue);\n const newMessage: Messages = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n if (prologueMessageIndex === -1) {\n // 如果没有开场白,则插入到最前面\n return [newMessage, ...prev];\n }\n // 如果有开场白,则插到开场白后面\n const newMessages = [...prev];\n newMessages.splice(prologueMessageIndex + 1, 0, newMessage);\n return newMessages;\n }\n return prev.map((item) => {\n if (item.type === 'SuggestionMessage') {\n item.content = content;\n }\n return item;\n });\n });\n break;\n }\n default:\n break;\n }\n };\n\n // 简单对话\n const chat = async (content: any) => {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n setMessages((prev) => {\n // 若存在对话建议,先删除对话建议\n const suggestMessageIndex = messages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex !== -1) {\n prev.splice(suggestMessageIndex, 1);\n }\n // 插入用户消息\n prev.push(newMessage);\n return prev;\n });\n\n start(\n `${url}/appouter/${appNo}/sendMsg?pt=${pt}&tc=${tc}`,\n {\n appParams: {\n inputs_msg: content,\n },\n sessionId: currentSession,\n },\n {\n Authorization: `Bearer ${token}`,\n },\n );\n };\n\n // 重新生成方法\n const reChat = () => {\n setMessages((prevMessages) => {\n // 1. 删除最新一条 AI 消息\n const lastAIMsgIndex = [...prevMessages].reverse().findIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage',\n );\n const newMessages = [...prevMessages];\n if (lastAIMsgIndex !== -1) {\n const realIndex = newMessages.length - 1 - lastAIMsgIndex;\n newMessages.splice(realIndex, 1);\n }\n\n // 2. 若存在对话建议,先删除对话建议\n const suggestMessageIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex !== -1) {\n newMessages.splice(suggestMessageIndex, 1);\n }\n\n // 3. 找到最新一条用户消息,且类型为 TextMessage\n const lastUserMsg = [...newMessages].reverse().find(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n if (lastUserMsg && lastUserMsg.content && typeof lastUserMsg.content.text === 'string') {\n // 重新发起 chat\n chat(lastUserMsg.content.text);\n }\n\n return newMessages;\n });\n };\n\n const stopChat = () => {\n stop();\n setMessages((prevMessages) => {\n // 找到我所有进行中的消息,并设置为结束\n const newMessages = [...prevMessages];\n newMessages.forEach((m) => {\n if (m.status === MessageStatus.pending) {\n m.status = MessageStatus.done;\n } else if (m.status === MessageStatus.init) {\n if (m.type === 'TextMessage') {\n m.content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n m.status = MessageStatus.done;\n }\n });\n return newMessages;\n });\n };\n\n // 初始化历史记录\n const formatMessages = (data: any) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n thinks: [],\n status: MessageStatus.done,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async () => {\n try {\n const result = await fetchSessionList({\n url,\n appNo,\n pt,\n tc,\n token,\n });\n\n if (result?.success) {\n const resultData = result?.data?.data || [];\n if (resultData.length > 0) {\n setSessionList(resultData);\n const { sessionId } = resultData[0];\n if (sessionId) {\n setCurrentSession(sessionId); // 设置当前会话 id;\n const sessionResult = await fetchSessionDetail({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n\n if (sessionResult?.success) {\n const sessionsData = (sessionResult?.data as any)?.list?.reduce((acc: any[], cur: any) => {\n return [...acc, ...(cur.sessionMessages || [])];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSession(uuidV4());\n }\n } else {\n setSessionList([]);\n setCurrentSession(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionsList,\n currentSession,\n reChat,\n chat,\n setCurrentSession,\n setMessage,\n setMessages,\n stopChat,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useState","useEffect","useRef","v4","uuidV4","useEventStreamRequest","MessageRole","MessageStatus","ErrorCode","SuccessCode","request","safeJsonParse","fetchAppConfig","fetchSessionList","fetchSessionDetail","documentIcon","completedIcon","completedExpandIcon","documentExpandIcon","qaIcon","qaExpandIcon","skillNoIcon","skillNoExpandIcon","toolIcon","toolExpandIcon","ActionType","ProcessStatus","ActionAvailability","useAgentGenerator","_ref","url","token","config","onError","onSuccess","textSpeed","_useState","_useState2","_slicedToArray","messages","setMessages","_useState3","_useState4","sessionsList","setSessionList","_useState5","_useState6","currentSession","setCurrentSession","_useState7","_useState8","appInfo","setAppInfo","requestInfo","_ref2","appNo","pt","tc","initConfig","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","wrap","_callee$","_context","prev","next","_objectSpread","sent","success","data","code","APP_CONFIG_INIT_SUCCESS","message","APP_NOT_FOUND","t0","API_ERROR","stop","apply","arguments","_useEventStreamReques","streaming","onClose","setTimeout","_requestInfo$current","_requestInfo$current2","current","sensitiveWords","requestId","post","onOpen","res","console","log","start","loading","responseData","content","response","action","contentType","errorMsg","prevMessages","newMessages","_toConsumableArray","_response","uniqueId","toolType","args","knowledgeType","_data$success","suggest","suggestMessageIndex","findIndex","item","type","newMessage","id","createdAt","Date","status","done","role","suggestion","key","description","push","suggestMsg","lastAIMsgIndex","reverse","m","assistant","realIndex","length","lastAIMsg","aiMsg","text","thinks","init","undefined","recallKnowledgeStart","name","extra","icon","expandIcon","recallKnowledgeEnd","_aiMsg$thinks","recallKnowledgeMsg","find","cost","toFixed","invokeToolStart","invokeToolEnd","_aiMsg$thinks2","invokeToolMsg","pending","failed","concat","finish","setMessage","_ref4","_callee2","messageType","_callee2$","_context2","prologueMessageIndex","_item$extra","prologue","noFooter","map","_item$extra2","abrupt","_item$extra3","splice","_x","_x2","chat","_ref5","_callee3","_callee3$","_context3","user","appParams","inputs_msg","sessionId","Authorization","_x3","reChat","lastUserMsg","stopChat","forEach","formatMessages","initMessagesList","_ref6","messageTime","initPrologue","_ref7","_callee4","_appInfo$onboardingIn","onboardingInfo","_ref8","_ref8$suggested_quest","suggested_questions","_ref8$prologue","formatSuggests","suggestMessages","hasMessages","_callee4$","_context4","filter","_item$extra4","index","some","_item$extra5","initAppConversations","_ref9","_callee5","_result$data","resultData","sessionResult","_sessionResult$data","sessionsData","_callee5$","_context5","list","reduce","acc","cur","sessionMessages","APP_MESSAGES_INIT_SUCCESS"],"sources":["../../../src/hooks/useAgentGenerator.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { v4 as uuidV4 } from 'uuid';\nimport { useEventStreamRequest } from '@/hooks/useEventStreamRequest';\nimport { MessageRole, MessageStatus, TextMessage, SuggestionMessage, Messages } from '@/types/XAiMessage';\nimport { Error, ErrorCode, ErrorCodeMap, Success, SuccessCode } from '@/types/XAiProvider';\nimport { request } from '@/utils/request';\nimport { safeJsonParse } from '@/utils/index';\nimport { fetchAppConfig, fetchSessionList, fetchSessionDetail } from '@/services/api';\n// 图标\nimport documentIcon from '@/assets/document.png';\nimport completedIcon from '@/assets/completed.png';\nimport completedExpandIcon from '@/assets/completed-black.png';\nimport documentExpandIcon from '@/assets/document-black.png';\nimport qaIcon from '@/assets/qa.png';\nimport qaExpandIcon from '@/assets/qa-black.png';\nimport skillNoIcon from '@/assets/skillNo.png';\nimport skillNoExpandIcon from '@/assets/skillNo-black.png';\nimport toolIcon from '@/assets/tools.png';\nimport toolExpandIcon from '@/assets/tools-black.png';\n\nexport type ContentType = 'TEXT' | 'IMAGE' | 'FILE';\n\nexport interface ImageUrl {\n url: string;\n name: string;\n}\n\nexport interface FileUrl {\n url: string;\n fileName: string;\n suffix: string;\n}\n\nexport interface Content {\n text?: string;\n imageUrl?: ImageUrl;\n fileUrl?: FileUrl;\n}\n\nexport interface ContentDef {\n description: string;\n contentType: ContentType;\n content: Content;\n}\n// contents 类型\nexport type Contents = ContentDef[];\n\n// —————————————— 接口字段定义 ————————————\nexport enum ActionType {\n recallKnowledgeStart = 'RECALL_KNOWLEDGE_START', // 知识库召回开始\n recallKnowledgeEnd = 'RECALL_KNOWLEDGE_END', // 知识库召回结束\n invokeToolStart = 'INVOKE_AGENT_TOOL_START', // 开始调用工具\n invokeToolEnd = 'INVOKE_AGENT_TOOL_END', // 调用工具完成\n suggest = 'FOLLOW_UP', // 用户提示\n response = 'RESPONSE', // 响应\n finish = 'FINISHED', // 结束\n}\n\nexport enum ProcessStatus {\n start = 'START',\n end = 'END',\n}\n\nexport enum ActionAvailability {\n disabled = 'disabled', // 不可用\n enabled = 'enabled', // 可用\n remote = 'remote', // 远程可用\n}\n\nexport type ThinkStep = any; // 临时定义,后续可完善\n\n/**\n* 工具/动作定义\n*/\nexport interface Action {\n name: string; // 名称\n description: string; // 描述\n jsonSchema: string; // 参数JSON Schema\n available?: ActionAvailability; // 可用性\n error?: Error; // 错误信息\n}\n\nexport interface UseAgentGeneratorProps {\n url: string;\n token: string;\n config: any;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n}\nconst useAgentGenerator = ({\n url,\n token,\n config,\n onError,\n onSuccess,\n}: UseAgentGeneratorProps) => {\n const textSpeed = 60;\n // 聊天记录\n const [messages, setMessages] = useState<Messages[]>([]);\n // 会话记录\n const [sessionsList, setSessionList] = useState<any[]>([]);\n // 当前会话\n const [currentSession, setCurrentSession] = useState<string>('');\n // 应用 配置\n const [appInfo, setAppInfo] = useState<any>(null);\n // 请求 配置\n const requestInfo = useRef<{ requestId?: string; sensitiveWords?: string[] }>({});\n\n const { appNo, pt, tc } = config || {};\n\n // 初始化时获取配置\n useEffect(() => {\n if (url && config) {\n const initConfig = async () => {\n try {\n const result = await fetchAppConfig({ url, ...config });\n if (result.success) {\n setAppInfo(result.data);\n\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_CONFIG_INIT_SUCCESS,\n message: '初始化配置成功',\n });\n } else {\n onError?.({\n code: (result.code as ErrorCode) || ErrorCode.APP_NOT_FOUND,\n message: result.message || '获取应用配置失败',\n });\n }\n } catch (error) {\n onError?.({\n code: ErrorCode.API_ERROR,\n message: '获取应用配置失败',\n });\n }\n };\n initConfig();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [url, config]);\n\n const { start, loading, responseData, stop } = useEventStreamRequest({\n streaming: true,\n textSpeed,\n onClose: () => {\n // close的时机有可能在setMessages之前,所以需要延迟一下\n setTimeout(() => {\n if (requestInfo.current?.sensitiveWords && requestInfo.current?.requestId) {\n request.post(url);\n }\n }, 500);\n },\n onOpen(res) {\n console.log('res-----open:', res);\n },\n });\n\n // 数据更新\n useEffect(() => {\n if (!responseData || !responseData.content || !responseData.data) return;\n\n let response = responseData.data || responseData.content;\n if (typeof response === 'string') {\n response = safeJsonParse(response, {\n action: ActionType.response,\n data: {\n contentType: 'TEXT',\n content: '解析响应数据时出错,请重试',\n success: false,\n errorMsg: '响应数据格式错误',\n },\n });\n }\n\n setMessages((prevMessages) => {\n let newMessages = [...prevMessages];\n // 消息类型判断\n const { action, data } = response;\n const { uniqueId, contentType, content, toolType, args, knowledgeType, success = true, errorMsg } = data;\n\n // 建议类信息 特殊处理\n if (action === ActionType.suggest) {\n const suggestMessageIndex = messages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex === -1) {\n const newMessage: SuggestionMessage = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content: [{\n key: uuidV4(),\n description: content,\n }],\n };\n // 插到末尾\n newMessages.push(newMessage);\n } else {\n const suggestMsg = newMessages[suggestMessageIndex] as SuggestionMessage;\n if (suggestMsg?.content) {\n suggestMsg.content.push({\n key: uuidV4(),\n description: content,\n });\n }\n }\n return newMessages;\n }\n\n // 找到最后一条 AI 消息\n const lastAIMsgIndex = [...prevMessages].reverse().findIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage' && (m.status === 'init' || m.status === 'pending'),\n );\n const realIndex = lastAIMsgIndex === -1 ? -1 : prevMessages.length - 1 - lastAIMsgIndex;\n const lastAIMsg = realIndex !== -1 ? prevMessages[realIndex] : null;\n\n let aiMsg: TextMessage | undefined;\n\n if (!lastAIMsg) {\n aiMsg = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: { text: '' },\n thinks: [],\n status: MessageStatus.init,\n };\n newMessages.push(aiMsg);\n } else if (lastAIMsg.type === 'TextMessage') {\n aiMsg = { ...lastAIMsg };\n } else if (lastAIMsg.type === 'ImageMessage') {\n aiMsg = undefined;\n }\n\n // 如果 aiMsg 为 undefined,则跳过处理\n if (!aiMsg) {\n return newMessages;\n }\n\n switch (action) {\n case ActionType.recallKnowledgeStart:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: knowledgeType === 'DOCUMENT' ? '已搜索文档知识库' : '已搜索问答知识库',\n arguments: args,\n extra: {\n ...data,\n icon: knowledgeType === 'DOCUMENT' ? documentIcon : qaIcon,\n expandIcon: knowledgeType === 'DOCUMENT' ? documentExpandIcon : qaExpandIcon,\n },\n });\n break;\n case ActionType.recallKnowledgeEnd: {\n // 需要给之前的recallKnowledgeStart添加cost - 通过uniqueId关联\n const recallKnowledgeMsg = aiMsg.thinks?.find((item) => item.id === uniqueId);\n if (recallKnowledgeMsg) {\n recallKnowledgeMsg.extra.cost = data?.cost ? (data?.cost / 1000).toFixed(2) : 0;\n }\n break;\n }\n case ActionType.invokeToolStart:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: toolType === 'SKILL' ? '已调用工作流' : '已调用工具',\n arguments: args,\n extra: {\n ...data,\n icon: toolType === 'SKILL' ? skillNoIcon : toolIcon,\n expandIcon: toolType === 'SKILL' ? skillNoExpandIcon : toolExpandIcon,\n },\n });\n break;\n case ActionType.invokeToolEnd: {\n // 需要给之前的invokeToolStart添加cost - 通过uniqueId关联\n const invokeToolMsg = aiMsg.thinks?.find((item) => item.id === uniqueId);\n if (invokeToolMsg) {\n invokeToolMsg.extra.cost = data?.cost ? (data?.cost / 1000).toFixed(2) : 0;\n }\n break;\n }\n case ActionType.response:\n if (success) {\n // 正常渲染\n if (aiMsg.status === MessageStatus.init) {\n aiMsg.status = MessageStatus.pending;\n }\n if (contentType === 'TEXT' && 'text' in aiMsg.content) {\n aiMsg.content.text += content;\n }\n } else {\n // 调用失败\n aiMsg.status = MessageStatus.failed;\n aiMsg.content.text = `<span style=\"color: red;\">❌ ${errorMsg}</span>`;\n }\n break;\n case ActionType.finish:\n aiMsg.thinks = aiMsg.thinks || [];\n aiMsg.thinks.push({\n id: uniqueId,\n createdAt: new Date(),\n type: 'ActionExecutionMessage',\n name: '运行完毕',\n extra: {\n ...data,\n cost: data?.cost ? (data?.cost / 1000).toFixed(2) : 0,\n icon: completedIcon,\n expandIcon: completedExpandIcon,\n },\n });\n aiMsg.status = MessageStatus.done;\n break;\n // 其他类型略\n }\n\n // 更新消息数组\n if (lastAIMsg && lastAIMsg.type === 'TextMessage') {\n newMessages[realIndex] = aiMsg;\n } else if (!lastAIMsg) {\n // 只有 newMessages 最后一条是 TextMessage 时才替换,否则 push\n if (newMessages.length > 0 && newMessages[newMessages.length - 1].type === 'TextMessage') {\n newMessages[newMessages.length - 1] = aiMsg;\n } else {\n // 只 push TextMessage,不替换非 TextMessage\n newMessages = [...newMessages, aiMsg];\n }\n }\n return newMessages;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [responseData]);\n\n // 添加对话(非普通对话)\n const setMessage = async (messageType: string, content: any) => {\n switch (messageType) {\n case 'prologue': {\n setMessages((prev) => {\n const prologueMessageIndex = prev.findIndex((item) => item.extra?.prologue);\n if (prologueMessageIndex === -1) {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.assistant,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n extra: {\n prologue: true,\n noFooter: true,\n },\n };\n return [newMessage, ...prev];\n }\n return prev.map((item) => {\n if (item.extra?.prologue && item.content && 'text' in item.content) {\n item.content.text = content;\n }\n return item;\n });\n });\n break;\n }\n case 'suggest': {\n setMessages((prev) => {\n const suggestMessageIndex = prev.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex === -1) {\n const prologueMessageIndex = prev.findIndex((item) => item.extra?.prologue);\n const newMessage: Messages = {\n id: uuidV4(),\n type: 'SuggestionMessage',\n createdAt: new Date(),\n status: MessageStatus.done,\n role: MessageRole.suggestion,\n content,\n };\n if (prologueMessageIndex === -1) {\n // 如果没有开场白,则插入到最前面\n return [newMessage, ...prev];\n }\n // 如果有开场白,则插到开场白后面\n const newMessages = [...prev];\n newMessages.splice(prologueMessageIndex + 1, 0, newMessage);\n return newMessages;\n }\n return prev.map((item) => {\n if (item.type === 'SuggestionMessage') {\n item.content = content;\n }\n return item;\n });\n });\n break;\n }\n default:\n break;\n }\n };\n\n // 简单对话\n const chat = async (content: any) => {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: new Date(),\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n setMessages((prev) => {\n // 若存在对话建议,先删除对话建议\n const suggestMessageIndex = messages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex !== -1) {\n prev.splice(suggestMessageIndex, 1);\n }\n // 插入用户消息\n prev.push(newMessage);\n return prev;\n });\n\n start(\n `${url}/appouter/${appNo}/sendMsg?pt=${pt}&tc=${tc}`,\n {\n appParams: {\n inputs_msg: content,\n },\n sessionId: currentSession,\n },\n {\n Authorization: `Bearer ${token}`,\n },\n );\n };\n\n // 重新生成方法\n const reChat = () => {\n setMessages((prevMessages) => {\n // 1. 删除最新一条 AI 消息\n const lastAIMsgIndex = [...prevMessages].reverse().findIndex(\n (m) => m.role === MessageRole.assistant && m.type === 'TextMessage',\n );\n const newMessages = [...prevMessages];\n if (lastAIMsgIndex !== -1) {\n const realIndex = newMessages.length - 1 - lastAIMsgIndex;\n newMessages.splice(realIndex, 1);\n }\n\n // 2. 若存在对话建议,先删除对话建议\n const suggestMessageIndex = newMessages.findIndex((item) => item.type === 'SuggestionMessage');\n if (suggestMessageIndex !== -1) {\n newMessages.splice(suggestMessageIndex, 1);\n }\n\n // 3. 找到最新一条用户消息,且类型为 TextMessage\n const lastUserMsg = [...newMessages].reverse().find(\n (m) => m.role === MessageRole.user && m.type === 'TextMessage',\n ) as TextMessage | undefined;\n if (lastUserMsg && lastUserMsg.content && typeof lastUserMsg.content.text === 'string') {\n // 重新发起 chat\n chat(lastUserMsg.content.text);\n }\n\n return newMessages;\n });\n };\n\n const stopChat = () => {\n stop();\n setMessages((prevMessages) => {\n // 找到我所有进行中的消息,并设置为结束\n const newMessages = [...prevMessages];\n newMessages.forEach((m) => {\n if (m.status === MessageStatus.pending) {\n m.status = MessageStatus.done;\n } else if (m.status === MessageStatus.init) {\n if (m.type === 'TextMessage') {\n m.content.text = '<span style=\"color: #cbcbcb;\">用户已取消</span>';\n }\n m.status = MessageStatus.done;\n }\n });\n return newMessages;\n });\n };\n\n // 初始化历史记录\n const formatMessages = (data: any) => {\n setMessages((prev) => {\n const initMessagesList: Messages[] = [];\n data.forEach((item: any) => {\n const { content, messageTime, role } = item || {};\n\n if (role === 'USER') {\n const newMessage: Messages = {\n type: 'TextMessage',\n id: uuidV4(),\n createdAt: messageTime,\n role: MessageRole.user,\n status: MessageStatus.done,\n content: {\n text: content,\n },\n };\n\n initMessagesList.push(newMessage);\n } else if (role === 'AI') {\n const newMessage: TextMessage = {\n id: uuidV4(),\n type: 'TextMessage',\n createdAt: messageTime,\n role: MessageRole.assistant,\n content: { text: content },\n thinks: [],\n status: MessageStatus.done,\n };\n\n initMessagesList.push(newMessage);\n }\n });\n\n return [...prev, ...initMessagesList];\n });\n };\n\n // 初始化开场白\n const initPrologue = async () => {\n const { onboardingInfo = {} } = appInfo;\n // eslint-disable-next-line camelcase\n const { suggested_questions = [], prologue = '' } = onboardingInfo || {};\n\n // 初始化开场白\n if (prologue) {\n setMessage('prologue', prologue);\n } else {\n setMessages((prev) => prev.filter((item) => !item.extra?.prologue));\n }\n\n // 过滤空内容\n const formatSuggests = suggested_questions.filter((item: string) => item);\n\n if (formatSuggests.length > 0) {\n const suggestMessages = formatSuggests.map((item: string, index: number) => ({\n key: index + 1,\n description: item,\n }));\n // 页面为空时展示开场白预设问题\n const hasMessages = messages.some((item) => (!item.extra?.prologue && item.type !== 'SuggestionMessage'));\n if (!hasMessages) {\n setMessage('suggest', suggestMessages);\n }\n } else {\n setMessages((prev) => prev.filter((item) => !(item.type === 'SuggestionMessage')));\n }\n };\n\n // 获取聊天记录\n const initAppConversations = async () => {\n try {\n const result = await fetchSessionList({\n url,\n appNo,\n pt,\n tc,\n token,\n });\n\n if (result?.success) {\n const resultData = result?.data?.data || [];\n if (resultData.length > 0) {\n setSessionList(resultData);\n const { sessionId } = resultData[0];\n if (sessionId) {\n setCurrentSession(sessionId); // 设置当前会话 id;\n const sessionResult = await fetchSessionDetail({\n url,\n appNo,\n pt,\n tc,\n sessionId,\n token,\n });\n\n if (sessionResult?.success) {\n const sessionsData = (sessionResult?.data as any)?.list?.reduce((acc: any[], cur: any) => {\n return [...acc, ...(cur.sessionMessages || [])];\n }, []);\n\n if (sessionsData.length > 0) {\n formatMessages(sessionsData);\n }\n }\n } else {\n // 兼容 无 session异常\n setCurrentSession(uuidV4());\n }\n } else {\n setSessionList([]);\n setCurrentSession(uuidV4());\n initPrologue();\n }\n // 成功回调\n onSuccess?.({\n code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,\n message: '初始化聊天记录成功',\n });\n } else {\n initPrologue();\n }\n } catch {\n //\n }\n };\n\n // 初始化应用\n useEffect(() => {\n if (appInfo) {\n // 初始化历史数据\n initAppConversations();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appInfo]);\n\n return {\n appInfo,\n messages,\n loading,\n content: responseData.content,\n sessionsList,\n currentSession,\n reChat,\n chat,\n setCurrentSession,\n setMessage,\n setMessages,\n stopChat,\n };\n};\n\nexport default useAgentGenerator;\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ export var useEventStreamRequest = function useEventStreamRequest(_ref) {
54
54
  while (1) switch (_context2.prev = _context2.next) {
55
55
  case 0:
56
56
  headers = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : {};
57
- prefixUrl = url; // todo 需要修改
57
+ prefixUrl = url;
58
58
  setResponseData({});
59
59
  setLoading(true);
60
60
  controllerRef.current = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useRef","fetchEventSource","EventStreamContentType","message","MessageRole","safeJsonParse","request","useEventStreamRequest","_ref","_ref$onOpen","onOpen","_ref$onError","onError","_ref$streaming","streaming","_ref$onClose","onClose","_ref$textSpeed","textSpeed","contentCacheRef","streamStatusRef","_useState","_useState2","_slicedToArray","loading","setLoading","loadingRef","_useState3","content","_useState4","responseData","setResponseData","controllerRef","stop","_controllerRef$curren","current","abort","start","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","url","values","headers","prefixUrl","params","signal","_response","_args2","arguments","wrap","_callee2$","_context2","prev","next","length","undefined","AbortController","_objectSpread","method","openWhenHidden","stream","body","JSON","stringify","onopen","response","_callee","_callee$","_context","ok","get","status","error","abrupt","prevResponseData","requestId","role","assistant","httpCode","code","Error","concat","onmessage","event","_contentCacheRef$curr","eventData","data","success","push","onerror","onclose","post","sent","t0","_x","_x2","apply","timer","setInterval","_contentCacheRef$curr2","_contentCacheRef$curr3","shift","newData","_prevResponseData$con","prevContent","clearInterval"],"sources":["../../../src/hooks/useEventStreamRequest.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';\nimport { message } from 'antd';\nimport { MessageRole } from '@/types/XAiMessage';\nimport { safeJsonParse } from '@/utils/index';\nimport { request } from '@/utils/request';\n\ninterface IResponseData {\n code: string;\n httpCode?: number;\n data: string | { message: string };\n message: string;\n content: string;\n requestId: string;\n sessionId: string;\n error?: boolean;\n success?: boolean;\n}\ninterface UseEventStreamProps {\n streaming: boolean;\n options?: RequestInit;\n onOpen?: (response: Response) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n textSpeed?: number;\n}\n\ninterface UseEventStreamReturn {\n responseData: IResponseData | Record<any, any>;\n loading: boolean;\n start: (url: string, values?: any, headers?: Record<string, string>) => void;\n stop: () => void;\n onError?: (error: Error) => void;\n}\n\nexport const useEventStreamRequest = ({\n onOpen = () => {},\n onError = () => {},\n streaming = true,\n onClose = () => {},\n textSpeed = 60,\n}: UseEventStreamProps): UseEventStreamReturn => {\n // 使用 useRef 作为临时缓存区,降低 setState 频率\n const contentCacheRef = useRef<IResponseData[]>([]); // 存放当前完整文本\n const streamStatusRef = useRef<number>(0); // 流式接收状态 0: 未开始 1: 进行中 2: 结束\n const [loading, setLoading] = useState<boolean>(false);\n const loadingRef = useRef(loading);\n const [responseData, setResponseData] = useState<IResponseData | Record<any, any>>({ content: '' });\n const controllerRef = useRef<AbortController | null>(null);\n\n // 停止接收请求\n const stop = () => {\n controllerRef.current?.abort();\n contentCacheRef.current = []; // 立即清空缓存区\n setLoading(false);\n };\n\n const start = async (url: string, values?: any, headers = {}) => {\n const prefixUrl = url; // todo 需要修改\n setResponseData({});\n setLoading(true);\n controllerRef.current = new AbortController();\n const params = {\n ...values,\n };\n\n const { signal } = controllerRef.current;\n\n if (streaming) {\n fetchEventSource(prefixUrl, {\n method: 'POST',\n openWhenHidden: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n stream: 'true',\n ...headers,\n },\n signal,\n body: JSON.stringify(params),\n async onopen(response) {\n streamStatusRef.current = 1;\n if (response.ok && response.headers.get('content-type') === EventStreamContentType) {\n onOpen?.(response);\n } else {\n if (response.status === 401) {\n message.error('用户未登录,即将前往登录……');\n // todo 需要修改\n return;\n } if (response.status === 500) {\n message.error('服务器错误,请稍后重试。'); // 使用Antd的message组件给出提示\n } else if (response.status > 500) {\n message.error('网络不给力,请稍后重试。');\n }\n if (response.status >= 500) {\n setResponseData((prevResponseData: IResponseData) => {\n return {\n ...prevResponseData,\n content: '网络不给力,请稍后重试~~~~~',\n requestId: '',\n role: MessageRole.assistant,\n httpCode: response.status,\n error: true,\n code: '',\n };\n });\n }\n onError?.(new Error(`Unexpected response status: ${response.status}`));\n }\n },\n onmessage: (event: { data: string }) => {\n // 解析事件数据\n const eventData = safeJsonParse(event.data, {});\n // 如果请求失败,则停止请求\n if (eventData.success !== true) {\n setResponseData({\n ...eventData,\n code: eventData.code,\n content: eventData.message || '网络不给力,请稍后重试~~',\n requestId: eventData.requestId,\n role: MessageRole.assistant,\n httpCode: 200,\n error: true,\n });\n stop();\n return;\n }\n // 推送内容到缓存区,后续通过Interval定时器,将缓存区内容设置到响应数据中\n contentCacheRef.current?.push(eventData);\n },\n onerror: (error: Error) => {\n streamStatusRef.current = 2;\n setLoading(false);\n onError?.(error);\n },\n onclose: () => {\n streamStatusRef.current = 2;\n onClose();\n },\n });\n } else {\n try {\n const response = await request.post(url, params);\n setResponseData(response);\n setLoading(false);\n } catch (error: any) {\n onError?.(error);\n setLoading(false);\n }\n }\n };\n\n useEffect(() => {\n loadingRef.current = loading;\n }, [loading]);\n\n // 初始化定时器 将缓存区有新内容时设置到响应数据中\n useEffect(() => {\n const timer = setInterval(() => {\n if (contentCacheRef.current?.length > 0) {\n // 如果缓存区有新内容,则设置到响应数据中\n const eventData = contentCacheRef.current?.shift();\n const newData = eventData?.data;\n setResponseData((prevResponseData: IResponseData) => {\n const prevContent = prevResponseData.content ?? '';\n return {\n ...eventData,\n code: eventData?.code,\n content: `${prevContent}${newData}`,\n requestId: eventData?.requestId,\n role: MessageRole.assistant,\n };\n });\n } else if (streamStatusRef.current === 2 && loadingRef.current) {\n streamStatusRef.current = 0;\n setLoading(false);\n }\n }, textSpeed); // 渲染间隔\n\n return () => clearInterval(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n return () => {\n stop();\n };\n }, []);\n\n return {\n responseData,\n loading,\n start,\n stop,\n onError,\n };\n};\n\nexport default useEventStreamRequest;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useState","useEffect","useRef","fetchEventSource","EventStreamContentType","message","MessageRole","safeJsonParse","request","useEventStreamRequest","_ref","_ref$onOpen","onOpen","_ref$onError","onError","_ref$streaming","streaming","_ref$onClose","onClose","_ref$textSpeed","textSpeed","contentCacheRef","streamStatusRef","_useState","_useState2","_slicedToArray","loading","setLoading","loadingRef","_useState3","content","_useState4","responseData","setResponseData","controllerRef","stop","_controllerRef$curren","current","abort","start","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","url","values","headers","prefixUrl","params","signal","_response","_args2","arguments","wrap","_callee2$","_context2","prev","next","length","undefined","AbortController","_objectSpread","method","openWhenHidden","stream","body","JSON","stringify","onopen","response","_callee","_callee$","_context","ok","get","status","error","abrupt","prevResponseData","requestId","role","assistant","httpCode","code","Error","concat","onmessage","event","_contentCacheRef$curr","eventData","data","success","push","onerror","onclose","post","sent","t0","_x","_x2","apply","timer","setInterval","_contentCacheRef$curr2","_contentCacheRef$curr3","shift","newData","_prevResponseData$con","prevContent","clearInterval"],"sources":["../../../src/hooks/useEventStreamRequest.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';\nimport { message } from 'antd';\nimport { MessageRole } from '@/types/XAiMessage';\nimport { safeJsonParse } from '@/utils/index';\nimport { request } from '@/utils/request';\n\ninterface IResponseData {\n code: string;\n httpCode?: number;\n data: string | { message: string };\n message: string;\n content: string;\n requestId: string;\n sessionId: string;\n error?: boolean;\n success?: boolean;\n}\ninterface UseEventStreamProps {\n streaming: boolean;\n options?: RequestInit;\n onOpen?: (response: Response) => void;\n onError?: (error: Error) => void;\n onClose?: () => void;\n textSpeed?: number;\n}\n\ninterface UseEventStreamReturn {\n responseData: IResponseData | Record<any, any>;\n loading: boolean;\n start: (url: string, values?: any, headers?: Record<string, string>) => void;\n stop: () => void;\n onError?: (error: Error) => void;\n}\n\nexport const useEventStreamRequest = ({\n onOpen = () => {},\n onError = () => {},\n streaming = true,\n onClose = () => {},\n textSpeed = 60,\n}: UseEventStreamProps): UseEventStreamReturn => {\n // 使用 useRef 作为临时缓存区,降低 setState 频率\n const contentCacheRef = useRef<IResponseData[]>([]); // 存放当前完整文本\n const streamStatusRef = useRef<number>(0); // 流式接收状态 0: 未开始 1: 进行中 2: 结束\n const [loading, setLoading] = useState<boolean>(false);\n const loadingRef = useRef(loading);\n const [responseData, setResponseData] = useState<IResponseData | Record<any, any>>({ content: '' });\n const controllerRef = useRef<AbortController | null>(null);\n\n // 停止接收请求\n const stop = () => {\n controllerRef.current?.abort();\n contentCacheRef.current = []; // 立即清空缓存区\n setLoading(false);\n };\n\n const start = async (url: string, values?: any, headers = {}) => {\n const prefixUrl = url;\n setResponseData({});\n setLoading(true);\n controllerRef.current = new AbortController();\n const params = {\n ...values,\n };\n\n const { signal } = controllerRef.current;\n\n if (streaming) {\n fetchEventSource(prefixUrl, {\n method: 'POST',\n openWhenHidden: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache',\n stream: 'true',\n ...headers,\n },\n signal,\n body: JSON.stringify(params),\n async onopen(response) {\n streamStatusRef.current = 1;\n if (response.ok && response.headers.get('content-type') === EventStreamContentType) {\n onOpen?.(response);\n } else {\n if (response.status === 401) {\n message.error('用户未登录,即将前往登录……');\n // todo 需要修改\n return;\n } if (response.status === 500) {\n message.error('服务器错误,请稍后重试。'); // 使用Antd的message组件给出提示\n } else if (response.status > 500) {\n message.error('网络不给力,请稍后重试。');\n }\n if (response.status >= 500) {\n setResponseData((prevResponseData: IResponseData) => {\n return {\n ...prevResponseData,\n content: '网络不给力,请稍后重试~~~~~',\n requestId: '',\n role: MessageRole.assistant,\n httpCode: response.status,\n error: true,\n code: '',\n };\n });\n }\n onError?.(new Error(`Unexpected response status: ${response.status}`));\n }\n },\n onmessage: (event: { data: string }) => {\n // 解析事件数据\n const eventData = safeJsonParse(event.data, {});\n // 如果请求失败,则停止请求\n if (eventData.success !== true) {\n setResponseData({\n ...eventData,\n code: eventData.code,\n content: eventData.message || '网络不给力,请稍后重试~~',\n requestId: eventData.requestId,\n role: MessageRole.assistant,\n httpCode: 200,\n error: true,\n });\n stop();\n return;\n }\n // 推送内容到缓存区,后续通过Interval定时器,将缓存区内容设置到响应数据中\n contentCacheRef.current?.push(eventData);\n },\n onerror: (error: Error) => {\n streamStatusRef.current = 2;\n setLoading(false);\n onError?.(error);\n },\n onclose: () => {\n streamStatusRef.current = 2;\n onClose();\n },\n });\n } else {\n try {\n const response = await request.post(url, params);\n setResponseData(response);\n setLoading(false);\n } catch (error: any) {\n onError?.(error);\n setLoading(false);\n }\n }\n };\n\n useEffect(() => {\n loadingRef.current = loading;\n }, [loading]);\n\n // 初始化定时器 将缓存区有新内容时设置到响应数据中\n useEffect(() => {\n const timer = setInterval(() => {\n if (contentCacheRef.current?.length > 0) {\n // 如果缓存区有新内容,则设置到响应数据中\n const eventData = contentCacheRef.current?.shift();\n const newData = eventData?.data;\n setResponseData((prevResponseData: IResponseData) => {\n const prevContent = prevResponseData.content ?? '';\n return {\n ...eventData,\n code: eventData?.code,\n content: `${prevContent}${newData}`,\n requestId: eventData?.requestId,\n role: MessageRole.assistant,\n };\n });\n } else if (streamStatusRef.current === 2 && loadingRef.current) {\n streamStatusRef.current = 0;\n setLoading(false);\n }\n }, textSpeed); // 渲染间隔\n\n return () => clearInterval(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n return () => {\n stop();\n };\n }, []);\n\n return {\n responseData,\n loading,\n start,\n stop,\n onError,\n };\n};\n\nexport default useEventStreamRequest;\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface ApiResponse<T> {
10
10
  success: boolean;
11
11
  data: T;
12
12
  message?: string;
13
- code?: string;
13
+ code: string;
14
14
  }
15
15
  export interface ChatConfig {
16
16
  botNo: string;
@@ -70,7 +70,7 @@ export declare const fetchAppConfig: ({ url, appNo, pt, tc }: {
70
70
  tc: string;
71
71
  }) => Promise<ApiResponse<ChatConfig>>;
72
72
  /**
73
- * 获取聊天配置
73
+ * 发送消息
74
74
  * 使用request,会自动添加token
75
75
  */
76
76
  export declare const sendMessage: ({ url, appNo, pt, tc, msg }: {
@@ -43,7 +43,7 @@ export var fetchAppConfig = /*#__PURE__*/function () {
43
43
  }();
44
44
 
45
45
  /**
46
- * 获取聊天配置
46
+ * 发送消息
47
47
  * 使用request,会自动添加token
48
48
  */
49
49
  export var sendMessage = /*#__PURE__*/function () {
@@ -118,7 +118,7 @@ export var fetchSessionDetail = /*#__PURE__*/function () {
118
118
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
119
119
  while (1) switch (_context4.prev = _context4.next) {
120
120
  case 0:
121
- url = _ref7.url, appNo = _ref7.appNo, pt = _ref7.pt, tc = _ref7.tc, sessionId = _ref7.sessionId, _ref7$pageSize = _ref7.pageSize, pageSize = _ref7$pageSize === void 0 ? 10 : _ref7$pageSize, _ref7$pageNum = _ref7.pageNum, pageNum = _ref7$pageNum === void 0 ? 1 : _ref7$pageNum, token = _ref7.token;
121
+ url = _ref7.url, appNo = _ref7.appNo, pt = _ref7.pt, tc = _ref7.tc, sessionId = _ref7.sessionId, _ref7$pageSize = _ref7.pageSize, pageSize = _ref7$pageSize === void 0 ? 999 : _ref7$pageSize, _ref7$pageNum = _ref7.pageNum, pageNum = _ref7$pageNum === void 0 ? 1 : _ref7$pageNum, token = _ref7.token;
122
122
  _context4.next = 3;
123
123
  return request.post("".concat(url, "/appouter/").concat(appNo, "/sessionDetails"), {}, {
124
124
  params: {
@@ -1 +1 @@
1
- {"version":3,"names":["request","fetchAppConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","url","appNo","pt","tc","response","wrap","_callee$","_context","prev","next","post","concat","params","sent","abrupt","data","stop","_x","apply","arguments","sendMessage","_ref4","_callee2","_ref3","msg","_callee2$","_context2","_x2","fetchSessionList","_ref6","_callee3","_ref5","_ref5$pageSize","pageSize","_ref5$pageNum","pageNum","token","_callee3$","_context3","headers","Authorization","_x3","fetchSessionDetail","_ref8","_callee4","_ref7","sessionId","_ref7$pageSize","_ref7$pageNum","_callee4$","_context4","_x4"],"sources":["../../../src/services/api.ts"],"sourcesContent":["import { request } from '@/utils/request';\n\n// 服务端API响应接口\nexport interface ServerApiResponse<T = unknown> {\n data: T;\n code: string;\n success: boolean;\n message: string;\n serverTime: number;\n traceId: string;\n}\n\n// 标准API响应类型\nexport interface ApiResponse<T> {\n success: boolean;\n data: T;\n message?: string;\n code?: string;\n}\n\n// 聊天配置类型\nexport interface ChatConfig {\n botNo: string;\n appNo: string;\n appName: string;\n appTheme: string;\n description: string;\n icon: string;\n onboardingInfo: {\n prologue: string;\n // eslint-disable-next-line camelcase\n suggested_questions: string[];\n };\n appVersionNo: string;\n publishDTO: {\n id: number;\n tenantId: string;\n botNo: string;\n publishNo: string;\n publishTime: string;\n publishVersionNo: string;\n publishVersionDesc: string;\n publishAppType: string;\n platformConfigInfo: string;\n appNo: string;\n appVersionNo: string;\n gmtCreated: string;\n enableFlag: number;\n gmtModified: string;\n creator: string;\n modifier: string;\n isDeleted: string;\n authLoginInfoDTO: Record<string, unknown>;\n shareLink: string;\n };\n}\n\n// 会话记录\nexport interface sessionData {\n data: {\n sessionId: string;\n gmtCreated: string;\n userId: string;\n title: string;\n botNo: string;\n appNo: string;\n }[];\n pageNum: number;\n pageSize: number;\n totalCount: number;\n}\n\n/**\n * 获取聊天配置\n * 使用request,会自动添加token\n */\nexport const fetchAppConfig = async ({ url, appNo, pt, tc }: { url: string; appNo: string; pt: string; tc: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/config/${appNo}/initApp`, {}, {\n params: {\n pt, tc,\n },\n });\n return response.data;\n};\n\n/**\n * 获取聊天配置\n * 使用request,会自动添加token\n */\nexport const sendMessage = async ({ url, appNo, pt, tc, msg }: { url: string; appNo: string; pt: string; tc: string; msg: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/${appNo}/sendMsg`, {\n pt, tc, msg,\n });\n return response.data;\n};\n\n/**\n * 获取会话列表\n */\nexport const fetchSessionList = async ({ url, appNo, pt, tc, pageSize = 10, pageNum = 1, token }:\n { url: string; appNo: string; pt: string; tc: string; pageSize?: number; pageNum?: number; token: string }) => {\n const response = await request.post<ApiResponse<sessionData>>(`${url}/appouter/${appNo}/sessionIds`, {}, {\n params: {\n pt,\n tc,\n pageSize,\n pageNum,\n },\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return response.data;\n};\n\n/**\n * 获取会话明细\n */\nexport const fetchSessionDetail = async ({ url, appNo, pt, tc, sessionId, pageSize = 10, pageNum = 1, token }:\n { url: string; appNo: string; pt: string; tc: string; sessionId: string; pageSize?: number; pageNum?: number; token: string }) => {\n const response = await request.post<ApiResponse<sessionData[]>>(`${url}/appouter/${appNo}/sessionDetails`, {}, {\n params: {\n pt,\n tc,\n sessionId,\n pageSize,\n pageNum,\n },\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return response.data;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["request","fetchAppConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","url","appNo","pt","tc","response","wrap","_callee$","_context","prev","next","post","concat","params","sent","abrupt","data","stop","_x","apply","arguments","sendMessage","_ref4","_callee2","_ref3","msg","_callee2$","_context2","_x2","fetchSessionList","_ref6","_callee3","_ref5","_ref5$pageSize","pageSize","_ref5$pageNum","pageNum","token","_callee3$","_context3","headers","Authorization","_x3","fetchSessionDetail","_ref8","_callee4","_ref7","sessionId","_ref7$pageSize","_ref7$pageNum","_callee4$","_context4","_x4"],"sources":["../../../src/services/api.ts"],"sourcesContent":["import { request } from '@/utils/request';\n\n// 服务端API响应接口\nexport interface ServerApiResponse<T = unknown> {\n data: T;\n code: string;\n success: boolean;\n message: string;\n serverTime: number;\n traceId: string;\n}\n\n// 标准API响应类型\nexport interface ApiResponse<T> {\n success: boolean;\n data: T;\n message?: string;\n code: string;\n}\n\n// 聊天配置类型\nexport interface ChatConfig {\n botNo: string;\n appNo: string;\n appName: string;\n appTheme: string;\n description: string;\n icon: string;\n onboardingInfo: {\n prologue: string;\n // eslint-disable-next-line camelcase\n suggested_questions: string[];\n };\n appVersionNo: string;\n publishDTO: {\n id: number;\n tenantId: string;\n botNo: string;\n publishNo: string;\n publishTime: string;\n publishVersionNo: string;\n publishVersionDesc: string;\n publishAppType: string;\n platformConfigInfo: string;\n appNo: string;\n appVersionNo: string;\n gmtCreated: string;\n enableFlag: number;\n gmtModified: string;\n creator: string;\n modifier: string;\n isDeleted: string;\n authLoginInfoDTO: Record<string, unknown>;\n shareLink: string;\n };\n}\n\n// 会话记录\nexport interface sessionData {\n data: {\n sessionId: string;\n gmtCreated: string;\n userId: string;\n title: string;\n botNo: string;\n appNo: string;\n }[];\n pageNum: number;\n pageSize: number;\n totalCount: number;\n}\n\n/**\n * 获取聊天配置\n * 使用request,会自动添加token\n */\nexport const fetchAppConfig = async ({ url, appNo, pt, tc }: { url: string; appNo: string; pt: string; tc: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/config/${appNo}/initApp`, {}, {\n params: {\n pt, tc,\n },\n });\n return response.data;\n};\n\n/**\n * 发送消息\n * 使用request,会自动添加token\n */\nexport const sendMessage = async ({ url, appNo, pt, tc, msg }: { url: string; appNo: string; pt: string; tc: string; msg: string }): Promise<ApiResponse<ChatConfig>> => {\n const response = await request.post<ApiResponse<ChatConfig>>(`${url}/appouter/${appNo}/sendMsg`, {\n pt, tc, msg,\n });\n return response.data;\n};\n\n/**\n * 获取会话列表\n */\nexport const fetchSessionList = async ({ url, appNo, pt, tc, pageSize = 10, pageNum = 1, token }:\n { url: string; appNo: string; pt: string; tc: string; pageSize?: number; pageNum?: number; token: string }) => {\n const response = await request.post<ApiResponse<sessionData>>(`${url}/appouter/${appNo}/sessionIds`, {}, {\n params: {\n pt,\n tc,\n pageSize,\n pageNum,\n },\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return response.data;\n};\n\n/**\n * 获取会话明细\n */\nexport const fetchSessionDetail = async ({ url, appNo, pt, tc, sessionId, pageSize = 999, pageNum = 1, token }:\n { url: string; appNo: string; pt: string; tc: string; sessionId: string; pageSize?: number; pageNum?: number; token: string }) => {\n const response = await request.post<ApiResponse<sessionData[]>>(`${url}/appouter/${appNo}/sessionDetails`, {}, {\n params: {\n pt,\n tc,\n sessionId,\n pageSize,\n pageNum,\n },\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return response.data;\n};\n"],"mappings":"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"}
@@ -3,12 +3,28 @@ import { AiClient } from 'src/client/base';
3
3
  import type { ChatbotMessageFields } from './XAiChatbot';
4
4
  import { Messages } from "./XAiMessage";
5
5
  export type ThemeType = 'default';
6
+ export declare enum ErrorCodeNum {
7
+ APP_NOT_ENABLE = "client_50017",// 应用下架
8
+ APP_DELETED = "client_50017",// 应用删除
9
+ APP_NOT_FOUND = "client_59999",// 无该应用
10
+ API_ERROR = "client_50054"
11
+ }
6
12
  export declare enum ErrorCode {
7
13
  APP_NOT_ENABLE = "APP_NOT_ENABLE",
8
14
  APP_DELETED = "APP_DELETED",
9
15
  APP_NOT_FOUND = "APP_NOT_FOUND",
10
16
  API_ERROR = "API_ERROR"
11
17
  }
18
+ export declare const ErrorCodeMap: {
19
+ client_50017: {
20
+ code: ErrorCode;
21
+ message: string;
22
+ };
23
+ client_50054: {
24
+ code: ErrorCode;
25
+ message: string;
26
+ };
27
+ };
12
28
  export declare enum SuccessCode {
13
29
  APP_CONFIG_INIT_SUCCESS = "APP_CONFIG_INIT_SUCCESS",
14
30
  APP_MESSAGES_INIT_SUCCESS = "APP_MESSAGES_INIT_SUCCESS"