@ai-group/chat-sdk 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/cjs/assets/add-chat.svg +13 -0
  2. package/dist/cjs/assets/flash-open.svg +14 -0
  3. package/dist/cjs/assets/logo.png +0 -0
  4. package/dist/cjs/assets/svg/AddChatIcon.d.ts +3 -0
  5. package/dist/cjs/assets/svg/AddChatIcon.js +38 -0
  6. package/dist/cjs/assets/svg/AddChatIcon.js.map +7 -0
  7. package/dist/cjs/components/XAiChatbot/index.js +2 -1
  8. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  9. package/dist/cjs/components/XAiChatbot/styles.js +1 -1
  10. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  11. package/dist/cjs/components/XAiConversations/index.js +61 -27
  12. package/dist/cjs/components/XAiConversations/index.js.map +3 -3
  13. package/dist/cjs/components/XAiConversations/styles.d.ts +45 -0
  14. package/dist/cjs/components/XAiConversations/styles.js +177 -0
  15. package/dist/cjs/components/XAiConversations/styles.js.map +7 -0
  16. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +9 -6
  17. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
  18. package/dist/cjs/components/XAiProvider/index.js +96 -12
  19. package/dist/cjs/components/XAiProvider/index.js.map +3 -3
  20. package/dist/cjs/constants/index.d.ts +1 -0
  21. package/dist/cjs/constants/index.js +30 -0
  22. package/dist/cjs/constants/index.js.map +7 -0
  23. package/dist/cjs/hooks/useAgentGenerator.d.ts +5 -2
  24. package/dist/cjs/hooks/useAgentGenerator.js +53 -50
  25. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  26. package/dist/cjs/services/api.d.ts +23 -0
  27. package/dist/cjs/services/api.js +35 -2
  28. package/dist/cjs/services/api.js.map +2 -2
  29. package/dist/cjs/types/XAiChatbot.d.ts +2 -0
  30. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  31. package/dist/cjs/types/XAiConversations.d.ts +2 -0
  32. package/dist/cjs/types/XAiConversations.js.map +1 -1
  33. package/dist/cjs/types/XAiMessage.js.map +2 -2
  34. package/dist/cjs/types/XAiProvider.d.ts +20 -2
  35. package/dist/cjs/types/XAiProvider.js.map +2 -2
  36. package/dist/cjs/utils/umdEntry.d.ts +2 -1
  37. package/dist/cjs/utils/umdEntry.js +3 -2
  38. package/dist/cjs/utils/umdEntry.js.map +2 -2
  39. package/dist/esm/assets/add-chat.svg +13 -0
  40. package/dist/esm/assets/flash-open.svg +14 -0
  41. package/dist/esm/assets/logo.png +0 -0
  42. package/dist/esm/assets/svg/AddChatIcon.d.ts +3 -0
  43. package/dist/esm/assets/svg/AddChatIcon.js +40 -0
  44. package/dist/esm/assets/svg/AddChatIcon.js.map +1 -0
  45. package/dist/esm/components/XAiChatbot/index.js +3 -1
  46. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  47. package/dist/esm/components/XAiChatbot/styles.js +1 -1
  48. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  49. package/dist/esm/components/XAiConversations/index.js +129 -47
  50. package/dist/esm/components/XAiConversations/index.js.map +1 -1
  51. package/dist/esm/components/XAiConversations/styles.d.ts +45 -0
  52. package/dist/esm/components/XAiConversations/styles.js +36 -0
  53. package/dist/esm/components/XAiConversations/styles.js.map +1 -0
  54. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +26 -27
  55. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  56. package/dist/esm/components/XAiProvider/index.js +119 -14
  57. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  58. package/dist/esm/constants/index.d.ts +1 -0
  59. package/dist/esm/constants/index.js +3 -0
  60. package/dist/esm/constants/index.js.map +1 -0
  61. package/dist/esm/hooks/useAgentGenerator.d.ts +5 -2
  62. package/dist/esm/hooks/useAgentGenerator.js +124 -97
  63. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  64. package/dist/esm/services/api.d.ts +23 -0
  65. package/dist/esm/services/api.js +73 -0
  66. package/dist/esm/services/api.js.map +1 -1
  67. package/dist/esm/types/XAiChatbot.d.ts +2 -0
  68. package/dist/esm/types/XAiChatbot.js.map +1 -1
  69. package/dist/esm/types/XAiConversations.d.ts +2 -0
  70. package/dist/esm/types/XAiConversations.js.map +1 -1
  71. package/dist/esm/types/XAiMessage.js.map +1 -1
  72. package/dist/esm/types/XAiProvider.d.ts +20 -2
  73. package/dist/esm/types/XAiProvider.js.map +1 -1
  74. package/dist/esm/utils/umdEntry.d.ts +2 -1
  75. package/dist/esm/utils/umdEntry.js +9 -8
  76. package/dist/esm/utils/umdEntry.js.map +1 -1
  77. package/dist/umd/chat-sdk.min.js +1 -1
  78. package/package.json +1 -1
