@gientech/modual 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +118 -0
  2. package/{dist/assets/GientechStreamReader-DUCq-O5X.js → assets/GientechStreamReader-Dx72IaEx.js} +1 -1
  3. package/{dist/assets/index-QI9biQrR.js → assets/index-BbNz3Zrz.js} +1 -1
  4. package/{dist/assets/index-KCfkkJKb.js → assets/index-D4pXe94o.js} +117 -117
  5. package/assets/style.css +1 -0
  6. package/assets/style4.css +1 -0
  7. package/chat.js +844 -0
  8. package/{dist/databaseId.js → databaseId.js} +1 -1
  9. package/{dist/index.js → index.js} +1 -1
  10. package/package.json +41 -103
  11. package/{dist/streamFilesReader.js → streamFilesReader.js} +1 -1
  12. package/.editorconfig +0 -38
  13. package/.prettierignore +0 -16
  14. package/.prettierrc +0 -17
  15. package/USAGE.md +0 -247
  16. package/bash.exe.stackdump +0 -40
  17. package/components.json +0 -21
  18. package/dist/README.md +0 -643
  19. package/dist/assets/style.css +0 -1
  20. package/dist/assets/style4.css +0 -1
  21. package/dist/chat.js +0 -824
  22. package/dist/package.json +0 -68
  23. package/doc_assets/2.png +0 -0
  24. package/doc_assets/demo.md +0 -27
  25. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +0 -2
  26. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +0 -23699
  27. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +0 -1
  28. package/doc_assets/demos/dist-app/index.html +0 -14
  29. package/doc_assets/demos/dist-app/vite.svg +0 -1
  30. package/doc_assets/images/1.png +0 -0
  31. package/doc_assets/images/3.png +0 -0
  32. package/doc_assets/images/component-screenshot.png +0 -1
  33. package/doc_assets/install.md +0 -5
  34. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +0 -504
  35. package/eslint.config.js +0 -92
  36. package/index.html +0 -13
  37. package/package.json.demo-backup +0 -109
  38. package/postcss.config.cjs +0 -19
  39. package/public/icons/answerAwartar.png +0 -0
  40. package/public/icons/docx-file.png +0 -0
  41. package/public/icons/folder.png +0 -0
  42. package/public/icons/html.png +0 -0
  43. package/public/icons/image.png +0 -0
  44. package/public/icons/jpg-file.png +0 -0
  45. package/public/icons/json.png +0 -0
  46. package/public/icons/md.png +0 -0
  47. package/public/icons/pdf.png +0 -0
  48. package/public/icons/pptx.png +0 -0
  49. package/public/icons/questionAwartar.png +0 -0
  50. package/public/icons/sheets.png +0 -0
  51. package/public/icons/txt.png +0 -0
  52. package/public/icons/xlsx.png +0 -0
  53. package/public/vite.svg +0 -1
  54. package/public/worker/pdf.worker.min.js +0 -22
  55. package/scripts/README.md +0 -133
  56. package/scripts/build-demo.js +0 -88
  57. package/scripts/decrypt-api-key.js +0 -95
  58. package/scripts/demo-selector.js +0 -216
  59. package/scripts/dev-demo.js +0 -76
  60. package/scripts/preview-demo.js +0 -130
  61. package/scripts/run-demo.bat +0 -34
  62. package/src/assets/img/close.png +0 -0
  63. package/src/assets/img/database.png +0 -0
  64. package/src/assets/img/downArrow.png +0 -0
  65. package/src/assets/img/downLoad.png +0 -0
  66. package/src/assets/img/excel.png +0 -0
  67. package/src/assets/img/graphIcon.png +0 -0
  68. package/src/assets/img/img.png +0 -0
  69. package/src/assets/img/pdf.png +0 -0
  70. package/src/assets/img/ppt.png +0 -0
  71. package/src/assets/img/singleQa.png +0 -0
  72. package/src/assets/img/txt.png +0 -0
  73. package/src/assets/img/webSearch.png +0 -0
  74. package/src/assets/img/word.png +0 -0
  75. package/src/assets/login/homeBg.png +0 -0
  76. package/src/assets/login/left.jpg +0 -0
  77. package/src/assets/login/logoImg.png +0 -0
  78. package/src/examples/ConversationAssistantPage/index.tsx +0 -41
  79. package/src/examples/Demo/index.tsx +0 -12
  80. package/src/examples/LoginPage/index.tsx +0 -18
  81. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  82. package/src/examples/chat/index.tsx +0 -154
  83. package/src/examples/chat/logo03.png +0 -0
  84. package/src/examples/gientechStreamFilesReader/index.tsx +0 -951
  85. package/src/examples/headlessChat/index.tsx +0 -234
  86. package/src/examples/ragDatabaseDataPage/index.tsx +0 -40
  87. package/src/examples/ragDatabaseIdPage/index.tsx +0 -47
  88. package/src/examples/ragDatabasePage/index.tsx +0 -36
  89. package/src/examples/ragModelManagePage/index.tsx +0 -38
  90. package/src/examples/ragSearchPage/index.tsx +0 -0
  91. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -32
  92. package/src/examples/streamFiles/index.tsx +0 -417
  93. package/src/lib_enter.ts +0 -43
  94. package/src/main.tsx +0 -5
  95. package/src/main.tsx.backup +0 -5
  96. package/src/modules/CHAT_UNIFICATION_PLAN.md +0 -324
  97. package/src/modules/assistantConfig/assets/databse.svg +0 -6
  98. package/src/modules/assistantConfig/assets/empty.png +0 -0
  99. package/src/modules/assistantConfig/assets/graph.svg +0 -4
  100. package/src/modules/assistantConfig/assets/knowledge.svg +0 -4
  101. package/src/modules/assistantConfig/assets/sensitive.svg +0 -5
  102. package/src/modules/assistantConfig/components/Database.tsx +0 -171
  103. package/src/modules/assistantConfig/components/Graph.tsx +0 -177
  104. package/src/modules/assistantConfig/components/Knowledge.tsx +0 -276
  105. package/src/modules/assistantConfig/components/NotFoundContent.tsx +0 -21
  106. package/src/modules/assistantConfig/components/Paragraph.tsx +0 -51
  107. package/src/modules/assistantConfig/components/ParamsItem.tsx +0 -39
  108. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +0 -133
  109. package/src/modules/assistantConfig/components/SearchableSelector.tsx +0 -500
  110. package/src/modules/assistantConfig/components/Sensitive.tsx +0 -221
  111. package/src/modules/assistantConfig/components/SliderInput.tsx +0 -65
  112. package/src/modules/assistantConfig/constants.tsx +0 -75
  113. package/src/modules/assistantConfig/index.tsx +0 -710
  114. package/src/modules/assistantConfig/server.ts +0 -262
  115. package/src/modules/chat/Conversations/Item.tsx +0 -167
  116. package/src/modules/chat/Conversations/List.tsx +0 -210
  117. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  118. package/src/modules/chat/Conversations/index.tsx +0 -252
  119. package/src/modules/chat/ReferenceBar.tsx +0 -622
  120. package/src/modules/chat/constants.tsx +0 -52
  121. package/src/modules/chat/data.txt +0 -82
  122. package/src/modules/chat/index.tsx +0 -2054
  123. package/src/modules/chat/referenceCom/DeleteModal.tsx +0 -75
  124. package/src/modules/chat/referenceCom/DrawerContent.tsx +0 -136
  125. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +0 -102
  126. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +0 -86
  127. package/src/modules/chat/referenceCom/DrawerPreview.tsx +0 -73
  128. package/src/modules/chat/referenceCom/DrawerTitle.tsx +0 -26
  129. package/src/modules/chat/referenceCom/RenameModal.tsx +0 -86
  130. package/src/modules/chat/referenceCom/TagCom.tsx +0 -30
  131. package/src/modules/chat/style.less +0 -3
  132. package/src/modules/chat/types.ts +0 -17
  133. package/src/modules/chat/utils/index.ts +0 -348
  134. package/src/modules/database/CreateModal.tsx +0 -403
  135. package/src/modules/database/assets/Doris.png +0 -0
  136. package/src/modules/database/assets/PostgreSQL.png +0 -0
  137. package/src/modules/database/assets/SQLServer.png +0 -0
  138. package/src/modules/database/assets/database.svg +0 -11
  139. package/src/modules/database/assets/database_add.svg +0 -53
  140. package/src/modules/database/assets/database_connect.svg +0 -66
  141. package/src/modules/database/assets/database_upload.svg +0 -29
  142. package/src/modules/database/assets/empty.png +0 -0
  143. package/src/modules/database/assets/mysql.svg +0 -14
  144. package/src/modules/database/index.tsx +0 -477
  145. package/src/modules/database/server.ts +0 -196
  146. package/src/modules/databaseId/CustomCom.tsx +0 -156
  147. package/src/modules/databaseId/EditConfig.tsx +0 -280
  148. package/src/modules/databaseId/UploadDrawer.tsx +0 -535
  149. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  150. package/src/modules/databaseId/assets/empty.png +0 -0
  151. package/src/modules/databaseId/assets/template.svg +0 -6
  152. package/src/modules/databaseId/assets/upload.svg +0 -9
  153. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  154. package/src/modules/databaseId/index.tsx +0 -769
  155. package/src/modules/databaseId/server.ts +0 -286
  156. package/src/modules/databaseId/style.css +0 -5
  157. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -124
  158. package/src/modules/databaseTable/index.tsx +0 -359
  159. package/src/modules/databaseTable/server.ts +0 -180
  160. package/src/modules/headlessChat/ReferenceBar.tsx +0 -783
  161. package/src/modules/headlessChat/constants.tsx +0 -54
  162. package/src/modules/headlessChat/index.tsx +0 -1706
  163. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +0 -75
  164. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +0 -136
  165. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +0 -102
  166. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +0 -86
  167. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +0 -73
  168. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +0 -26
  169. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +0 -86
  170. package/src/modules/headlessChat/referenceCom/TagCom.tsx +0 -30
  171. package/src/modules/headlessChat/style.less +0 -3
  172. package/src/modules/headlessChat/types.ts +0 -23
  173. package/src/modules/headlessChat/utils/index.ts +0 -348
  174. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -102
  175. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -180
  176. package/src/modules/login/components/Login/index.tsx +0 -100
  177. package/src/modules/login/index.tsx +0 -106
  178. package/src/modules/login/style.css +0 -3
  179. package/src/modules/login/useServices.ts +0 -53
  180. package/src/modules/login/utils.ts +0 -42
  181. package/src/modules/modelManage/ConfigDrawer.tsx +0 -249
  182. package/src/modules/modelManage/ReplaceModal.tsx +0 -124
  183. package/src/modules/modelManage/assets/empty.png +0 -0
  184. package/src/modules/modelManage/const.ts +0 -51
  185. package/src/modules/modelManage/index.tsx +0 -606
  186. package/src/modules/modelManage/server.ts +0 -223
  187. package/src/modules/nodegraph/index.tsx +0 -1
  188. package/src/modules/search/assets/Icon-history.svg +0 -8
  189. package/src/modules/search/assets/answerAwartar.png +0 -0
  190. package/src/modules/search/assets/doc.png +0 -0
  191. package/src/modules/search/assets/genera.gif +0 -0
  192. package/src/modules/search/assets/icon-robot.svg +0 -9
  193. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  194. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  195. package/src/modules/search/assets/icon-title.svg +0 -9
  196. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  197. package/src/modules/search/assets/iconAi.svg +0 -9
  198. package/src/modules/search/assets/pdf.png +0 -0
  199. package/src/modules/search/assets/ppt.png +0 -0
  200. package/src/modules/search/assets/search.svg +0 -3
  201. package/src/modules/search/assets/selected.svg +0 -4
  202. package/src/modules/search/assets/txt.png +0 -0
  203. package/src/modules/search/assets/xls.png +0 -0
  204. package/src/modules/search/components/AssisSelect.tsx +0 -137
  205. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  206. package/src/modules/search/components/Editor/aichat.css +0 -1
  207. package/src/modules/search/components/Editor/constant.ts +0 -13
  208. package/src/modules/search/components/Editor/index.tsx +0 -113
  209. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  210. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  211. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  212. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  213. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  214. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  215. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  216. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  217. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  218. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  219. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  220. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  221. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  222. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  223. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  224. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  225. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  226. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  227. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  228. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  229. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  230. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  231. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  232. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  233. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  234. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  235. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  236. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  237. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  238. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  239. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  240. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  241. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  242. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  243. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  244. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  245. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  246. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  247. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  248. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  249. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  250. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  251. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  252. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  253. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  254. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  255. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  256. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  257. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  258. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  259. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  260. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  261. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  262. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  263. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  264. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  265. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  266. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  267. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  268. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  269. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  270. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  271. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  272. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  273. package/src/modules/search/components/Editor/ui/style.less +0 -12
  274. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  275. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  276. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  277. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  278. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  279. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  280. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  281. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  282. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  283. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  284. package/src/modules/search/components/FileList.tsx +0 -287
  285. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  286. package/src/modules/search/components/ResultContent.tsx +0 -232
  287. package/src/modules/search/components/SearchInput.tsx +0 -232
  288. package/src/modules/search/components/SearchLanding.tsx +0 -74
  289. package/src/modules/search/components/SearchView.tsx +0 -563
  290. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  291. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  292. package/src/modules/search/index.tsx +0 -10
  293. package/src/modules/search/reademe.md +0 -1
  294. package/src/modules/search/servers/apis.tsx +0 -19
  295. package/src/modules/search/servers/index.ts +0 -184
  296. package/src/modules/search/style.less +0 -503
  297. package/src/modules/search/type.ts +0 -22
  298. package/src/modules/search/utils.ts +0 -34
  299. package/src/modules/sensitive/index.tsx +0 -313
  300. package/src/modules/sensitive/server.ts +0 -122
  301. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1625
  302. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  303. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  304. package/src/modules/streamFilesReader/index.tsx +0 -3
  305. package/src/style.css +0 -6
  306. package/src/type.d.ts +0 -0
  307. package/src/utils/commonFn.tsx +0 -111
  308. package/src/utils/decryptApiKey.ts +0 -40
  309. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  310. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  311. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  312. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  313. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  314. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -319
  315. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  316. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -400
  317. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  318. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -581
  319. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -359
  320. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  321. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  322. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  323. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  324. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  325. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  326. package/src/utils/gientechCommon/components/style.less +0 -11
  327. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  328. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  329. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  330. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -417
  331. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +0 -204
  332. package/src/utils/gientechCommon/hooks/useFileManager.ts +0 -193
  333. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  334. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  335. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  336. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  337. package/src/utils/gientechCommon/utils/fileUtils.ts +0 -86
  338. package/src/utils/gientechCommon/utils/request.ts +0 -37
  339. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  340. package/src/utils/index.tsx +0 -142
  341. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  342. package/src/utils/testconfigs/index.ts +0 -59
  343. package/src/vite-env.d.ts +0 -42
  344. package/stats.html +0 -4949
  345. package/tailwind.config.js +0 -170
  346. package/tsconfig.app.json +0 -30
  347. package/tsconfig.app.tsbuildinfo +0 -11
  348. package/tsconfig.json +0 -13
  349. package/tsconfig.node.json +0 -22
  350. package/tsconfig.node.tsbuildinfo +0 -1
  351. package/vite.config.app.ts +0 -93
  352. package/vite.config.ts +0 -232
  353. package/workflows/release.yml +0 -60
  354. package//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -359
  355. /package/{dist/assets → assets}/Doris.png +0 -0
  356. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  357. /package/{dist/assets → assets}/SQLServer.png +0 -0
  358. /package/{dist/assets → assets}/database.svg +0 -0
  359. /package/{dist/assets → assets}/database_add.svg +0 -0
  360. /package/{dist/assets → assets}/database_connect.svg +0 -0
  361. /package/{dist/assets → assets}/database_upload.svg +0 -0
  362. /package/{dist/assets → assets}/databse.svg +0 -0
  363. /package/{dist/assets → assets}/defaultWeLogo.svg +0 -0
  364. /package/{dist/assets → assets}/empty.png +0 -0
  365. /package/{dist/assets → assets}/graph.svg +0 -0
  366. /package/{dist/assets → assets}/homeBg.png +0 -0
  367. /package/{dist/assets → assets}/index-B2yNvzjy.js +0 -0
  368. /package/{dist/assets → assets}/index-BKe5FgcC.js +0 -0
  369. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  370. /package/{dist/assets → assets}/index-D72cKELw.js +0 -0
  371. /package/{dist/assets → assets}/index-DdVFXD_y.js +0 -0
  372. /package/{dist/assets → assets}/index-DrkSoKz6.js +0 -0
  373. /package/{dist/assets → assets}/index-ZopkeZtI.js +0 -0
  374. /package/{dist/assets → assets}/index-g-SUxfJH.js +0 -0
  375. /package/{dist/assets → assets}/index-j0kQJd0a.js +0 -0
  376. /package/{dist/assets → assets}/knowledge.svg +0 -0
  377. /package/{dist/assets → assets}/left.jpg +0 -0
  378. /package/{dist/assets → assets}/logoImg.png +0 -0
  379. /package/{dist/assets → assets}/mysql.svg +0 -0
  380. /package/{dist/assets → assets}/plus-V9zUoSq6.js +0 -0
  381. /package/{dist/assets → assets}/sensitive.svg +0 -0
  382. /package/{dist/assets → assets}/style-CGmZ5osp.js +0 -0
  383. /package/{dist/assets → assets}/style2.css +0 -0
  384. /package/{dist/assets → assets}/style3.css +0 -0
  385. /package/{dist/assets → assets}/worker-BbpylX7l.js +0 -0
  386. /package/{dist/assets → assets}/x-CnaaLGJF.js +0 -0
  387. /package/{dist/assistantConfig.d.ts → assistantConfig.d.ts} +0 -0
  388. /package/{dist/assistantConfig.js → assistantConfig.js} +0 -0
  389. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  390. /package/{dist/database.d.ts → database.d.ts} +0 -0
  391. /package/{dist/database.js → database.js} +0 -0
  392. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  393. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  394. /package/{dist/databaseTable.js → databaseTable.js} +0 -0
  395. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  396. /package/{dist/icons → icons}/docx-file.png +0 -0
  397. /package/{dist/icons → icons}/folder.png +0 -0
  398. /package/{dist/icons → icons}/html.png +0 -0
  399. /package/{dist/icons → icons}/image.png +0 -0
  400. /package/{dist/icons → icons}/jpg-file.png +0 -0
  401. /package/{dist/icons → icons}/json.png +0 -0
  402. /package/{dist/icons → icons}/md.png +0 -0
  403. /package/{dist/icons → icons}/pdf.png +0 -0
  404. /package/{dist/icons → icons}/pptx.png +0 -0
  405. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  406. /package/{dist/icons → icons}/sheets.png +0 -0
  407. /package/{dist/icons → icons}/txt.png +0 -0
  408. /package/{dist/icons → icons}/xlsx.png +0 -0
  409. /package/{dist/index.d.ts → index.d.ts} +0 -0
  410. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  411. /package/{dist/modelManage.js → modelManage.js} +0 -0
  412. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  413. /package/{dist/sensitive.js → sensitive.js} +0 -0
  414. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  415. /package/{dist/vite.svg → vite.svg} +0 -0
  416. /package/{dist/worker → worker}/pdf.worker.min.js +0 -0
