@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.
- package/dist/cjs/assets/add-chat.svg +13 -0
- package/dist/cjs/assets/flash-open.svg +14 -0
- package/dist/cjs/assets/logo.png +0 -0
- package/dist/cjs/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/cjs/assets/svg/AddChatIcon.js +38 -0
- package/dist/cjs/assets/svg/AddChatIcon.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/index.js +2 -1
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/styles.js +1 -1
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/index.js +61 -27
- package/dist/cjs/components/XAiConversations/index.js.map +3 -3
- package/dist/cjs/components/XAiConversations/styles.d.ts +45 -0
- package/dist/cjs/components/XAiConversations/styles.js +177 -0
- package/dist/cjs/components/XAiConversations/styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +9 -6
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiProvider/index.js +96 -12
- package/dist/cjs/components/XAiProvider/index.js.map +3 -3
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +30 -0
- package/dist/cjs/constants/index.js.map +7 -0
- package/dist/cjs/hooks/useAgentGenerator.d.ts +5 -2
- package/dist/cjs/hooks/useAgentGenerator.js +53 -50
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/services/api.d.ts +23 -0
- package/dist/cjs/services/api.js +35 -2
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAiChatbot.d.ts +2 -0
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +2 -0
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/XAiMessage.js.map +2 -2
- package/dist/cjs/types/XAiProvider.d.ts +20 -2
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/cjs/utils/umdEntry.d.ts +2 -1
- package/dist/cjs/utils/umdEntry.js +3 -2
- package/dist/cjs/utils/umdEntry.js.map +2 -2
- package/dist/esm/assets/add-chat.svg +13 -0
- package/dist/esm/assets/flash-open.svg +14 -0
- package/dist/esm/assets/logo.png +0 -0
- package/dist/esm/assets/svg/AddChatIcon.d.ts +3 -0
- package/dist/esm/assets/svg/AddChatIcon.js +40 -0
- package/dist/esm/assets/svg/AddChatIcon.js.map +1 -0
- package/dist/esm/components/XAiChatbot/index.js +3 -1
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.js +1 -1
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/index.js +129 -47
- package/dist/esm/components/XAiConversations/index.js.map +1 -1
- package/dist/esm/components/XAiConversations/styles.d.ts +45 -0
- package/dist/esm/components/XAiConversations/styles.js +36 -0
- package/dist/esm/components/XAiConversations/styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +26 -27
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiProvider/index.js +119 -14
- package/dist/esm/components/XAiProvider/index.js.map +1 -1
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +3 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/hooks/useAgentGenerator.d.ts +5 -2
- package/dist/esm/hooks/useAgentGenerator.js +124 -97
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/services/api.d.ts +23 -0
- package/dist/esm/services/api.js +73 -0
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAiChatbot.d.ts +2 -0
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +2 -0
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/XAiMessage.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +20 -2
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +2 -1
- package/dist/esm/utils/umdEntry.js +9 -8
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- 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
|
-
|
|
35
|
-
|
|
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
|
|
69
|
-
|
|
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:
|
|
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:
|
|
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 @@
|
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
|
82
|
-
|
|
83
|
-
sessionList =
|
|
84
|
-
setSessionList =
|
|
73
|
+
var _useState3 = useState([]),
|
|
74
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
75
|
+
sessionList = _useState4[0],
|
|
76
|
+
setSessionList = _useState4[1];
|
|
85
77
|
// 会话请求是否加载中
|
|
86
|
-
|
|
87
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
88
|
-
sessionLoading = _useState8[0],
|
|
89
|
-
setSessionLoading = _useState8[1];
|
|
78
|
+
// const [sessionLoading, setSessionLoading] = useState<boolean>(false);
|
|
90
79
|
// 会话分页设置
|
|
91
|
-
var
|
|
80
|
+
var _useState5 = useState({
|
|
92
81
|
total: 0,
|
|
93
82
|
pageNum: 1,
|
|
94
|
-
pageSize:
|
|
83
|
+
pageSize: SESSION_PAGE_SIZE
|
|
95
84
|
}),
|
|
96
|
-
|
|
97
|
-
sessionPagination =
|
|
98
|
-
setSessionPagination =
|
|
85
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
86
|
+
sessionPagination = _useState6[0],
|
|
87
|
+
setSessionPagination = _useState6[1];
|
|
99
88
|
// 当前会话
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
currentSessionId =
|
|
103
|
-
setCurrentSessionId =
|
|
89
|
+
var _useState7 = useState(''),
|
|
90
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
91
|
+
currentSessionId = _useState8[0],
|
|
92
|
+
setCurrentSessionId = _useState8[1];
|
|
104
93
|
// 应用 配置
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
appInfo =
|
|
108
|
-
setAppInfo =
|
|
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
|
|
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
|
-
|
|
704
|
-
_context5.
|
|
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
|
|
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 =
|
|
755
|
+
_context5.next = 10;
|
|
750
756
|
break;
|
|
751
|
-
case
|
|
752
|
-
_context5.prev =
|
|
753
|
-
_context5.t0 = _context5["catch"](
|
|
754
|
-
case
|
|
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, [[
|
|
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
|
|
822
|
-
var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
823
|
-
var
|
|
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 (
|
|
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.
|
|
834
|
-
|
|
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
|
-
|
|
843
|
-
|
|
844
|
-
pageSize: pageSize
|
|
843
|
+
sessionId: sessionId,
|
|
844
|
+
token: token
|
|
845
845
|
});
|
|
846
|
-
case
|
|
846
|
+
case 4:
|
|
847
847
|
result = _context7.sent;
|
|
848
848
|
if (result !== null && result !== void 0 && result.success) {
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
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
|
-
|
|
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
|
|
860
|
+
}, _callee7);
|
|
885
861
|
}));
|
|
886
|
-
return function
|
|
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
|
-
|
|
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,
|