@@ -1,14 +1,16 @@
1
1
  import React, { forwardRef, useImperativeHandle } from 'react';
2
- import { message, Divider } from 'antd';
3
- import { v4 as uuidV4 } from 'uuid';
2
+ import { message, Divider, Modal, Input } from 'antd';
4
3
  import copy from 'copy-to-clipboard';
5
4
  import { XProvider } from '@ant-design/x';
5
+ import { ExclamationCircleFilled } from '@ant-design/icons';
6
6
  import { XAiContext } from "../../context/AiProviderContext";
7
7
  import useAgentGenerator from "../../hooks/useAgentGenerator";
8
8
  import userIcon from "../../assets/user.png";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ var confirm = Modal.confirm;
11
12
  var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
13
+ var _config$chatProps, _config$session;
12
14
  var url = _ref.url,
13
15
  token = _ref.token,
14
16
  config = _ref.config,
@@ -31,13 +33,14 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
31
33
  chat = _useAgentGenerator.chat,
32
34
  stopChat = _useAgentGenerator.stopChat,
33
35
  reChat = _useAgentGenerator.reChat,
34
- initPrologue = _useAgentGenerator.initPrologue,
35
- loadMoreSessions = _useAgentGenerator.loadMoreSessions,
36
+ createNewChat = _useAgentGenerator.createNewChat,
37
+ deleteSession = _useAgentGenerator.deleteSession,
38
+ updateSession = _useAgentGenerator.updateSession,
39
+ currentSessionId = _useAgentGenerator.currentSessionId,
36
40
  sessionPagination = _useAgentGenerator.sessionPagination,
37
41
  sessionList = _useAgentGenerator.sessionList,
38
42
  messages = _useAgentGenerator.messages,
39
43
  loading = _useAgentGenerator.loading,
40
- setCurrentSessionId = _useAgentGenerator.setCurrentSessionId,
41
44
  setCurrentSessionDetail = _useAgentGenerator.setCurrentSessionDetail,
42
45
  setMessages = _useAgentGenerator.setMessages;
43
46
  var _ref2 = appInfo || {},
@@ -54,6 +57,9 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
54
57
  getMessages: function getMessages() {
55
58
  return messages;
56
59
  },
60
+ getSessions: function getSessions() {
61
+ return sessionList;
62
+ },
57
63
  setMessages: setMessages,
58
64
  setCurrentSessionDetail: setCurrentSessionDetail
59
65
  };
@@ -65,11 +71,8 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
65
71
  };
66
72
 
67
73
  // 清空消息
68
- var handleClearMessage = function handleClearMessage() {
69
- stopChat(); // 停止聊天
70
- setMessages([]); // 清空所有消息
71
- initPrologue(); // 初始化开场白和预置问题
72
- setCurrentSessionId(uuidV4()); // 设置会话 id
74
+ var handleCreateNewMessage = function handleCreateNewMessage() {
75
+ createNewChat();
73
76
  };
74
77
 
75
78
  // 工具栏按钮点击
@@ -128,6 +131,97 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
128
131
  var handleActiveChange = function handleActiveChange(key) {
129
132
  setCurrentSessionDetail(key);
130
133
  };
134
+
135
+ // 删除会话
136
+ var handleDeleteSession = function handleDeleteSession(sessionId) {
137
+ deleteSession(sessionId);
138
+ };
139
+
140
+ // 修改会话内容
141
+ var handleUpdateSession = function handleUpdateSession(sessionId, title) {
142
+ updateSession(sessionId, title);
143
+ };
144
+
145
+ // 会话操作菜单
146
+ var menuConfig = function menuConfig(conversation) {
147
+ return {
148
+ items: [{
149
+ label: '重命名',
150
+ key: 'edit'
151
+ }, {
152
+ label: '删除',
153
+ key: 'delete',
154
+ danger: true
155
+ }],
156
+ onClick: function onClick(menuInfo) {
157
+ menuInfo.domEvent.stopPropagation();
158
+ var key = menuInfo.key;
159
+ switch (key) {
160
+ case 'edit':
161
+ {
162
+ var inputValue = conversation.label || '';
163
+ confirm({
164
+ title: '编辑对话名称',
165
+ icon: null,
166
+ content: /*#__PURE__*/_jsx(Input, {
167
+ defaultValue: inputValue,
168
+ autoFocus: true,
169
+ style: {
170
+ width: '100%'
171
+ },
172
+ onChange: function onChange(e) {
173
+ inputValue = e.target.value;
174
+ }
175
+ }),
176
+ okText: '确认',
177
+ cancelText: '取消',
178
+ okButtonProps: {
179
+ style: {
180
+ background: '#000',
181
+ borderColor: '#000',
182
+ color: '#fff'
183
+ }
184
+ },
185
+ onOk: function onOk() {
186
+ if (!inputValue.trim()) {
187
+ message.error('对话名称不能为空');
188
+ return Promise.reject();
189
+ }
190
+ handleUpdateSession(conversation.key, inputValue);
191
+ },
192
+ onCancel: function onCancel() {
193
+ // 静默处理
194
+ }
195
+ });
196
+ break;
197
+ }
198
+ case 'delete':
199
+ confirm({
200
+ title: '确认删除?',
201
+ icon: /*#__PURE__*/_jsx(ExclamationCircleFilled, {}),
202
+ content: '该对话内容将被删除无法恢复。',
203
+ okText: '确认删除',
204
+ okType: 'danger',
205
+ cancelText: '取消',
206
+ okButtonProps: {
207
+ style: {
208
+ background: '#ff4d4f',
209
+ borderColor: '#ff4d4f',
210
+ color: '#fff'
211
+ }
212
+ },
213
+ onOk: function onOk() {
214
+ handleDeleteSession(conversation.key);
215
+ },
216
+ onCancel: function onCancel() {
217
+ //
218
+ }
219
+ });
220
+ break;
221
+ }
222
+ }
223
+ };
224
+ };
131
225
  var ToolTip = function ToolTip(messageData) {
132
226
  var finalResult = ((messageData === null || messageData === void 0 ? void 0 : messageData.think) || []).find(function (item) {
133
227
  return item.actionName === 'FINISHED';
@@ -155,6 +249,8 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
155
249
  })]
156
250
  });
