@ai-group/chat-sdk 2.0.3 → 2.1.0

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 (238) hide show
  1. package/dist/cjs/client/base.d.ts +2 -2
  2. package/dist/cjs/client/base.js.map +1 -1
  3. package/dist/cjs/components/DislikeFeedback.js +16 -1
  4. package/dist/cjs/components/DislikeFeedback.js.map +2 -2
  5. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  6. package/dist/cjs/components/{XAiWebSDKWrapper.js → XAdkChatbot/XAdkChatbot.stories.js} +29 -40
  7. package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +7 -0
  8. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  9. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +158 -0
  10. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +7 -0
  11. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  12. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +59 -0
  13. package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +7 -0
  14. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  15. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +95 -0
  16. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +7 -0
  17. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  18. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +49 -0
  19. package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +7 -0
  20. package/dist/cjs/components/XAdkChatbot/index.d.ts +4 -0
  21. package/dist/cjs/components/XAdkChatbot/index.js +232 -0
  22. package/dist/cjs/components/XAdkChatbot/index.js.map +7 -0
  23. package/dist/cjs/components/XAdkChatbot/styles.d.ts +51 -0
  24. package/dist/cjs/components/XAdkChatbot/styles.js +160 -0
  25. package/dist/cjs/components/XAdkChatbot/styles.js.map +7 -0
  26. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  27. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +144 -0
  28. package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +7 -0
  29. package/dist/cjs/components/XAdkWebProvider/index.d.ts +4 -0
  30. package/dist/cjs/components/XAdkWebProvider/index.js +349 -0
  31. package/dist/cjs/components/XAdkWebProvider/index.js.map +7 -0
  32. package/dist/cjs/components/XAdkWebProvider/styles.d.ts +37 -0
  33. package/dist/cjs/components/XAdkWebProvider/styles.js +44 -0
  34. package/dist/cjs/components/XAdkWebProvider/styles.js.map +7 -0
  35. package/dist/cjs/components/XAiChatbot/index.js +27 -7
  36. package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
  37. package/dist/cjs/components/XAiChatbot/styles.js +31 -0
  38. package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
  39. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +1 -0
  40. package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
  41. package/dist/cjs/components/XAiJsonView/index.d.ts +8 -0
  42. package/dist/cjs/components/XAiJsonView/index.js +81 -0
  43. package/dist/cjs/components/XAiJsonView/index.js.map +7 -0
  44. package/dist/cjs/components/XAiJsonView/styles.d.ts +39 -0
  45. package/dist/cjs/components/XAiJsonView/styles.js +58 -0
  46. package/dist/cjs/components/XAiJsonView/styles.js.map +7 -0
  47. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +1 -1
  48. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  49. package/dist/cjs/components/XAiSender/index.js +23 -17
  50. package/dist/cjs/components/XAiSender/index.js.map +2 -2
  51. package/dist/cjs/components/XAiSender/styles.js +0 -1
  52. package/dist/cjs/components/XAiSender/styles.js.map +2 -2
  53. package/dist/cjs/context/AiProviderContext.d.ts +3 -2
  54. package/dist/cjs/context/AiProviderContext.js.map +1 -1
  55. package/dist/cjs/hooks/useADKChat.d.ts +38 -0
  56. package/dist/cjs/hooks/useADKChat.js +595 -0
  57. package/dist/cjs/hooks/useADKChat.js.map +7 -0
  58. package/dist/cjs/hooks/useAgentGenerator.js +6 -6
  59. package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
  60. package/dist/cjs/hooks/useEventStreamRequest.js +6 -3
  61. package/dist/cjs/hooks/useEventStreamRequest.js.map +2 -2
  62. package/dist/cjs/index.d.ts +1 -2
  63. package/dist/cjs/index.js +0 -3
  64. package/dist/cjs/index.js.map +3 -3
  65. package/dist/cjs/services/api.d.ts +36 -19
  66. package/dist/cjs/services/api.js +7 -7
  67. package/dist/cjs/services/api.js.map +2 -2
  68. package/dist/cjs/types/XAdkChatbot.d.ts +197 -0
  69. package/dist/cjs/types/XAdkChatbot.js +18 -0
  70. package/dist/cjs/types/XAdkChatbot.js.map +7 -0
  71. package/dist/cjs/types/XAdkProvider.d.ts +117 -0
  72. package/dist/cjs/types/XAdkProvider.js +18 -0
  73. package/dist/cjs/types/XAdkProvider.js.map +7 -0
  74. package/dist/cjs/types/XAiChatbot.d.ts +2 -2
  75. package/dist/cjs/types/XAiChatbot.js.map +1 -1
  76. package/dist/cjs/types/XAiConversations.d.ts +2 -2
  77. package/dist/cjs/types/XAiConversations.js.map +1 -1
  78. package/dist/cjs/types/index.d.ts +1 -0
  79. package/dist/cjs/types/index.js +3 -1
  80. package/dist/cjs/types/index.js.map +2 -2
  81. package/dist/cjs/utils/providerManager.d.ts +7 -6
  82. package/dist/cjs/utils/providerManager.js.map +2 -2
  83. package/dist/cjs/utils/umdEntry.d.ts +6 -8
  84. package/dist/cjs/utils/umdEntry.js +4 -18
  85. package/dist/cjs/utils/umdEntry.js.map +3 -3
  86. package/dist/esm/client/base.d.ts +2 -2
  87. package/dist/esm/client/base.js.map +1 -1
  88. package/dist/esm/components/DislikeFeedback.js +18 -5
  89. package/dist/esm/components/DislikeFeedback.js.map +1 -1
  90. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
  91. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +21 -0
  92. package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -0
  93. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
  94. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +183 -0
  95. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -0
  96. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
  97. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -0
  98. package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -0
  99. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
  100. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +70 -0
  101. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -0
  102. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
  103. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +32 -0
  104. package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +1 -0
  105. package/dist/esm/components/XAdkChatbot/index.d.ts +4 -0
  106. package/dist/esm/components/XAdkChatbot/index.js +280 -0
  107. package/dist/esm/components/XAdkChatbot/index.js.map +1 -0
  108. package/dist/esm/components/XAdkChatbot/styles.d.ts +51 -0
  109. package/dist/esm/components/XAdkChatbot/styles.js +25 -0
  110. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -0
  111. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
  112. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +148 -0
  113. package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -0
  114. package/dist/esm/components/XAdkWebProvider/index.d.ts +4 -0
  115. package/dist/esm/components/XAdkWebProvider/index.js +447 -0
  116. package/dist/esm/components/XAdkWebProvider/index.js.map +1 -0
  117. package/dist/esm/components/XAdkWebProvider/styles.d.ts +37 -0
  118. package/dist/esm/components/XAdkWebProvider/styles.js +11 -0
  119. package/dist/esm/components/XAdkWebProvider/styles.js.map +1 -0
  120. package/dist/esm/components/XAiChatbot/index.js +39 -21
  121. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  122. package/dist/esm/components/XAiChatbot/styles.js +1 -1
  123. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  124. package/dist/esm/components/XAiConversations/XAiConversations.stories.js +3 -3
  125. package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -1
  126. package/dist/esm/components/XAiJsonView/index.d.ts +8 -0
  127. package/dist/esm/components/XAiJsonView/index.js +44 -0
  128. package/dist/esm/components/XAiJsonView/index.js.map +1 -0
  129. package/dist/esm/components/XAiJsonView/styles.d.ts +39 -0
  130. package/dist/esm/components/XAiJsonView/styles.js +19 -0
  131. package/dist/esm/components/XAiJsonView/styles.js.map +1 -0
  132. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +1 -1
  133. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
  134. package/dist/esm/components/XAiSender/index.js +2 -2
  135. package/dist/esm/components/XAiSender/index.js.map +1 -1
  136. package/dist/esm/components/XAiSender/styles.js +1 -1
  137. package/dist/esm/components/XAiSender/styles.js.map +1 -1
  138. package/dist/esm/context/AiProviderContext.d.ts +3 -2
  139. package/dist/esm/context/AiProviderContext.js.map +1 -1
  140. package/dist/esm/hooks/useADKChat.d.ts +38 -0
  141. package/dist/esm/hooks/useADKChat.js +855 -0
  142. package/dist/esm/hooks/useADKChat.js.map +1 -0
  143. package/dist/esm/hooks/useAgentGenerator.js +11 -10
  144. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  145. package/dist/esm/hooks/useEventStreamRequest.js +5 -2
  146. package/dist/esm/hooks/useEventStreamRequest.js.map +1 -1
  147. package/dist/esm/index.d.ts +1 -2
  148. package/dist/esm/index.js +1 -2
  149. package/dist/esm/index.js.map +1 -1
  150. package/dist/esm/services/api.d.ts +36 -19
  151. package/dist/esm/services/api.js +8 -8
  152. package/dist/esm/services/api.js.map +1 -1
  153. package/dist/esm/types/XAdkChatbot.d.ts +197 -0
  154. package/dist/esm/types/XAdkChatbot.js +2 -0
  155. package/dist/esm/types/XAdkChatbot.js.map +1 -0
  156. package/dist/esm/types/XAdkProvider.d.ts +117 -0
  157. package/dist/esm/types/XAdkProvider.js +2 -0
  158. package/dist/esm/types/XAdkProvider.js.map +1 -0
  159. package/dist/esm/types/XAiChatbot.d.ts +2 -2
  160. package/dist/esm/types/XAiChatbot.js.map +1 -1
  161. package/dist/esm/types/XAiConversations.d.ts +2 -2
  162. package/dist/esm/types/XAiConversations.js.map +1 -1
  163. package/dist/esm/types/index.d.ts +1 -0
  164. package/dist/esm/types/index.js +1 -0
  165. package/dist/esm/types/index.js.map +1 -1
  166. package/dist/esm/utils/providerManager.d.ts +7 -6
  167. package/dist/esm/utils/providerManager.js.map +1 -1
  168. package/dist/esm/utils/umdEntry.d.ts +6 -8
  169. package/dist/esm/utils/umdEntry.js +8 -37
  170. package/dist/esm/utils/umdEntry.js.map +1 -1
  171. package/dist/umd/chat-sdk.min.css +1 -0
  172. package/dist/umd/chat-sdk.min.js +1 -1
  173. package/dist/umd/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  174. package/dist/umd/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  175. package/dist/umd/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  176. package/dist/umd/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  177. package/dist/umd/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  178. package/dist/umd/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  179. package/dist/umd/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  180. package/dist/umd/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  181. package/dist/umd/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  182. package/dist/umd/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  183. package/dist/umd/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  184. package/dist/umd/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  185. package/dist/umd/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  186. package/dist/umd/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  187. package/dist/umd/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  188. package/dist/umd/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  189. package/dist/umd/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  190. package/dist/umd/static/KaTeX_Main-Bold.d181c465.woff +0 -0
  191. package/dist/umd/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  192. package/dist/umd/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  193. package/dist/umd/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  194. package/dist/umd/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  195. package/dist/umd/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  196. package/dist/umd/static/KaTeX_Main-Italic.9024d815.woff +0 -0
  197. package/dist/umd/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  198. package/dist/umd/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  199. package/dist/umd/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  200. package/dist/umd/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  201. package/dist/umd/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  202. package/dist/umd/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  203. package/dist/umd/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
  204. package/dist/umd/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
  205. package/dist/umd/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  206. package/dist/umd/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  207. package/dist/umd/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  208. package/dist/umd/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  209. package/dist/umd/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  210. package/dist/umd/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  211. package/dist/umd/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  212. package/dist/umd/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  213. package/dist/umd/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  214. package/dist/umd/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  215. package/dist/umd/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  216. package/dist/umd/static/KaTeX_Script-Regular.07505710.woff +0 -0
  217. package/dist/umd/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  218. package/dist/umd/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  219. package/dist/umd/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  220. package/dist/umd/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  221. package/dist/umd/static/KaTeX_Size2-Regular.57727022.woff +0 -0
  222. package/dist/umd/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  223. package/dist/umd/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  224. package/dist/umd/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  225. package/dist/umd/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  226. package/dist/umd/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  227. package/dist/umd/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  228. package/dist/umd/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  229. package/dist/umd/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  230. package/dist/umd/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  231. package/dist/umd/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  232. package/dist/umd/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  233. package/package.json +26 -19
  234. package/dist/cjs/components/XAiWebSDKWrapper.d.ts +0 -9
  235. package/dist/cjs/components/XAiWebSDKWrapper.js.map +0 -7
  236. package/dist/esm/components/XAiWebSDKWrapper.d.ts +0 -9
  237. package/dist/esm/components/XAiWebSDKWrapper.js +0 -45
  238. package/dist/esm/components/XAiWebSDKWrapper.js.map +0 -1