@@ -1,86 +0,0 @@
1
- import { BorderBottomOutlined } from "@ant-design/icons";
2
- import { Button, ConfigProvider, Form, Input, Modal } from "antd";
3
- import { useForm } from "antd/es/form/Form";
4
- import { useEffect } from "react";
5
-
6
- export const RenameModal = ({
7
- isModalOpen,
8
- handleOk,
9
- handleCancel,
10
- data
11
- }: any) => {
12
- const modalStyles = {
13
- header: {
14
- height: "60px",
15
- borderBottom: "1px solid #F0F0F0",
16
- display: "flex",
17
- paddingLeft: "24px",
18
- alignItems: "center",
19
- marginBottom: "16px"
20
- },
21
- title: { fontSize: "16px" },
22
- body: { padding: "0 24px" },
23
- mask: {},
24
- footer: { marginTop: "0px", padding: "0 24px 16px 24px" },
25
- content: { padding: 0 }
26
- };
27
- const [rename_form] = useForm();
28
- useEffect(() => {
29
- if (!isModalOpen) {
30
- rename_form.resetFields();
31
- return;
32
- }
33
- rename_form.setFieldValue("new_name", data?.label);
34
- }, [data, isModalOpen]);
35
- return (
36
- <ConfigProvider
37
- modal={{
38
- styles: modalStyles
39
- }}
40
- >
41
- <Modal
42
- title={<div className="text-[16px]">编辑会话名称</div>}
43
- closeIcon={null}
44
- open={isModalOpen}
45
- width={520}
46
- centered
47
- className="[&:[.ant-modal-content]]:bg-red"
48
- footer={
49
- <div className="mt-[16px] flex justify-end">
50
- <Button
51
- children="取消"
52
- onClick={handleCancel}
53
- className="mr-[8px]"
54
- />
55
- <Button
56
- children="确认"
57
- onClick={async () => {
58
- try {
59
- const data = await rename_form.validateFields();
60
- handleOk("ok_rename", data);
61
- } catch (e) {
62
- console.log(e);
63
- return;
64
- }
65
- }}
66
- type="primary"
67
- className="border-none"
68
- />
69
- </div>
70
- }
71
- >
72
- <Form form={rename_form}>
73
- <Form.Item
74
- name="new_name"
75
- rules={[
76
- { required: true, message: "请输入" },
77
- { max: 100, message: "最大字数限制100" }
78
- ]}
79
- >
80
- <Input />
81
- </Form.Item>
82
- </Form>
83
- </Modal>
84
- </ConfigProvider>
85
- );
86
- };
@@ -1,11 +0,0 @@
1
- .selfTree {
2
- .ant-tree .ant-tree-treenode {
3
- padding: 4px 0 4px 0;
4
- }
5
- .ant-tree-switcher {
6
- display: none;
7
- }
8
- .ant-tree-indent {
9
- display: none;
10
- }
11
- }
@@ -1,2 +0,0 @@
1
- export const maxPollCount = 1000;
2
- export const maxPollInterval = 3000;
File without changes
@@ -1,142 +0,0 @@
1
- // 主题类型定义
2
- export type SizeType = 'sm' | 'md' | 'lg'
3
- export type FontWeightType = 'normal' | 'bold' |'thin'
4
- export type FontFamilyType = 'default' | 'serif' | 'mono'
5
-
6
- export interface AiChatStyles {
7
- theme?: AppTheme
8
- mode?: 'light' | 'dark'
9
- [key: string]: any
10
- }
11
-
12
- export interface ThemeColors {
13
- primary: string
14
- secondary: string
15
- success: string
16
- warning: string
17
- error: string
18
- info: string
19
- background: string
20
- text: string
21
- border: string
22
- disabled: string
23
- disabledBackground: string
24
- disabledText: string
25
- shadow: string
26
- appBackground: string
27
- }
28
-
29
- export interface ThemeOthers {
30
-
31
- }
32
-
33
- export interface ThemeSpace {
34
- sidebar: string
35
- size: string
36
- radius: string
37
- padding: string
38
- margin: string
39
- shadow: string
40
- lineHeight: string
41
- }
42
-
43
- export interface ThemeIcons {
44
- aiAvatar: string
45
- userAvatar: string
46
- pdf: string
47
- word: string
48
- image: string
49
- video: string
50
- audio: string
51
- excel: string
52
- ppt: string
53
- }
54
-
55
- export interface AppTheme {
56
- colors: ThemeColors
57
-
58
- space: ThemeSpace
59
- icons: ThemeIcons
60
- others: ThemeOthers
61
- }
62
-
63
- // 默认主题实现
64
- export const defaultTheme: AppTheme = {
65
- colors: {
66
- primary: '#007bff',
67
- secondary: '#6c757d',
68
- success: '#008000',
69
- warning: '#FFA500',
70
- error: '#FF0000',
71
- info: '#0000FF',
72
- background: '#f8f9fa',
73
- text: '#343a40',
74
- border: '#dee2e6',
75
- disabled: '#808080',
76
- disabledBackground: '#F5F5F5',
77
- disabledText: '#808080',
78
- shadow: '#000000',
79
- appBackground: '#fff',
80
- },
81
- space: {
82
- sidebar: 'md',
83
- size: 'md',
84
- radius: 'md',
85
- padding: 'md',
86
- margin: 'md',
87
- shadow: 'md',
88
- lineHeight: 'md',
89
- },
90
- icons: {
91
- aiAvatar: 'http://10.15.12.13:9000/dev-rag-data/header_pic/JIABINBIN00/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20231212161213.jpg',
92
- userAvatar: 'http://10.15.12.13:9005/assets/nav-logo-BKaOCDqi.png',
93
- pdf: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/pdf-icon.png',
94
- word: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/word-icon.png',
95
- image: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/image-icon.png',
96
- video: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/video-icon.png',
97
- audio: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/audio-icon.png',
98
- excel: 'https://ai-chat-1326151111.cos.c zap-shanghai.myqcloud.com/excel-icon.png',
99
- ppt: 'https://ai-chat-1326151111.cos.ap-shanghai.myqcloud.com/ppt-icon.png',
100
- },
101
- others: {
102
- baseFontWeight: 'normal',
103
- },
104
- }
105
-
106
- // SizeType 映射表
107
- export const sidebarMap = {
108
- sm: '240px',
109
- md: '260px',
110
- lg: '280px',
111
- };
112
- export const sizeMap = {
113
- sm: '12px',
114
- md: '16px',
115
- lg: '20px',
116
- };
117
- export const radiusMap = {
118
- sm: '2px',
119
- md: '4px',
120
- lg: '8px',
121
- };
122
- export const paddingMap = {
123
- sm: '4px',
124
- md: '8px',
125
- lg: '16px',
126
- };
127
- export const marginMap = {
128
- sm: '4px',
129
- md: '8px',
130
- lg: '16px',
131
- };
132
- export const shadowMap = {
133
- sm: '0 1px 2px #eee',
134
- md: '0 2px 8px #ddd',
135
- lg: '0 4px 16px #ccc',
136
- };
137
- export const lineHeightMap = {
138
- sm: '1.2',
139
- md: '1.5',
140
- lg: '2',
141
- };
142
-
@@ -1,417 +0,0 @@
1
- import { EventSourceMessage, fetchEventSource } from '@microsoft/fetch-event-source';
2
-
3
- import { uid } from 'uid';
4
- import { AppStatusManager } from '@mxmweb/aichat';
5
-
6
- interface Api_Chat {
7
- sessionId: string;
8
- queryId: string;
9
- name: string;
10
- lastDate: string | number;
11
- type: string;
12
- content: string;
13
- configId: string;
14
- audioUrl: string;
15
- fileUids: any[];
16
- signal?: AbortSignal;
17
- sysType?: 'KNO_INDEX' | 'INT_SESSION' | 'TEMPORARY';
18
- }
19
-
20
- export enum StatusType {
21
- Pending = 0,
22
- Process,
23
- Done,
24
- Error,
25
- }
26
-
27
- class FatalError extends Error {}
28
-
29
- let currentStreamController: AbortController | null = null;
30
- // 记录当前流式请求的 sessionId,用于在切换会话时判断是否需要取消请求
31
- let currentStreamSessionId: string | null = null;
32
-
33
- const AichatUseController = ({
34
- baseUrl,
35
- token,
36
- CSRFToken,
37
- setChatData,
38
- activeSessionId,
39
- setAppStatus,
40
- setConversationList,
41
- }: {
42
- baseUrl: string;
43
- token: string;
44
- CSRFToken?: string;
45
- setChatData: (arg: any[] | ((prev: any[]) => any[])) => void;
46
- activeSessionId: string | undefined;
47
- setAppStatus: React.Dispatch<React.SetStateAction<AppStatusManager>>;
48
- setConversationList: React.Dispatch<React.SetStateAction<any[]>>;
49
- }) => {
50
- // 判断 graphReference 是否有有效值
51
- const isValidGraphReference = (ref: any): boolean => {
52
- if (!ref) return false;
53
- if (typeof ref === 'string') {
54
- const trimmed = ref.trim();
55
- return trimmed !== '' && trimmed !== '[]' && trimmed !== 'null';
56
- }
57
- return true;
58
- };
59
-
60
- const reset_chat = ({
61
- content,
62
- status,
63
- respTime,
64
- filePaths,
65
- reference,
66
- webReference,
67
- graphReference,
68
- databaseReference,
69
- llmType,
70
- resultType,
71
- queryId,
72
- tokens,
73
- }: {
74
- content: string;
75
- status: StatusType;
76
- respTime: number;
77
- filePaths: any[];
78
- reference: string;
79
- webReference: string;
80
- graphReference?: string;
81
- databaseReference?: any;
82
- llmType: number;
83
- resultType: number;
84
- queryId?: string;
85
- tokens: number;
86
- [key: string]: any;
87
- }) => {
88
- setChatData((chatList: any) => {
89
- if (!chatList[0]) return chatList;
90
- const current = chatList[0];
91
- const messages = current.messages || [];
92
- const lastIndex = messages.length - 1;
93
- if (lastIndex < 0) return chatList;
94
- const lastMessage = messages[lastIndex];
95
- if (lastMessage.istype !== 'ai') return chatList;
96
-
97
- // 更新上一条 user 的 filePaths(不可变)
98
- let newMessages = messages.slice();
99
- if (filePaths?.length) {
100
- const lastSecondIndex = messages.length - 2;
101
- if (lastSecondIndex >= 0 && messages[lastSecondIndex]?.istype === 'user') {
102
- const lastSecond = { ...messages[lastSecondIndex], filePaths };
103
- newMessages[lastSecondIndex] = lastSecond;
104
- }
105
- }
106
-
107
- // 只有当 graphReference 有有效值时才更新,否则保留之前的值
108
- // 如果传入的 graphReference 是 undefined,说明本次没有更新,保留之前的值
109
- // 如果传入的 graphReference 是 null 或无效值,也保留之前的值
110
- const finalGraphReference = graphReference !== undefined
111
- ? (isValidGraphReference(graphReference) ? graphReference : lastMessage.graphReference)
112
- : lastMessage.graphReference;
113
- // 调试:检查 reset_chat 中的 graphReference 处理
114
- if (status === StatusType.Done && graphReference !== undefined) {
115
- console.log('[AichatUseController] reset_chat status=2 时的 graphReference:', {
116
- graphReference,
117
- isValid: isValidGraphReference(graphReference),
118
- lastMessageGraphReference: lastMessage.graphReference,
119
- finalGraphReference,
120
- });
121
- }
122
-
123
- const updatedLast = {
124
- ...lastMessage,
125
- content: (lastMessage.content || '') + content,
126
- status,
127
- respTime,
128
- filePaths,
129
- reference,
130
- webReference,
131
- graphReference: finalGraphReference,
132
- // 流式阶段若后端带来了 databaseReference,写入当前 AI 消息
133
- databaseReference: databaseReference ?? lastMessage.databaseReference,
134
- resultType,
135
- llmType,
136
- tokens,
137
- queryId: queryId || lastMessage.queryId || uid(32),
138
- } as any;
139
- updatedLast.clientSideId = updatedLast.clientSideId || updatedLast.queryId + '-ai';
140
- newMessages[lastIndex] = updatedLast;
141
-
142
- const newChat0 = { ...current, isNew: false, messages: newMessages };
143
- return [newChat0, ...chatList.slice(1)];
144
- });
145
- };
146
-
147
- const onErrorCallback = (err: any) => {
148
- if (err instanceof FatalError) {
149
- setAppStatus((pre:any) => ({ ...pre, display: 'error', sender: 'ready' }));
150
- if (currentStreamController) {
151
- currentStreamController.abort();
152
- currentStreamController = null;
153
- }
154
- currentStreamSessionId = null;
155
- throw err;
156
- }
157
- // 其他错误可选处理
158
- };
159
-
160
- const api_startChat_re = (data: Api_Chat, onSuccess?: (gmtModified: number) => void) => {
161
- if (currentStreamController) {
162
- currentStreamController.abort();
163
- }
164
- currentStreamController = new AbortController();
165
- // 记录当前流式请求的 sessionId
166
- currentStreamSessionId = data.sessionId;
167
- const eventSourceUrl = `${baseUrl}/qa/ai/question_re`;
168
- console.log('data', data);
169
- const params = { ...data };
170
- fetchEventSource(eventSourceUrl, {
171
- method: 'post',
172
- signal: currentStreamController.signal,
173
- headers: {
174
- 'Content-Type': 'application/json',
175
- Accept: 'text/event-stream',
176
- Authorization: token || '',
177
- 'X-CSRF-TOKEN-IN': CSRFToken || '',
178
- },
179
- openWhenHidden: true,
180
- body: JSON.stringify(params),
181
- onopen: async response => {
182
- if (response.status === 500) {
183
- throw new FatalError('Internal Server Error');
184
- }
185
- if (!response.ok) {
186
- throw new FatalError(`HTTP error: ${response.status}`);
187
- }
188
- // 其他状态可根据需要处理
189
- },
190
- onmessage: event => {
191
- const curData = JSON.parse(event.data);
192
- // 检查当前请求的 sessionId 是否仍然匹配,如果不匹配则忽略所有后续数据
193
- if (currentStreamSessionId !== curData.sessionId) {
194
- console.log('[AichatUseController] 流式请求的 sessionId 已不匹配,忽略数据', {
195
- currentStreamSessionId,
196
- receivedSessionId: curData.sessionId,
197
- activeSessionId,
198
- });
199
- return;
200
- }
201
- if (activeSessionId !== curData.sessionId) return;
202
- const {
203
- reply,
204
- resultType,
205
- respTime,
206
- reference,
207
- webReference,
208
- graphReference,
209
- filePaths,
210
- status,
211
- docs,
212
- llmType,
213
- databaseReference,
214
- } = curData;
215
- const _filePaths = filePaths ? JSON.parse(filePaths) : [];
216
- // === 新增:流式错误兜底 ===
217
- if (
218
- status === StatusType.Done &&
219
- reply &&
220
- reply.content &&
221
- (reply.content.includes('模型暂无法返回') ||
222
- reply.content.includes('失败') ||
223
- reply.content.includes('错误') ||
224
- reply.content.includes('请稍后再试'))
225
- ) {
226
- setAppStatus((pre:any) => ({ ...pre, display: 'ready', sender: 'ready' }));
227
- }
228
- // 处理 graphReference:只有当有有效值时才传递,否则传递 undefined 让 reset_chat 保留之前的值
229
- const finalGraphReference = isValidGraphReference(graphReference) ? graphReference : undefined;
230
- // 调试:检查最后一条消息的 graphReference
231
- if (status === StatusType.Done) {
232
- console.log('[AichatUseController] status=2 时的 graphReference:', {
233
- graphReference,
234
- type: typeof graphReference,
235
- isValid: isValidGraphReference(graphReference),
236
- finalGraphReference,
237
- });
238
- }
239
-
240
- if (status === StatusType.Done) {
241
- reset_chat({
242
- content: reply.content || '',
243
- status: StatusType.Done, // 流式完成时,消息状态应该是 Done
244
- respTime: respTime,
245
- filePaths: _filePaths,
246
- reference: reference || docs || '',
247
- webReference: webReference || '',
248
- graphReference: finalGraphReference,
249
- databaseReference,
250
- llmType,
251
- resultType,
252
- queryId: curData.queryId,
253
- tokens: curData.tokens,
254
- });
255
- setAppStatus((pre:any) => {
256
- return {
257
- ...pre,
258
- display: 'ready',
259
- sender: 'ready',
260
- };
261
- });
262
- if (onSuccess) {
263
- const gmtModified = respTime || Date.now();
264
- console.log('[AichatUseController] 消息发送成功,gmtModified:', gmtModified);
265
- onSuccess(gmtModified);
266
- }
267
- } else {
268
- reset_chat({
269
- content: reply.content || '',
270
- status: status,
271
- respTime: respTime,
272
- filePaths: _filePaths,
273
- reference: reference || docs || '',
274
- webReference: webReference || '',
275
- graphReference: finalGraphReference, // 流式过程中保持之前的graphReference值
276
- databaseReference,
277
- llmType,
278
- resultType,
279
- queryId: curData.queryId,
280
- tokens: curData.tokens,
281
- });
282
- }
283
- },
284
- onerror: onErrorCallback,
285
- onclose: () => {
286
- // 流式请求结束时,清理 sessionId 记录
287
- if (currentStreamSessionId === data.sessionId) {
288
- currentStreamSessionId = null;
289
- }
290
- },
291
- });
292
- };
293
-
294
- const setLastEmptyMessage = ({ now }: { now: number }) => {
295
- setChatData((chatList: any[]) => {
296
- if (!chatList[0]) return chatList;
297
- const current = chatList[0];
298
- const messages = current.messages || [];
299
- if (!messages.length) return chatList;
300
- const lastIndex = messages.length - 1;
301
- if (lastIndex < 0) return chatList;
302
- const lastMessage = messages[lastIndex];
303
- if (lastMessage.istype !== 'ai') return chatList;
304
- const newMessages = messages.slice();
305
- newMessages[lastIndex] = {
306
- ...lastMessage,
307
- istype: 'ai',
308
- content: '',
309
- time: now,
310
- streaming: true,
311
- status: StatusType.Pending,
312
- } as any;
313
- const newChat0 = { ...current, messages: newMessages };
314
- return [newChat0, ...chatList.slice(1)];
315
- });
316
- };
317
-
318
- const addEmptyMessage = ({
319
- queryId,
320
- content,
321
- filePaths,
322
- currentFiles,
323
- }: {
324
- queryId: string;
325
- content: string;
326
- filePaths?: string;
327
- currentFiles?: any[];
328
- }) => {
329
- setChatData((chatList: any[]) => {
330
- const now = new Date().toISOString();
331
- const _queryId = queryId || uid(32); // 保证只生成一次
332
- const userMessage = {
333
- istype: 'user',
334
- content: content,
335
- time: now,
336
- queryId: _queryId,
337
- clientSideId: _queryId + '-user',
338
- filePaths: filePaths || '',
339
- currentFiles: currentFiles || [],
340
- };
341
- const aiMessage = {
342
- istype: 'ai',
343
- content: '', // AI回复流式填充
344
- time: new Date(Date.now() + 1).toISOString(),
345
- streaming: true,
346
- status: StatusType.Pending,
347
- queryId: _queryId,
348
- clientSideId: _queryId + '-ai',
349
- };
350
-
351
- // 找到当前激活的对话
352
- const activeChat = chatList.find(chat => chat.id === activeSessionId);
353
-
354
- if (activeChat) {
355
- // 如果激活的对话存在,则向其添加新消息
356
- activeChat.messages.push(userMessage, aiMessage);
357
- } else {
358
- // 如果没有激活的对话(例如首次加载),则需要特殊处理
359
- // 这里的逻辑可能需要根据产品需求调整,是创建新对话还是报错
360
- // 假设我们总是有一个激活的对话
361
- console.warn('addEmptyMessage called without an active session.');
362
- }
363
- return [...chatList];
364
- });
365
- };
366
-
367
- // 主动终止当前 stream
368
- const stopStream = () => {
369
- if (currentStreamController) {
370
- currentStreamController.abort();
371
- currentStreamController = null;
372
- }
373
- currentStreamSessionId = null;
374
- setAppStatus((pre:any) => ({ ...pre, display: 'ready', sender: 'ready' }));
375
- };
376
-
377
- // 根据 sessionId 取消流式请求(用于切换会话时)
378
- const cancelStreamBySessionId = (sessionId: string) => {
379
- if (currentStreamController && currentStreamSessionId === sessionId) {
380
- console.log('[AichatUseController] 切换会话,取消正在进行的流式请求', sessionId);
381
- currentStreamController.abort();
382
- currentStreamController = null;
383
- currentStreamSessionId = null;
384
- setAppStatus((pre:any) => ({ ...pre, display: 'ready', sender: 'ready' }));
385
- return true;
386
- }
387
- return false;
388
- };
389
-
390
- const updateUserFilesMessage = ({ currentFiles }: { currentFiles: any[] }) => {
391
- setChatData((chatList: any[]) => {
392
- if (!chatList[0]) return chatList;
393
- const current = chatList[0];
394
- const messages = current.messages || [];
395
- if (!messages.length) return chatList;
396
- const lastIndex = messages.length - 2;
397
- if (lastIndex < 0) return chatList;
398
- const lastMessage = messages[lastIndex];
399
- if (lastMessage.istype !== 'user') return chatList;
400
- const newMessages = messages.slice();
401
- newMessages[lastIndex] = { ...messages[lastIndex], currentFiles } as any;
402
- const newChat0 = { ...current, messages: newMessages };
403
- return [newChat0, ...chatList.slice(1)];
404
- });
405
- };
406
-
407
- return {
408
- updateUserFilesMessage,
409
- api_startChat_re,
410
- addEmptyMessage,
411
- setLastEmptyMessage,
412
- stopStream,
413
- cancelStreamBySessionId,
414
- };
415
- };
416
-
417
- export default AichatUseController;