157
251
  };
252
+ // 是否展示清空按钮
253
+ var clearBtnShow = typeof (config === null || config === void 0 || (_config$chatProps = config.chatProps) === null || _config$chatProps === void 0 ? void 0 : _config$chatProps.clearBtnShow) !== 'undefined' ? config.chatProps.clearBtnShow : !(config !== null && config !== void 0 && (_config$session = config.session) !== null && _config$session !== void 0 && _config$session.showSessionList);
158
254
  return /*#__PURE__*/_jsx(XProvider, {
159
255
  children: /*#__PURE__*/_jsx(XAiContext.Provider, {
160
256
  value: {
@@ -176,17 +272,26 @@ var XAiProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
176
272
  messages: messages,
177
273
  loading: loading,
178
274
  error: null,
275
+ activeKey: currentSessionId,
276
+ clearBtnShow: clearBtnShow,
179
277
  messageTooltip: ToolTip,
180
- loadMoreSessions: loadMoreSessions,
181
278
  onSend: handleSendMessage,
182
- onClear: handleClearMessage,
279
+ onClear: handleCreateNewMessage,
280
+ onNewChat: handleCreateNewMessage,
183
281
  onStop: stopChat,
282
+ menu: menuConfig,
184
283
  onActiveChange: handleActiveChange,
185
284
  onSuggestMessageClick: handleSuggestMessageClick,
186
285
  onMessagesActionsCallback: handleActions,
187
286
  isInProvider: true
188
287
  },
189
- children: children
288
+ children: /*#__PURE__*/_jsx("div", {
289
+ style: {
290
+ display: 'flex',
291
+ height: '100%'
292
+ },
293
+ children: children
294
+ })
190
295
  })
191
296
  });