@@ -0,0 +1,855 @@
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
6
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
7
+ import { useEffect, useCallback, useMemo, useRef, useState } from 'react';
8
+ import { fetchEventSource, EventStreamContentType } from '@microsoft/fetch-event-source';
9
+ import { message } from 'antd';
10
+ import { v4 } from 'uuid';
11
+ import { SESSION_PAGE_SIZE, API_SUCCESS_CODE } from "../constants";
12
+ import { ErrorCode, SuccessCode } from "../types";
13
+ import { fetchAppConfig, fetchSessionList, fetchSessionDetail, closeSession, updateSessionTitle } from "../services/api";
14
+ import { safeJsonParse } from "../utils";
15
+ var combineTextParts = function combineTextParts(parts) {
16
+ var result = [];
17
+ var combinedTextPart;
18
+
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ var _iterator = _createForOfIteratorHelper(parts),
21
+ _step;
22
+ try {
23
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
24
+ var part = _step.value;
25
+ if (part.text) {
26
+ // 如果没有 combined 或 combined 思考类型跟当前 part 不同,则创建新的合并引用
27
+ if (!combinedTextPart || combinedTextPart.thought !== part.thought) {
28
+ combinedTextPart = _objectSpread({}, part);
29
+ result.push(combinedTextPart);
30
+ } else {
31
+ combinedTextPart.text += part.text;
32
+ }
33
+ } else {
34
+ combinedTextPart = undefined;
35
+ result.push(part);
36
+ }
37
+ }
38
+ } catch (err) {
39
+ _iterator.e(err);
40
+ } finally {
41
+ _iterator.f();
42
+ }
43
+ return result;
44
+ };
45
+ function useADKChat(_ref) {
46
+ var url = _ref.url,
47
+ token = _ref.token,
48
+ _ref$config = _ref.config,
49
+ config = _ref$config === void 0 ? {} : _ref$config,
50
+ _ref$type = _ref.type,
51
+ type = _ref$type === void 0 ? 'agentDebug' : _ref$type,
52
+ onError = _ref.onError,
53
+ onMessage = _ref.onMessage,
54
+ onSuccess = _ref.onSuccess;
55
+ var _useState = useState(false),
56
+ _useState2 = _slicedToArray(_useState, 2),
57
+ loading = _useState2[0],
58
+ setLoading = _useState2[1];
59
+ var ctrl = useRef(null);
60
+ // 应用配置
61
+ var _ref2 = config || {},
62
+ appNo = _ref2.appNo;
63
+ // 智能体信息
64
+ var _useState3 = useState({
65
+ appNo: appNo,
66
+ appVersionNo: '',
67
+ appTheme: '',
68
+ appName: '',
69
+ onboardingInfo: {
70
+ prologue: '',
71
+ questionFiles: [],
72
+ suggested_questions: []
73
+ }
74
+ }),
75
+ _useState4 = _slicedToArray(_useState3, 2),
76
+ appInfo = _useState4[0],
77
+ setAppInfo = _useState4[1];
78
+ // 会话记录
79
+ var _useState5 = useState([]),
80
+ _useState6 = _slicedToArray(_useState5, 2),
81
+ sessionList = _useState6[0],
82
+ setSessionList = _useState6[1];
83
+ // 当前会话
84
+ var _useState7 = useState(''),
85
+ _useState8 = _slicedToArray(_useState7, 2),
86
+ currentSessionId = _useState8[0],
87
+ setCurrentSessionId = _useState8[1];
88
+ // 会话分页设置
89
+ var _useState9 = useState({
90
+ total: 0,
91
+ pageNum: 1,
92
+ pageSize: SESSION_PAGE_SIZE
93
+ }),
94
+ _useState10 = _slicedToArray(_useState9, 2),
95
+ sessionPagination = _useState10[0],
96
+ setSessionPagination = _useState10[1];
97
+ // 开场白
98
+ var _useState11 = useState(''),
99
+ _useState12 = _slicedToArray(_useState11, 2),
100
+ prologue = _useState12[0],
101
+ setPrologue = _useState12[1];
102
+ // 建议问题
103
+ var _useState13 = useState([]),
104
+ _useState14 = _slicedToArray(_useState13, 2),
105
+ suggestedQuestions = _useState14[0],
106
+ setSuggestedQuestions = _useState14[1];
107
+ var _useState15 = useState([]),
108
+ _useState16 = _slicedToArray(_useState15, 2),
109
+ messages = _useState16[0],
110
+ setMessages = _useState16[1];
111
+ var mergedMessages = useMemo(function () {
112
+ var fnResMap = {};
113
+ messages.forEach(function (msg) {
114
+ if (msg.functionResponse) {
115
+ var _msg$functionResponse;
116
+ fnResMap[(msg === null || msg === void 0 || (_msg$functionResponse = msg.functionResponse) === null || _msg$functionResponse === void 0 ? void 0 : _msg$functionResponse.id) || ''] = msg.functionResponse;
117
+ }
118
+ });
119
+ return messages.map(function (msg) {
120
+ if (msg.functionCall) {
121
+ var _msg$functionCall;
122
+ return _objectSpread(_objectSpread({}, msg), {}, {
123
+ functionResponse: fnResMap[(msg === null || msg === void 0 || (_msg$functionCall = msg.functionCall) === null || _msg$functionCall === void 0 ? void 0 : _msg$functionCall.id) || '']
124
+ });
125
+ }
126
+ return msg;
127
+ });
128
+ }, [messages]);
129
+ var textMsgRef = useRef(null);
130
+ var eventDataRef = useRef(new Map());
131
+
132
+ // 插入消息
133
+ var insertMessage = useCallback(function (msg) {
134
+ setMessages(function (prev) {
135
+ var lastMessage = prev[prev.length - 1];
136
+ if (lastMessage !== null && lastMessage !== void 0 && lastMessage.isLoading) {
137
+ return [].concat(_toConsumableArray(prev.slice(0, -1)), [msg, lastMessage]);
138
+ }
139
+ return [].concat(_toConsumableArray(prev), [msg]);
140
+ });
141
+ }, []);
142
+
143
+ // 初始化开场白预设置问题
144
+ var insertSuggestedQuestions = function insertSuggestedQuestions() {
145
+ var suggested_questions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
146
+ if (!(suggested_questions !== null && suggested_questions !== void 0 && suggested_questions.length)) return;
147
+ // 无消息内容 且 有建议问题时
148
+ if (messages.length === 0 && suggested_questions.length) {
149
+ setSuggestedQuestions(suggested_questions);
150
+ }
151
+ ;
152
+ };
153
+
154
+ // 初始化开场白
155
+ var insertPrologue = function insertPrologue(prologue) {
156
+ if (prologue) {
157
+ setPrologue(prologue);
158
+ }
159
+ };
160
+
161
+ // 更新消息
162
+ var updateMessage = useCallback(function (msg) {
163
+ setMessages(function (prev) {
164
+ return prev.map(function (m) {
165
+ if (m.id === msg.id) {
166
+ return msg;
167
+ }
168
+ return m;
169
+ });
170
+ });
171
+ }, []);
172
+
173
+ // 存储事件
174
+ var storeEvents = useCallback(function (part, event) {
175
+ var _event$actions;
176
+ var title = '';
177
+ if (part == null && (_event$actions = event.actions) !== null && _event$actions !== void 0 && _event$actions.artifactDelta) {
178
+ title += 'eventAction: artifact';
179
+ } else if (part) {
180
+ if (part.text) {
181
+ title += "text:".concat(part.text);
182
+ } else if (part.functionCall) {
183
+ title += "functionCall:".concat(part.functionCall.name);
184
+ } else if (part.functionResponse) {
185
+ title += "functionResponse:".concat(part.functionResponse.name);
186
+ } else if (part.executableCode) {
187
+ var _part$executableCode$;
188
+ title += "executableCode:".concat((_part$executableCode$ = part.executableCode.code) === null || _part$executableCode$ === void 0 ? void 0 : _part$executableCode$.slice(0, 10));
189
+ } else if (part.codeExecutionResult) {
190
+ title += "codeExecutionResult:".concat(part.codeExecutionResult.outcome);
191
+ } else if (part.errorMessage) {
192
+ title += "errorMessage:".concat(part.errorMessage);
193
+ }
194
+ }
195
+ var updatedEvent = _objectSpread(_objectSpread({}, event), {}, {
196
+ title: title
197
+ });
198
+ var newEventData = new Map(eventDataRef.current);
199
+ newEventData.set(event.id, updatedEvent);
200
+ eventDataRef.current = newEventData;
201
+ }, []);
202
+
203
+ // 存储消息
204
+ var storeMessage = useCallback(function (part, event, role) {
205
+ var msg = {
206
+ id: v4(),
207
+ author: event.author,
208
+ invocationId: event.invocationId,
209
+ eventId: event.id,
210
+ timestamp: event.timestamp,
211
+ role: role
212
+ };
213
+ if (part) {
214
+ if (part.inlineData) {
215
+ msg.inlineData = {
216
+ displayName: part.inlineData.displayName,
217
+ data: part.inlineData.data,
218
+ mimeType: part.inlineData.mimeType
219
+ };
220
+ } else if (part.text) {
221
+ var _event$groundingMetad;
222
+ msg.text = part.text;
223
+ msg.thought = part.thought;
224
+ if (event !== null && event !== void 0 && (_event$groundingMetad = event.groundingMetadata) !== null && _event$groundingMetad !== void 0 && (_event$groundingMetad = _event$groundingMetad.searchEntryPoint) !== null && _event$groundingMetad !== void 0 && _event$groundingMetad.renderedContent) {
225
+ msg.renderedContent = event.groundingMetadata.searchEntryPoint.renderedContent;
226
+ }
227
+ } else if (part.functionCall) {
228
+ msg.functionCall = part.functionCall;
229
+ } else if (part.functionResponse) {
230
+ msg.functionResponse = part.functionResponse;
231
+ } else if (part.executableCode) {
232
+ msg.executableCode = part.executableCode;
233
+ } else if (part.codeExecutionResult) {
234
+ msg.codeExecutionResult = part.codeExecutionResult;
235
+ }
236
+ }
237
+ if (part && Object.keys(part).length > 0) {
238
+ insertMessage(msg);
239
+ }
240
+ }, [insertMessage]);
241
+
242
+ // 处理消息部分(关键更新)
243
+ var processPart = useCallback(function (event, part) {
244
+ var _event$groundingMetad2;
245
+ var renderedContent = (_event$groundingMetad2 = event.groundingMetadata) === null || _event$groundingMetad2 === void 0 || (_event$groundingMetad2 = _event$groundingMetad2.searchEntryPoint) === null || _event$groundingMetad2 === void 0 ? void 0 : _event$groundingMetad2.renderedContent;
246
+ if (part.text) {
247
+ var newChunk = part.text;
248
+ if (!textMsgRef.current || textMsgRef.current.thought !== part.thought) {
249
+ var newMessage = {
250
+ id: v4(),
251
+ author: event.author,
252
+ invocationId: event.invocationId,
253
+ eventId: event.id,
254
+ timestamp: event.timestamp,
255
+ role: 'bot',
256
+ text: newChunk,
257
+ thought: part.thought
258
+ };
259
+ if (renderedContent) {
260
+ newMessage.renderedContent = renderedContent;
261
+ }
262
+ textMsgRef.current = newMessage;
263
+ // 存储原数据
264
+ storeEvents(part, event);
265
+ // 插入消息
266
+ insertMessage(newMessage);
267
+ } else {
268
+ if (event.partial === false) {
269
+ storeEvents(part, event);
270
+ textMsgRef.current = null;
271
+ return;
272
+ }
273
+ if (renderedContent) {
274
+ textMsgRef.current = _objectSpread(_objectSpread({}, textMsgRef.current), {}, {
275
+ renderedContent: renderedContent
276
+ });
277
+ }
278
+ textMsgRef.current = _objectSpread(_objectSpread({}, textMsgRef.current), {}, {
279
+ text: (textMsgRef.current.text || '') + newChunk
280
+ });
281
+ updateMessage(textMsgRef.current);
282
+ }
283
+ } else {
284
+ textMsgRef.current = null;
285
+ storeEvents(part, event);
286
+ storeMessage(part, event, 'bot');
287
+ }
288
+ }, [storeEvents, storeMessage, insertMessage, updateMessage]);
289
+
290
+ // 处理建议类消息
291
+ var processFollowupPart = useCallback(function (event) {
292
+ var _event$content;
293
+ // 获取建议类消息的文本内容
294
+ var part = (event === null || event === void 0 || (_event$content = event.content) === null || _event$content === void 0 || (_event$content = _event$content.parts) === null || _event$content === void 0 ? void 0 : _event$content[0]) || null;
295
+ var text = (part === null || part === void 0 ? void 0 : part.text) || '';
296
+ storeEvents(part, event);
297
+ if (text) {
298
+ setSuggestedQuestions(function (prev) {
299
+ return [].concat(_toConsumableArray(prev), [text]);
300
+ });
301
+ }
302
+ }, [storeEvents, insertMessage]);
303
+
304
+ // 处理错误消息
305
+ var processErrorMessage = useCallback(function (chunkJson) {
306
+ storeEvents(null, chunkJson);
307
+ insertMessage({
308
+ id: v4(),
309
+ text: chunkJson.errorMessage,
310
+ role: 'bot'
311
+ });
312
+ }, [storeEvents, insertMessage]);
313
+
314
+ // 处理动作和制品
315
+ var processActionArtifact = useCallback(function (event) {
316
+ if (event.actions && event.actions.artifactDelta) {
317
+ storeEvents(null, event);
318
+ storeMessage(null, event, 'bot');
319
+ }
320
+ }, [storeEvents, storeMessage]);
321
+
322
+ // 发送消息请求
323
+ var sendMessageRequest = useCallback(function (values) {
324
+ return new Promise(function (resolve) {
325
+ if (ctrl.current) {
326
+ ctrl.current.abort();
327
+ }
328
+ setLoading(true);
329
+ ctrl.current = new AbortController();
330
+ var requestUrl = "".concat(url, "/api/gateway-web/openApi/v1/aizt/app/").concat(appNo, "/sendMsgStreaming");
331
+ fetchEventSource(requestUrl, {
332
+ method: 'POST',
333
+ signal: ctrl.current.signal,
334
+ body: JSON.stringify(values),
335
+ openWhenHidden: true,
336
+ headers: {
337
+ 'Content-Type': 'application/json',
338
+ 'Cache-Control': 'no-cache',
339
+ stream: 'true',
340
+ Authorization: "Bearer ".concat(token)
341
+ },
342
+ onopen: function onopen(response) {
343
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
344
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
345
+ while (1) switch (_context.prev = _context.next) {
346
+ case 0:
347
+ if (response.ok && response.headers.get('content-type') === EventStreamContentType) {
348
+ // everything's good
349
+ } else if (response.status >= 400 && response.status < 500 && response.status !== 429) {
350
+ resolve();
351
+ } else {
352
+ resolve();
353
+ }
354
+ case 1:
355
+ case "end":
356
+ return _context.stop();
357
+ }
358
+ }, _callee);
359
+ }))();
360
+ },
361
+ onmessage: function onmessage(event) {
362
+ var chunkJson = safeJsonParse(event.data, {});
363
+ if (chunkJson.error) {
364
+ message.warning(chunkJson.error);
365
+ return;
366
+ }
367
+ if (chunkJson.content) {
368
+ // 建议类消息单独处理
369
+ if (chunkJson.content.role === 'followup') {
370
+ processFollowupPart(chunkJson);
371
+ return;
372
+ }
373
+ // eslint-disable-next-line no-restricted-syntax
374
+ var _iterator2 = _createForOfIteratorHelper(combineTextParts(chunkJson.content.parts)),
375
+ _step2;
376
+ try {
377
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
378
+ var part = _step2.value;
379
+ processPart(chunkJson, part);
380
+ }
381
+ } catch (err) {
382
+ _iterator2.e(err);
383
+ } finally {
384
+ _iterator2.f();
385
+ }
386
+ } else if (chunkJson.errorMessage) {
387
+ processErrorMessage(chunkJson);
388
+ } else if (chunkJson.actions) {
389
+ processActionArtifact(chunkJson);
390
+ }
391
+ },
392
+ onclose: function onclose() {
393
+ setLoading(false);
394
+ textMsgRef.current = null;
395
+ resolve();
396
+ },
397
+ onerror: function onerror(error) {
398
+ setLoading(false);
399
+ resolve();
400
+ console.error('EventSource failed:', error);
401
+ throw error;
402
+ }
403
+ });
404
+ });
405
+ }, [type, currentSessionId, processActionArtifact, processErrorMessage, processPart]);
406
+
407
+ // 发送会话
408
+ var startChat = /*#__PURE__*/function () {
409
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(text) {
410
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
411
+ while (1) switch (_context2.prev = _context2.next) {
412
+ case 0:
413
+ if (!loading) {
414
+ _context2.next = 2;
415
+ break;
416
+ }
417
+ return _context2.abrupt("return");
418
+ case 2:
419
+ if (text.trim()) {
420
+ _context2.next = 4;
421
+ break;
422
+ }
423
+ return _context2.abrupt("return");
424
+ case 4:
425
+ // 清空建议问题
426
+ setSuggestedQuestions([]);
427
+ // 发送消息
428
+ setMessages(function (prev) {
429
+ return [].concat(_toConsumableArray(prev), [{
430
+ id: v4(),
431
+ role: 'user',
432
+ text: text
433
+ }]);
434
+ });
435
+ _context2.next = 8;
436
+ return sendMessageRequest({
437
+ stream: true,
438
+ sessionId: currentSessionId,
439
+ content: {
440
+ role: 'user',
441
+ parts: [{
442
+ text: text
443
+ }]
444
+ }
445
+ });
446
+ case 8:
447
+ // 获取聊天记录
448
+ initAppConversations();
449
+ case 9:
450
+ case "end":
451
+ return _context2.stop();
452
+ }
453
+ }, _callee2);
454
+ }));
455
+ return function startChat(_x) {
456
+ return _ref3.apply(this, arguments);
457
+ };
458
+ }();
459
+ // 使用建议问题
460
+ var suggestChat = function suggestChat(text) {
461
+ if (loading) return;
462
+ if (!text.trim()) return;
463
+ setSuggestedQuestions([]);
464
+ startChat(text);
465
+ };
466
+ // 停止会话
467
+ var stopChat = useCallback(function () {
468
+ var _ctrl$current;
469
+ (_ctrl$current = ctrl.current) === null || _ctrl$current === void 0 || _ctrl$current.abort();
470
+ setLoading(false);
471
+ textMsgRef.current = null;
472
+ }, [ctrl]);
473
+
474
+ // 清除会话
475
+ var clearChat = function clearChat() {
476
+ setCurrentSessionId(v4());
477
+ // 重置聊天内容
478
+ setTimeout(function () {
479
+ stopChat();
480
+ setMessages([]);
481
+ });
482
+ };
483
+
484
+ // 格式化会话记录
485
+ var formatMessages = function formatMessages(messages) {
486
+ var isReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
487
+ var mapped = [];
488
+ messages.forEach(function (item) {
489
+ if (!item || !item.content || !Array.isArray(item.content.parts)) return;
490
+ var role = (item.content.role || '').toLowerCase() === 'user' ? 'user' : 'bot';
491
+ var parts = Array.isArray(item.content.parts) ? item.content.parts.filter(function (p) {
492
+ if (!p) return false;
493
+ return Boolean(p.text || p.inlineData || p.functionCall || p.functionResponse || p.fileData || p.executableCode || p.codeExecutionResult || p.errorMessage);
494
+ }) : [];
495
+ if (parts.length === 0) return;
496
+ parts.forEach(function (part) {
497
+ var msg = {
498
+ id: v4(),
499
+ author: item.author,
500
+ invocationId: item.invocationId,
501
+ eventId: item.id,
502
+ timestamp: item.timestamp,
503
+ role: role,
504
+ raw: item
505
+ };
506
+ if (part.inlineData) {
507
+ msg.inlineData = {
508
+ displayName: part.inlineData.displayName,
509
+ data: part.inlineData.data,
510
+ mimeType: part.inlineData.mimeType
511
+ };
512
+ }
513
+ if (part.text) {
514
+ msg.text = part.text;
515
+ if (typeof part.thought !== 'undefined') msg.thought = part.thought;
516
+ }
517
+ if (part.functionCall) msg.functionCall = part.functionCall;
518
+ if (part.functionResponse) msg.functionResponse = part.functionResponse;
519
+ if (part.fileData) {
520
+ msg.inlineData = {
521
+ displayName: part.fileData.displayName || '',
522
+ data: part.fileData.fileUri,
523
+ mimeType: part.fileData.mimeType
524
+ };
525
+ }
526
+ if (part.executableCode) msg.executableCode = part.executableCode;
527
+ if (part.codeExecutionResult) msg.codeExecutionResult = part.codeExecutionResult;
528
+ if (part.errorMessage) msg.text = part.errorMessage;
529
+ mapped.push(msg);
530
+ });
531
+ });
532
+ setMessages(function (prev) {
533
+ return isReplace ? mapped : [].concat(_toConsumableArray(prev), mapped);
534
+ });
535
+ };
536
+
537
+ // 设置当前会话详情
538
+ var setCurrentSessionDetail = /*#__PURE__*/function () {
539
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(sessionId) {
540
+ var _yield$fetchSessionDe, _data, result, _appInfo$onboardingIn, _appInfo$onboardingIn2;
541
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
542
+ while (1) switch (_context3.prev = _context3.next) {
543
+ case 0:
544
+ if (!sessionId) {
545
+ _context3.next = 12;
546
+ break;
547
+ }
548
+ if (!(sessionId === currentSessionId)) {
549
+ _context3.next = 3;
550
+ break;
551
+ }
552
+ return _context3.abrupt("return");
553
+ case 3:
554
+ setCurrentSessionId(sessionId); // 设置当前会话 id;
555
+ _context3.next = 6;
556
+ return fetchSessionDetail({
557
+ url: url,
558
+ appNo: appNo,
559
+ sessionId: sessionId,
560
+ token: token
561
+ });
562
+ case 6:
563
+ _yield$fetchSessionDe = _context3.sent;
564
+ _data = _yield$fetchSessionDe.data;
565
+ result = _yield$fetchSessionDe.result;
566
+ if ((result === null || result === void 0 ? void 0 : result.code) === API_SUCCESS_CODE) {
567
+ // 新接口直接返回按 event/item 结构的数组,传入 formatMessages 处理
568
+ if (Array.isArray(_data) && _data.length > 0) {
569
+ formatMessages(_data, true);
570
+ setPrologue((appInfo === null || appInfo === void 0 || (_appInfo$onboardingIn = appInfo.onboardingInfo) === null || _appInfo$onboardingIn === void 0 ? void 0 : _appInfo$onboardingIn.prologue) || '');
571
+ } else {
572
+ setSuggestedQuestions((appInfo === null || appInfo === void 0 || (_appInfo$onboardingIn2 = appInfo.onboardingInfo) === null || _appInfo$onboardingIn2 === void 0 ? void 0 : _appInfo$onboardingIn2.suggested_questions) || []);
573
+ }
574
+ }
575
+ _context3.next = 13;
576
+ break;
577
+ case 12:
578
+ // 兼容 无 session异常
579
+ setCurrentSessionId(v4());
580
+ case 13:
581
+ case "end":
582
+ return _context3.stop();
583
+ }
584
+ }, _callee3);
585
+ }));
586
+ return function setCurrentSessionDetail(_x2) {
587
+ return _ref4.apply(this, arguments);
588
+ };
589
+ }();
590
+
591
+ // 获取聊天记录
592
+ var initAppConversations = /*#__PURE__*/function () {
593
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
594
+ var fetchDetail,
595
+ _yield$fetchSessionLi,
596
+ _yield$fetchSessionLi2,
597
+ _data2,
598
+ pagination,
599
+ result,
600
+ formatSessions,
601
+ _data2$,
602
+ sessionId,
603
+ _args4 = arguments;
604
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
605
+ while (1) switch (_context4.prev = _context4.next) {
606
+ case 0:
607
+ fetchDetail = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : false;
608
+ _context4.prev = 1;
609
+ setLoading(true);
610
+ _context4.next = 5;
611
+ return fetchSessionList({
612
+ url: url,
613
+ appNo: appNo,
614
+ token: token,
615
+ pageSize: sessionPagination.pageSize
616
+ });
617
+ case 5:
618
+ _yield$fetchSessionLi = _context4.sent;
619
+ _yield$fetchSessionLi2 = _yield$fetchSessionLi.data;
620
+ _data2 = _yield$fetchSessionLi2 === void 0 ? [] : _yield$fetchSessionLi2;
621
+ pagination = _yield$fetchSessionLi.pagination;
622
+ result = _yield$fetchSessionLi.result;
623
+ if ((result === null || result === void 0 ? void 0 : result.code) === API_SUCCESS_CODE) {
624
+ if (_data2.length > 0) {
625
+ formatSessions = _data2.map(function (item) {
626
+ return {
627
+ key: item.sessionId,
628
+ label: item.title || '新对话',
629
+ timestamp: new Date(item.sessionTime).getTime(),
630
+ messages: [],
631
+ meta: _objectSpread({}, item)
632
+ };
633
+ });
634
+ setSessionList(formatSessions);
635
+ // 设置分页信息
636
+ setSessionPagination({
637
+ pageNum: sessionPagination.pageNum,
638
+ pageSize: sessionPagination.pageSize,
639
+ total: (pagination === null || pagination === void 0 ? void 0 : pagination.total) || 0
640
+ });
641
+ _data2$ = _data2 === null || _data2 === void 0 ? void 0 : _data2[0], sessionId = _data2$.sessionId;
642
+ fetchDetail && setCurrentSessionDetail(sessionId);
643
+ } else {
644
+ // 页面报错 初始化
645
+ setSessionList([]);
646
+ setCurrentSessionId(v4());
647
+ setPrologue('');
648
+ setSuggestedQuestions([]);
649
+ }
650
+ // 成功回调
651
+ onSuccess === null || onSuccess === void 0 || onSuccess({
652
+ code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,
653
+ message: '初始化聊天记录成功'
654
+ });
655
+ } else {
656
+ setSessionList([]);
657
+ setCurrentSessionId(v4());
658
+ setPrologue('');
659
+ setSuggestedQuestions([]);
660
+ }
661
+ _context4.next = 15;
662
+ break;
663
+ case 13:
664
+ _context4.prev = 13;
665
+ _context4.t0 = _context4["catch"](1);
666
+ case 15:
667
+ _context4.prev = 15;
668
+ setLoading(false);
669
+ return _context4.finish(15);
670
+ case 18:
671
+ case "end":
672
+ return _context4.stop();
673
+ }
674
+ }, _callee4, null, [[1, 13, 15, 18]]);
675
+ }));
676
+ return function initAppConversations() {
677
+ return _ref5.apply(this, arguments);
678
+ };
679
+ }();
680
+
681
+ // 删除会话
682
+ var deleteSession = /*#__PURE__*/function () {
683
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(sessionId) {
684
+ var _yield$closeSession, result;
685
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
686
+ while (1) switch (_context5.prev = _context5.next) {
687
+ case 0:
688
+ if (sessionId) {
689
+ _context5.next = 2;
690
+ break;
691
+ }
692
+ return _context5.abrupt("return");
693
+ case 2:
694
+ _context5.next = 4;
695
+ return closeSession({
696
+ url: url,
697
+ appNo: appNo,
698
+ sessionId: sessionId,
699
+ token: token
700
+ });
701
+ case 4:
702
+ _yield$closeSession = _context5.sent;
703
+ result = _yield$closeSession.result;
704
+ if ((result === null || result === void 0 ? void 0 : result.code) === API_SUCCESS_CODE) {
705
+ // 删除成功后,重新获取会话列表
706
+ initAppConversations(false);
707
+ // 如果删除的是当前会话,则创建新的会话
708
+ if (sessionId === currentSessionId) {
709
+ clearChat();
710
+ }
711
+ }
712
+ case 7:
713
+ case "end":
714
+ return _context5.stop();
715
+ }
716
+ }, _callee5);
717
+ }));
718
+ return function deleteSession(_x3) {
719
+ return _ref6.apply(this, arguments);
720
+ };
721
+ }();
722
+
723
+ // 更新会话名称
724
+ var updateSession = /*#__PURE__*/function () {
725
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(sessionId, title) {
726
+ var _yield$updateSessionT, result;
727
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
728
+ while (1) switch (_context6.prev = _context6.next) {
729
+ case 0:
730
+ if (!(!sessionId && !title)) {
731
+ _context6.next = 2;
732
+ break;
733
+ }
734
+ return _context6.abrupt("return");
735
+ case 2:
736
+ _context6.next = 4;
737
+ return updateSessionTitle({
738
+ url: url,
739
+ appNo: appNo,
740
+ title: title,
741
+ sessionId: sessionId,
742
+ token: token
743
+ });
744
+ case 4:
745
+ _yield$updateSessionT = _context6.sent;
746
+ result = _yield$updateSessionT.result;
747
+ if ((result === null || result === void 0 ? void 0 : result.code) === API_SUCCESS_CODE) {
748
+ // 编辑成功后,重新获取会话列表
749
+ initAppConversations(false);
750
+ }
751
+ case 7:
752
+ case "end":
753
+ return _context6.stop();
754
+ }
755
+ }, _callee6);
756
+ }));
757
+ return function updateSession(_x4, _x5) {
758
+ return _ref7.apply(this, arguments);
759
+ };
760
+ }();
761
+
762
+ // 初始化应用
763
+ var initConfig = /*#__PURE__*/function () {
764
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
765
+ var _yield$fetchAppConfig, _data3, result;
766
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
767
+ while (1) switch (_context7.prev = _context7.next) {
768
+ case 0:
769
+ _context7.prev = 0;
770
+ setLoading(true);
771
+ _context7.next = 4;
772
+ return fetchAppConfig({
773
+ url: url,
774
+ appNo: appNo
775
+ });
776
+ case 4:
777
+ _yield$fetchAppConfig = _context7.sent;
778
+ _data3 = _yield$fetchAppConfig.data;
779
+ result = _yield$fetchAppConfig.result;
780
+ if (result.code === API_SUCCESS_CODE) {
781
+ setAppInfo(_data3);
782
+ // 成功回调
783
+ onSuccess === null || onSuccess === void 0 || onSuccess({
784
+ code: SuccessCode.APP_CONFIG_INIT_SUCCESS,
785
+ message: '初始化配置成功'
786
+ });
787
+ } else {
788
+ onError === null || onError === void 0 || onError({
789
+ code: result.code || ErrorCode.APP_NOT_FOUND,
790
+ message: result.message || '获取应用配置失败'
791
+ });
792
+ }
793
+ _context7.next = 13;
794
+ break;
795
+ case 10:
796
+ _context7.prev = 10;
797
+ _context7.t0 = _context7["catch"](0);
798
+ onError === null || onError === void 0 || onError({
799
+ code: ErrorCode.API_ERROR,
800
+ message: '获取应用配置失败'
801
+ });
802
+ case 13:
803
+ _context7.prev = 13;
804
+ setLoading(false);
805
+ return _context7.finish(13);
806
+ case 16:
807
+ case "end":
808
+ return _context7.stop();
809
+ }
810
+ }, _callee7, null, [[0, 10, 13, 16]]);
811
+ }));
812
+ return function initConfig() {
813
+ return _ref8.apply(this, arguments);
814
+ };
815
+ }();
816
+
817
+ // 初始化—获取配置
818
+ useEffect(function () {
819
+ if (url && appNo) {
820
+ initConfig();
821
+ }
822
+ // eslint-disable-next-line react-hooks/exhaustive-deps
823
+ }, [url, appNo]);
824
+
825
+ // 初始化-聊天记录
826
+ useEffect(function () {
827
+ if (appInfo) {
828
+ initAppConversations(true);
829
+ }
830
+ }, [appInfo]);
831
+ return {
832
+ appInfo: appInfo,
833
+ startChat: startChat,
834
+ stopChat: stopChat,
835
+ clearChat: clearChat,
836
+ suggestChat: suggestChat,
837
+ currentSessionId: currentSessionId,
838
+ sessionList: sessionList,
839
+ prologue: prologue,
840
+ suggestions: suggestedQuestions,
841
+ loading: loading,
842
+ messages: mergedMessages,
843
+ insertSuggestedQuestions: insertSuggestedQuestions,
844
+ insertPrologue: insertPrologue,
845
+ deleteSession: deleteSession,
846
+ updateSession: updateSession,
847
+ setSuggestedQuestions: setSuggestedQuestions,
848
+ setCurrentSessionDetail: setCurrentSessionDetail,
849
+ setMessages: setMessages,
850
+ storeEvents: storeEvents,
851
+ storeMessage: storeMessage
852
+ };
853
+ }
854
+ export default useADKChat;
855
+ //# sourceMappingURL=useADKChat.js.map