192
297
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useImperativeHandle","message","Divider","v4","uuidV4","copy","XProvider","XAiContext","useAgentGenerator","userIcon","jsxs","_jsxs","jsx","_jsx","XAiProvider","_ref","ref","url","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","initPrologue","loadMoreSessions","sessionPagination","sessionList","messages","loading","setCurrentSessionId","setCurrentSessionDetail","setMessages","_ref2","appName","icon","getAppInfo","getMessages","handleSendMessage","_type","content","handleClearMessage","handleActions","index","actionData","_ref3","id","_content$text","text","success","idx","findIndex","item","length","prev","filter","type","handleSuggestMessageClick","_item","m","handleActiveChange","key","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","style","display","alignItems","fontSize","color","flex","paddingRight","undefined","Provider","value","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","error","messageTooltip","onSend","onClear","onStop","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle } from 'react';\nimport { message, Divider } from 'antd';\nimport { v4 as uuidV4 } from 'uuid';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport userIcon from '@/assets/user.png';\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n initPrologue,\n loadMoreSessions,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSessionId,\n setCurrentSessionDetail,\n setMessages\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);\n\n // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleClearMessage = () => {\n stopChat(); // 停止聊天\n setMessages([]); // 清空所有消息\n initPrologue(); // 初始化开场白和预置问题\n setCurrentSessionId(uuidV4()); // 设置会话 id\n };\n \n\n // 工具栏按钮点击\n const handleActions = (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSessionDetail(key);\n };\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n\n return (\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total, \n token,\n messages,\n loading,\n error: null,\n messageTooltip: ToolTip,\n loadMoreSessions,\n onSend: handleSendMessage,\n onClear: handleClearMessage,\n onStop: stopChat,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n {children}\n </XAiContext.Provider>\n </XProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","useImperativeHandle","message","Divider","Modal","Input","copy","XProvider","ExclamationCircleFilled","XAiContext","useAgentGenerator","userIcon","jsx","_jsx","jsxs","_jsxs","confirm","XAiProvider","_ref","ref","_config$chatProps","_config$session","url","token","config","_ref$providerId","providerId","onSuccess","onError","onMessage","children","_useAgentGenerator","appInfo","chat","stopChat","reChat","createNewChat","deleteSession","updateSession","currentSessionId","sessionPagination","sessionList","messages","loading","setCurrentSessionDetail","setMessages","_ref2","appName","icon","getAppInfo","getMessages","getSessions","handleSendMessage","_type","content","handleCreateNewMessage","handleActions","index","actionData","_ref3","id","_content$text","text","success","idx","findIndex","item","length","prev","filter","type","handleSuggestMessageClick","_item","m","handleActiveChange","key","handleDeleteSession","sessionId","handleUpdateSession","title","menuConfig","conversation","items","label","danger","onClick","menuInfo","domEvent","stopPropagation","inputValue","defaultValue","autoFocus","style","width","onChange","e","target","value","okText","cancelText","okButtonProps","background","borderColor","color","onOk","trim","error","Promise","reject","onCancel","okType","ToolTip","messageData","finalResult","think","find","actionName","_ref4","extra","cost","tokenCount","display","alignItems","fontSize","flex","paddingRight","undefined","clearBtnShow","chatProps","session","showSessionList","Provider","avatar","src","alt","userAvatar","emptyStateImage","emptyStateText","footerTips","sessionTotal","total","activeKey","messageTooltip","onSend","onClear","onNewChat","onStop","menu","onActiveChange","onSuggestMessageClick","onMessagesActionsCallback","isInProvider","height"],"sources":["../../../../src/components/XAiProvider/index.tsx"],"sourcesContent":["import React, { forwardRef, useImperativeHandle } from 'react';\nimport { message, Divider, Modal, Input } from 'antd';\nimport copy from 'copy-to-clipboard';\nimport { XProvider } from '@ant-design/x';\nimport type { ConversationsProps } from '@ant-design/x';\nimport { DeleteOutlined, ExclamationCircleFilled } from '@ant-design/icons';\nimport { XAiContext } from '@/context/AiProviderContext';\nimport { XAiProviderProps, XAiProviderHandle } from '@/types/XAiProvider';\nimport useAgentGenerator from '@/hooks/useAgentGenerator';\nimport userIcon from '@/assets/user.png';\n\nconst { confirm } = Modal;\n\nconst XAiProvider = forwardRef<XAiProviderHandle, XAiProviderProps>(({\n url,\n token,\n config,\n providerId = 'defaultId',\n onSuccess,\n onError,\n onMessage,\n children,\n}, ref) => {\n // 使用 useAgentGenerator Hook 管理消息状态\n const {\n appInfo,\n chat,\n stopChat,\n reChat,\n createNewChat,\n deleteSession,\n updateSession,\n currentSessionId,\n sessionPagination,\n sessionList,\n messages,\n loading,\n setCurrentSessionDetail,\n setMessages\n } = useAgentGenerator({ url, token, config, onError, onSuccess, onMessage });\n\n const { appName, icon } = appInfo || {};\n\n useImperativeHandle(ref, () => ({\n chat,\n stopChat,\n reChat,\n getAppInfo: () => appInfo,\n getMessages: () => messages,\n getSessions: () => sessionList,\n setMessages,\n setCurrentSessionDetail,\n }), [appInfo, messages, chat, stopChat, reChat, setMessages, setCurrentSessionDetail]);\n\n // 发送消息\n const handleSendMessage = (_type: string, content: string) => {\n chat(content);\n };\n\n // 清空消息\n const handleCreateNewMessage = () => {\n createNewChat();\n };\n \n // 工具栏按钮点击\n const handleActions = (index: number, actionData: any) => {\n const { content, id } = actionData || {};\n const { text = '' } = content;\n switch (index) {\n case 0:\n reChat();\n break;\n case 1:\n copy(text);\n message.success('复制成功');\n break;\n case 2: {\n const idx = messages.findIndex((item) => item.id === id);\n if (idx >= 0) {\n // 删除该条消息及建议类消息\n if (messages.length - idx <= 2) {\n setMessages((prev) => prev.filter((item) => item.id !== id && item.type !== 'SuggestionMessage'));\n } else {\n // 非最新消息 只删除该条消息\n setMessages((prev) => prev.filter((item) => item.id !== id));\n }\n message.success('删除成功');\n }\n break;\n }\n }\n };\n\n // 建议消息点击\n const handleSuggestMessageClick = (_item: any, id: string) => {\n setMessages((prev: any[]) => prev.filter((m: any) => m.id !== id));\n };\n\n // 切换会话\n const handleActiveChange = (key: string) => {\n setCurrentSessionDetail(key);\n };\n\n // 删除会话\n const handleDeleteSession = (sessionId: string) => {\n deleteSession(sessionId);\n };\n\n // 修改会话内容\n const handleUpdateSession = (sessionId: string, title: string) => {\n updateSession(sessionId, title);\n }\n\n // 会话操作菜单\n const menuConfig: ConversationsProps['menu'] = (conversation) => ({\n items: [\n {\n label: '重命名',\n key: 'edit',\n },\n {\n label: '删除',\n key: 'delete',\n danger: true,\n },\n ],\n onClick: (menuInfo) => {\n menuInfo.domEvent.stopPropagation();\n const { key } = menuInfo;\n switch (key) {\n case 'edit': {\n let inputValue = conversation.label as string || '';\n confirm({\n title: '编辑对话名称',\n icon: null,\n content: (\n <Input\n defaultValue={inputValue}\n autoFocus\n style={{ width: '100%' }}\n onChange={e => {\n inputValue = e.target.value;\n }}\n />\n ),\n okText: '确认',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#000', borderColor: '#000', color: '#fff' }\n },\n onOk: () => {\n if (!inputValue.trim()) {\n message.error('对话名称不能为空');\n return Promise.reject();\n }\n handleUpdateSession(conversation.key, inputValue);\n },\n onCancel: () => {\n // 静默处理\n },\n });\n break;\n }\n case 'delete':\n confirm({\n title: '确认删除?',\n icon: <ExclamationCircleFilled />,\n content: '该对话内容将被删除无法恢复。',\n okText: '确认删除',\n okType: 'danger',\n cancelText: '取消',\n okButtonProps: {\n style: { background: '#ff4d4f', borderColor: '#ff4d4f', color: '#fff' }\n },\n onOk() {\n handleDeleteSession(conversation.key);\n },\n onCancel() {\n //\n },\n });\n break;\n } \n },\n });\n\n const ToolTip = (messageData: any) => {\n const finalResult = (messageData?.think || []).find((item: any) => item.actionName === 'FINISHED');\n if (!finalResult) return null;\n const { cost, token: tokenCount } = finalResult.extra || {};\n if (!cost && !token) return null;\n return (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: '12px', color: '#949494', flex: 1, paddingRight: '40px' }}>\n { (cost !== undefined && cost !== null) && <div>{cost}s</div> }\n { tokenCount && <Divider type=\"vertical\" /> }\n { tokenCount && <div>{ tokenCount } tokens</div> }\n </div>\n );\n };\n // 是否展示清空按钮\n const clearBtnShow = typeof config?.chatProps?.clearBtnShow !== 'undefined'\n ? config.chatProps.clearBtnShow\n : !config?.session?.showSessionList;\n\n return (\n <XProvider>\n <XAiContext.Provider value={{\n avatar: <img src={icon} alt=\"智能体头像\" />,\n userAvatar: <img src={userIcon} alt=\"用户头像\" />,\n emptyStateImage: icon,\n emptyStateText: appName,\n footerTips: '内容由AI生成,无法确保真实准确,仅供参考',\n providerId,\n sessionList,\n sessionTotal: sessionPagination.total, \n token,\n messages,\n loading,\n error: null,\n activeKey: currentSessionId,\n clearBtnShow,\n messageTooltip: ToolTip,\n onSend: handleSendMessage,\n onClear: handleCreateNewMessage,\n onNewChat: handleCreateNewMessage,\n onStop: stopChat,\n menu: menuConfig,\n onActiveChange: handleActiveChange,\n onSuggestMessageClick: handleSuggestMessageClick,\n onMessagesActionsCallback: handleActions,\n isInProvider: true,\n }}\n >\n <div style={{\n display: 'flex',\n height: '100%'\n }}>\n {children}\n </div>\n </XAiContext.Provider>\n </XProvider>\n );\n});\n\nexport default XAiProvider;\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const SESSION_PAGE_SIZE = 50;
@@ -0,0 +1,3 @@
1
+ // 会话分页数
2
+ export var SESSION_PAGE_SIZE = 50;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SESSION_PAGE_SIZE"],"sources":["../../../src/constants/index.ts"],"sourcesContent":["// 会话分页数\nexport const SESSION_PAGE_SIZE = 50;"],"mappings":"AAAA;AACA,OAAO,IAAMA,iBAAiB,GAAG,EAAE"}
@@ -57,7 +57,7 @@ export interface UseAgentGeneratorProps {
57
57
  config: any;
58
58
  onError?: (error: Error) => void;
59
59
  onSuccess?: (data: Success) => void;
60
- onMessage?: (data: Messages) => void;
60
+ onMessage?: (content: string, data: Messages) => void;
61
61
  }
62
62
  declare const useAgentGenerator: ({ url, token, config, onError, onMessage, onSuccess, }: UseAgentGeneratorProps) => {
63
63
  appInfo: any;
@@ -71,11 +71,14 @@ declare const useAgentGenerator: ({ url, token, config, onError, onMessage, onSu
71
71
  pageNum: number;
72
72
  pageSize: number;
73
73
  };
74
- loadMoreSessions: () => Promise<void>;
74
+ initAppConversations: (fetchDetail?: boolean) => Promise<void>;
75
75
  reChat: () => void;
76
76
  chat: (content: any) => Promise<void>;
77
+ createNewChat: () => void;
77
78
  setCurrentSessionId: import("react").Dispatch<import("react").SetStateAction<string>>;
78
79
  setCurrentSessionDetail: (sessionId: string) => Promise<void>;
80
+ updateSession: (sessionId: string, title: string) => Promise<void>;
81
+ deleteSession: (sessionId: string) => Promise<void>;
79
82
  setMessage: (messageType: string, content: any) => Promise<void>;
80
83
  setMessages: import("react").Dispatch<import("react").SetStateAction<Messages[]>>;
81
84
  stopChat: () => void;
@@ -11,11 +11,10 @@ import { MessageRole, MessageStatus } from "../types/XAiMessage";
11
11
  import { ErrorCode, SuccessCode } from "../types";
12
12
  import { request } from "../utils/request";
13
13
  import { safeJsonParse } from "../utils";
14
- import { fetchAppConfig, fetchSessionList, fetchSessionDetail } from "../services/api";
14
+ import { SESSION_PAGE_SIZE } from "../constants";
15
+ import { fetchAppConfig, fetchSessionList, fetchSessionDetail, delSessionId, updateSessionTitle } from "../services/api";
15
16
  // 图标
16
17
  import documentIcon from "../assets/document.png";
17
- // import completedIcon from '@/assets/completed.png';
18
- // import completedExpandIcon from '@/assets/completed-black.png';
19
18
  import documentExpandIcon from "../assets/document-black.png";
20
19
  import qaIcon from "../assets/qa.png";
21
20
  import qaExpandIcon from "../assets/qa-black.png";
@@ -69,43 +68,33 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
69
68
  messages = _useState2[0],
70
69
  setMessages = _useState2[1];
71
70
  // 聊天记录分页设置
72
- var _useState3 = useState({
73
- total: 0,
74
- pageNum: 1,
75
- pageSize: 999
76
- }),
77
- _useState4 = _slicedToArray(_useState3, 2),
78
- messagePagination = _useState4[0],
79
- setMessagePagination = _useState4[1];
71
+ // const [messagePagination, setMessagePagination] = useState({ total: 0, pageNum: 1, pageSize: 999 });
80
72
  // 会话记录
81
- var _useState5 = useState([]),
82
- _useState6 = _slicedToArray(_useState5, 2),
83
- sessionList = _useState6[0],
84
- setSessionList = _useState6[1];
73
+ var _useState3 = useState([]),
74
+ _useState4 = _slicedToArray(_useState3, 2),
75
+ sessionList = _useState4[0],
76
+ setSessionList = _useState4[1];
85
77
  // 会话请求是否加载中
86
- var _useState7 = useState(false),
87
- _useState8 = _slicedToArray(_useState7, 2),
88
- sessionLoading = _useState8[0],
89
- setSessionLoading = _useState8[1];
78
+ // const [sessionLoading, setSessionLoading] = useState<boolean>(false);
90
79
  // 会话分页设置
91
- var _useState9 = useState({
80
+ var _useState5 = useState({
92
81
  total: 0,
93
82
  pageNum: 1,
94
- pageSize: 20
83
+ pageSize: SESSION_PAGE_SIZE
95
84
  }),
96
- _useState10 = _slicedToArray(_useState9, 2),
97
- sessionPagination = _useState10[0],
98
- setSessionPagination = _useState10[1];
85
+ _useState6 = _slicedToArray(_useState5, 2),
86
+ sessionPagination = _useState6[0],
87
+ setSessionPagination = _useState6[1];
99
88
  // 当前会话
100
- var _useState11 = useState(''),
101
- _useState12 = _slicedToArray(_useState11, 2),
102
- currentSessionId = _useState12[0],
103
- setCurrentSessionId = _useState12[1];
89
+ var _useState7 = useState(''),
90
+ _useState8 = _slicedToArray(_useState7, 2),
91
+ currentSessionId = _useState8[0],
92
+ setCurrentSessionId = _useState8[1];
104
93
  // 应用 配置
105
- var _useState13 = useState(null),
106
- _useState14 = _slicedToArray(_useState13, 2),
107
- appInfo = _useState14[0],
108
- setAppInfo = _useState14[1];
94
+ var _useState9 = useState(null),
95
+ _useState10 = _slicedToArray(_useState9, 2),
96
+ appInfo = _useState10[0],
97
+ setAppInfo = _useState10[1];
109
98
  // 请求 配置
110
99
  var requestInfo = useRef({});
111
100
  var _ref2 = config || {},
@@ -203,6 +192,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
203
192
  });
204
193
  }
205
194
  setMessages(function (prevMessages) {
195
+ var _aiMsg;
206
196
  var newMessages = _toConsumableArray(prevMessages);
207
197
  // 消息类型判断
208
198
  var _response = response,
@@ -364,7 +354,9 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
364
354
  // });
365
355
  aiMsg.status = MessageStatus.done;
366
356
  // 收到一条完整,触发收到消息回调
367
- onMessage === null || onMessage === void 0 || onMessage(aiMsg);
357
+ onMessage === null || onMessage === void 0 || onMessage((_aiMsg = aiMsg) === null || _aiMsg === void 0 || (_aiMsg = _aiMsg.content) === null || _aiMsg === void 0 ? void 0 : _aiMsg.text, aiMsg);
358
+ // 重新获取历史对话列表
359
+ initAppConversations(false);
368
360
  break;
369
361
  // 其他类型略
370
362
  }
@@ -574,6 +566,8 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
574
566
  return newMessages;
575
567
  });
576
568
  };
569
+
570
+ // 停止对话
577
571
  var stopChat = function stopChat() {
578
572
  stop();
579
573
  setMessages(function (prevMessages) {
@@ -696,20 +690,32 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
696
690
  // 获取聊天记录
697
691
  var initAppConversations = /*#__PURE__*/function () {
698
692
  var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
699
- var result, _result$data, resultData, _result$data2, _result$data3, _result$data4, formatSessions, sessionId;
693
+ var fetchDetail,
694
+ result,
695
+ _result$data,
696
+ resultData,
697
+ _result$data2,
698
+ _result$data3,
699
+ _result$data4,
700
+ formatSessions,
701
+ sessionId,
702
+ _args5 = arguments;
700
703
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
701
704
  while (1) switch (_context5.prev = _context5.next) {
702
705
  case 0:
703
- _context5.prev = 0;
704
- _context5.next = 3;
706
+ fetchDetail = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : false;
707
+ _context5.prev = 1;
708
+ _context5.next = 4;
705
709
  return fetchSessionList({
706
710
  url: url,
707
711
  appNo: appNo,
708
712
  pt: pt,
709
713
  tc: tc,
710
- token: token
714
+ token: token,
715
+ pageNum: sessionPagination.pageNum,
716
+ pageSize: sessionPagination.pageSize
711
717
  });
712
- case 3:
718
+ case 4:
713
719
  result = _context5.sent;
714
720
  if (result !== null && result !== void 0 && result.success) {
715
721
  resultData = (result === null || result === void 0 || (_result$data = result.data) === null || _result$data === void 0 ? void 0 : _result$data.data) || [];
@@ -717,7 +723,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
717
723
  formatSessions = resultData.map(function (item) {
718
724
  return {
719
725
  key: item.sessionId,
720
- label: item.title,
726
+ label: item.title || '新对话',
721
727
  timestamp: new Date(item.gmtCreated).getTime(),
722
728
  messages: [],
723
729
  meta: _objectSpread({}, item)
@@ -731,7 +737,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
731
737
  total: result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.totalCount
732
738
  });
733
739
  sessionId = resultData[0].sessionId;
734
- setCurrentSessionDetail(sessionId);
740
+ fetchDetail && setCurrentSessionDetail(sessionId);
735
741
  } else {
736
742
  // 页面报错 初始化
737
743
  setSessionList([]);
@@ -746,16 +752,16 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
746
752
  } else {
747
753
  initPrologue();
748
754
  }
749
- _context5.next = 9;
755
+ _context5.next = 10;
750
756
  break;
751
- case 7:
752
- _context5.prev = 7;
753
- _context5.t0 = _context5["catch"](0);
754
- case 9:
757
+ case 8:
758
+ _context5.prev = 8;
759
+ _context5.t0 = _context5["catch"](1);
760
+ case 10:
755
761
  case "end":
756
762
  return _context5.stop();
757
763
  }
758
- }, _callee5, null, [[0, 7]]);
764
+ }, _callee5, null, [[1, 8]]);
759
765
  }));
760
766
  return function initAppConversations() {
761
767
  return _ref10.apply(this, arguments);
@@ -787,9 +793,7 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
787
793
  pt: pt,
788
794
  tc: tc,
789
795
  sessionId: sessionId,
790
- token: token,
791
- pageNum: sessionPagination.pageNum,
792
- pageSize: sessionPagination.pageSize
796
+ token: token
793
797
  });
794
798
  case 6:
795
799
  sessionResult = _context6.sent;
@@ -817,82 +821,102 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
817
821
  };
818
822
  }();
819
823
 
820
- // 获取更多会话记录
821
- var loadMoreSessions = /*#__PURE__*/function () {
822
- var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
823
- var pageNum, pageSize, result, _result$data5, _result$data6, _result$data7, _result$data8, resultData, formatSessions;
824
+ // 删除会话
825
+ var deleteSession = /*#__PURE__*/function () {
826
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(sessionId) {
827
+ var result;
824
828
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
825
829
  while (1) switch (_context7.prev = _context7.next) {
826
830
  case 0:
827
- if (!sessionLoading) {
831
+ if (sessionId) {
828
832
  _context7.next = 2;
829
833
  break;
830
834
  }
831
835
  return _context7.abrupt("return");
832
836
  case 2:
833
- _context7.prev = 2;
834
- setSessionLoading(true);
835
- pageNum = sessionPagination.pageNum, pageSize = sessionPagination.pageSize;
836
- _context7.next = 7;
837
- return fetchSessionList({
837
+ _context7.next = 4;
838
+ return delSessionId({
838
839
  url: url,
839
840
  appNo: appNo,
840
841
  pt: pt,
841
842
  tc: tc,
842
- token: token,
843
- pageNum: pageNum + 1,
844
- pageSize: pageSize
843
+ sessionId: sessionId,
844
+ token: token
845
845
  });
846
- case 7:
846
+ case 4:
847
847
  result = _context7.sent;
848
848
  if (result !== null && result !== void 0 && result.success) {
849
- resultData = (result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.data) || [];
850
- if (resultData.length > 0) {
851
- formatSessions = resultData.map(function (item) {
852
- return {
853
- key: item.sessionId,
854
- label: item.title,
855
- timestamp: new Date(item.gmtCreated).getTime(),
856
- messages: [],
857
- meta: _objectSpread({}, item)
858
- };
859
- });
860
- setSessionList(function (prevList) {
861
- return [].concat(_toConsumableArray(prevList), _toConsumableArray(formatSessions));
862
- });
849
+ // 删除成功后,重新获取会话列表
850
+ initAppConversations(false);
851
+ // 如果删除的是当前会话,则创建新的会话
852
+ if (sessionId === currentSessionId) {
853
+ createNewChat();
863
854
  }
864
- // 设置分页信息
865
- setSessionPagination({
866
- pageNum: result === null || result === void 0 || (_result$data6 = result.data) === null || _result$data6 === void 0 ? void 0 : _result$data6.pageNum,
867
- pageSize: result === null || result === void 0 || (_result$data7 = result.data) === null || _result$data7 === void 0 ? void 0 : _result$data7.pageSize,
868
- total: result === null || result === void 0 || (_result$data8 = result.data) === null || _result$data8 === void 0 ? void 0 : _result$data8.totalCount
869
- });
870
855
  }
871
- _context7.next = 13;
872
- break;
873
- case 11:
874
- _context7.prev = 11;
875
- _context7.t0 = _context7["catch"](2);
876
- case 13:
877
- _context7.prev = 13;
878
- setSessionLoading(false);
879
- return _context7.finish(13);
880
- case 16:
856
+ case 6:
881
857
  case "end":
882
858
  return _context7.stop();
883
859
  }
884
- }, _callee7, null, [[2, 11, 13, 16]]);
860
+ }, _callee7);
885
861
  }));
886
- return function loadMoreSessions() {
862
+ return function deleteSession(_x5) {
887
863
  return _ref12.apply(this, arguments);
888
864
  };
889
865
  }();
890
866
 
867
+ // 更新会话名称
868
+ var updateSession = /*#__PURE__*/function () {
869
+ var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(sessionId, title) {
870
+ var result;
871
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
872
+ while (1) switch (_context8.prev = _context8.next) {
873
+ case 0:
874
+ if (!(!sessionId && !title)) {
875
+ _context8.next = 2;
876
+ break;
877
+ }
878
+ return _context8.abrupt("return");
879
+ case 2:
880
+ _context8.next = 4;
881
+ return updateSessionTitle({
882
+ url: url,
883
+ appNo: appNo,
884
+ pt: pt,
885
+ tc: tc,
886
+ title: title,
887
+ sessionId: sessionId,
888
+ token: token
889
+ });
890
+ case 4:
891
+ result = _context8.sent;
892
+ if (result !== null && result !== void 0 && result.success) {
893
+ // 编辑成功后,重新获取会话列表
894
+ initAppConversations(false);
895
+ }
896
+ case 6:
897
+ case "end":
898
+ return _context8.stop();
899
+ }
900
+ }, _callee8);
901
+ }));
902
+ return function updateSession(_x6, _x7) {
903
+ return _ref13.apply(this, arguments);
904
+ };
905
+ }();
906
+
907
+ // 生成新对话
908
+ var createNewChat = function createNewChat() {
909
+ stopChat(); // 停止聊天
910
+ setMessages([]); // 清空所有消息
911
+ initPrologue(); // 初始化开场白和预置问题
912
+ setCurrentSessionId(uuidV4()); // 设置会话 id
913
+ };
914
+
891
915
  // 初始化应用
892
916
  useEffect(function () {
893
917
  if (appInfo) {
894
918
  // 初始化历史数据
895
- initAppConversations();
919
+ initAppConversations(true);
896
920
  }
897
921
  // eslint-disable-next-line react-hooks/exhaustive-deps
898
922
  }, [appInfo]);
@@ -904,11 +928,14 @@ var useAgentGenerator = function useAgentGenerator(_ref) {
904
928
  sessionList: sessionList,
905
929
  currentSessionId: currentSessionId,
906
930
  sessionPagination: sessionPagination,
907
- loadMoreSessions: loadMoreSessions,
931
+ initAppConversations: initAppConversations,
908
932
  reChat: reChat,
909
933
  chat: chat,
934
+ createNewChat: createNewChat,
910
935
  setCurrentSessionId: setCurrentSessionId,
911
936
  setCurrentSessionDetail: setCurrentSessionDetail,
937
+ updateSession: updateSession,
938
+ deleteSession: deleteSession,
912
939
  setMessage: setMessage,
913
940
  setMessages: setMessages,
914
941
  stopChat: stopChat,