@gientech/modual 2.0.7 → 2.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/INSTALL_TROUBLESHOOTING.md +316 -0
  5. package/USAGE.md +247 -0
  6. package/bash.exe.stackdump +40 -0
  7. package/components.json +21 -0
  8. package/dist/README.md +761 -0
  9. package/{assets/GientechStreamReader-Dx72IaEx.js → dist/assets/GientechStreamReader-CNj6Rcm7.js} +1 -1
  10. package/{assets/index-D4pXe94o.js → dist/assets/index-BJv0t0eJ.js} +36 -36
  11. package/{assets/index-BbNz3Zrz.js → dist/assets/index-CU45mVZ4.js} +1 -1
  12. package/{chat.js → dist/chat.js} +1 -1
  13. package/{databaseId.js → dist/databaseId.js} +1 -1
  14. package/{index.js → dist/index.js} +1 -1
  15. package/dist/package.json +68 -0
  16. package/{streamFilesReader.js → dist/streamFilesReader.js} +1 -1
  17. package/doc_assets/2.png +0 -0
  18. package/doc_assets/demo.md +27 -0
  19. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +2 -0
  20. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +23699 -0
  21. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +1 -0
  22. package/doc_assets/demos/dist-app/index.html +14 -0
  23. package/doc_assets/demos/dist-app/vite.svg +1 -0
  24. package/doc_assets/images/1.png +0 -0
  25. package/doc_assets/images/3.png +0 -0
  26. package/doc_assets/images/component-screenshot.png +1 -0
  27. package/doc_assets/install.md +5 -0
  28. package/doc_assets/v2.0.7/345/217/230/346/233/264/346/200/273/347/273/223.md +115 -0
  29. 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 +504 -0
  30. package/eslint.config.js +92 -0
  31. package/index.html +13 -0
  32. package/package.json +103 -41
  33. package/package.json.demo-backup +109 -0
  34. package/postcss.config.cjs +19 -0
  35. package/public/icons/answerAwartar.png +0 -0
  36. package/public/icons/docx-file.png +0 -0
  37. package/public/icons/folder.png +0 -0
  38. package/public/icons/html.png +0 -0
  39. package/public/icons/image.png +0 -0
  40. package/public/icons/jpg-file.png +0 -0
  41. package/public/icons/json.png +0 -0
  42. package/public/icons/md.png +0 -0
  43. package/public/icons/pdf.png +0 -0
  44. package/public/icons/pptx.png +0 -0
  45. package/public/icons/questionAwartar.png +0 -0
  46. package/public/icons/sheets.png +0 -0
  47. package/public/icons/txt.png +0 -0
  48. package/public/icons/xlsx.png +0 -0
  49. package/public/vite.svg +1 -0
  50. package/public/worker/pdf.worker.min.js +22 -0
  51. package/scripts/README.md +133 -0
  52. package/scripts/build-demo.js +88 -0
  53. package/scripts/decrypt-api-key.js +95 -0
  54. package/scripts/demo-selector.js +216 -0
  55. package/scripts/dev-demo.js +76 -0
  56. package/scripts/preview-demo.js +130 -0
  57. package/scripts/run-demo.bat +34 -0
  58. package/src/assets/img/close.png +0 -0
  59. package/src/assets/img/database.png +0 -0
  60. package/src/assets/img/downArrow.png +0 -0
  61. package/src/assets/img/downLoad.png +0 -0
  62. package/src/assets/img/excel.png +0 -0
  63. package/src/assets/img/graphIcon.png +0 -0
  64. package/src/assets/img/img.png +0 -0
  65. package/src/assets/img/pdf.png +0 -0
  66. package/src/assets/img/ppt.png +0 -0
  67. package/src/assets/img/singleQa.png +0 -0
  68. package/src/assets/img/txt.png +0 -0
  69. package/src/assets/img/webSearch.png +0 -0
  70. package/src/assets/img/word.png +0 -0
  71. package/src/assets/login/homeBg.png +0 -0
  72. package/src/assets/login/left.jpg +0 -0
  73. package/src/assets/login/logoImg.png +0 -0
  74. package/src/examples/ConversationAssistantPage/index.tsx +41 -0
  75. package/src/examples/Demo/index.tsx +12 -0
  76. package/src/examples/LoginPage/index.tsx +18 -0
  77. package/src/examples/chat/components/DrawerGraphPreview.tsx +78 -0
  78. package/src/examples/chat/index.tsx +166 -0
  79. package/src/examples/chat/logo03.png +0 -0
  80. package/src/examples/gientechStreamFilesReader/index.tsx +951 -0
  81. package/src/examples/headlessChat/assets/mind.svg +6 -0
  82. package/src/examples/headlessChat/assets/net.svg +7 -0
  83. package/src/examples/headlessChat/index.tsx +285 -0
  84. package/src/examples/ragDatabaseDataPage/index.tsx +40 -0
  85. package/src/examples/ragDatabaseIdPage/index.tsx +47 -0
  86. package/src/examples/ragDatabasePage/index.tsx +36 -0
  87. package/src/examples/ragModelManagePage/index.tsx +38 -0
  88. package/src/examples/ragSearchPage/index.tsx +0 -0
  89. package/src/examples/ragSensitiveWordsPage/index.tsx +32 -0
  90. package/src/examples/streamFiles/index.tsx +417 -0
  91. package/src/lib_enter.ts +43 -0
  92. package/src/main.tsx +5 -0
  93. package/src/main.tsx.backup +5 -0
  94. package/src/modules/CHAT_UNIFICATION_PLAN.md +324 -0
  95. package/src/modules/assistantConfig/assets/databse.svg +6 -0
  96. package/src/modules/assistantConfig/assets/empty.png +0 -0
  97. package/src/modules/assistantConfig/assets/graph.svg +4 -0
  98. package/src/modules/assistantConfig/assets/knowledge.svg +4 -0
  99. package/src/modules/assistantConfig/assets/sensitive.svg +5 -0
  100. package/src/modules/assistantConfig/components/Database.tsx +171 -0
  101. package/src/modules/assistantConfig/components/Graph.tsx +177 -0
  102. package/src/modules/assistantConfig/components/Knowledge.tsx +276 -0
  103. package/src/modules/assistantConfig/components/NotFoundContent.tsx +21 -0
  104. package/src/modules/assistantConfig/components/Paragraph.tsx +51 -0
  105. package/src/modules/assistantConfig/components/ParamsItem.tsx +39 -0
  106. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +133 -0
  107. package/src/modules/assistantConfig/components/SearchableSelector.tsx +500 -0
  108. package/src/modules/assistantConfig/components/Sensitive.tsx +221 -0
  109. package/src/modules/assistantConfig/components/SliderInput.tsx +65 -0
  110. package/src/modules/assistantConfig/constants.tsx +75 -0
  111. package/src/modules/assistantConfig/index.tsx +710 -0
  112. package/src/modules/assistantConfig/server.ts +262 -0
  113. package/src/modules/chat/Conversations/Item.tsx +167 -0
  114. package/src/modules/chat/Conversations/List.tsx +210 -0
  115. package/src/modules/chat/Conversations/groupByTime.ts +39 -0
  116. package/src/modules/chat/Conversations/index.tsx +252 -0
  117. package/src/modules/chat/ReferenceBar.tsx +622 -0
  118. package/src/modules/chat/constants.tsx +57 -0
  119. package/src/modules/chat/index.tsx +2449 -0
  120. package/src/modules/chat/referenceCom/DeleteModal.tsx +75 -0
  121. package/src/modules/chat/referenceCom/DrawerContent.tsx +136 -0
  122. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +102 -0
  123. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +86 -0
  124. package/src/modules/chat/referenceCom/DrawerPreview.tsx +73 -0
  125. package/src/modules/chat/referenceCom/DrawerTitle.tsx +26 -0
  126. package/src/modules/chat/referenceCom/RenameModal.tsx +86 -0
  127. package/src/modules/chat/referenceCom/TagCom.tsx +30 -0
  128. package/src/modules/chat/style.less +3 -0
  129. package/src/modules/chat/types.ts +17 -0
  130. package/src/modules/chat/utils/index.ts +348 -0
  131. package/src/modules/database/CreateModal.tsx +403 -0
  132. package/src/modules/database/assets/Doris.png +0 -0
  133. package/src/modules/database/assets/PostgreSQL.png +0 -0
  134. package/src/modules/database/assets/SQLServer.png +0 -0
  135. package/src/modules/database/assets/database.svg +11 -0
  136. package/src/modules/database/assets/database_add.svg +53 -0
  137. package/src/modules/database/assets/database_connect.svg +66 -0
  138. package/src/modules/database/assets/database_upload.svg +29 -0
  139. package/src/modules/database/assets/empty.png +0 -0
  140. package/src/modules/database/assets/mysql.svg +14 -0
  141. package/src/modules/database/index.tsx +477 -0
  142. package/src/modules/database/server.ts +196 -0
  143. package/src/modules/databaseId/CustomCom.tsx +156 -0
  144. package/src/modules/databaseId/EditConfig.tsx +280 -0
  145. package/src/modules/databaseId/UploadDrawer.tsx +535 -0
  146. package/src/modules/databaseId/assets/aiOptimize.svg +10 -0
  147. package/src/modules/databaseId/assets/empty.png +0 -0
  148. package/src/modules/databaseId/assets/template.svg +6 -0
  149. package/src/modules/databaseId/assets/upload.svg +9 -0
  150. package/src/modules/databaseId/assets/useTemp.svg +6 -0
  151. package/src/modules/databaseId/index.tsx +769 -0
  152. package/src/modules/databaseId/server.ts +286 -0
  153. package/src/modules/databaseId/style.css +5 -0
  154. package/src/modules/databaseTable/EditRowDrawer.tsx +124 -0
  155. package/src/modules/databaseTable/index.tsx +359 -0
  156. package/src/modules/databaseTable/server.ts +180 -0
  157. package/src/modules/headlessChat/ReferenceBar.tsx +783 -0
  158. package/src/modules/headlessChat/constants.tsx +54 -0
  159. package/src/modules/headlessChat/index.tsx +1782 -0
  160. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +75 -0
  161. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +136 -0
  162. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +102 -0
  163. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +86 -0
  164. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +73 -0
  165. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +26 -0
  166. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +86 -0
  167. package/src/modules/headlessChat/referenceCom/TagCom.tsx +30 -0
  168. package/src/modules/headlessChat/style.less +3 -0
  169. package/src/modules/headlessChat/types.ts +23 -0
  170. package/src/modules/headlessChat/utils/index.ts +348 -0
  171. package/src/modules/login/components/Login/LoginBox/index.tsx +102 -0
  172. package/src/modules/login/components/Login/RegisterBox/index.tsx +180 -0
  173. package/src/modules/login/components/Login/index.tsx +100 -0
  174. package/src/modules/login/index.tsx +106 -0
  175. package/src/modules/login/style.css +3 -0
  176. package/src/modules/login/useServices.ts +53 -0
  177. package/src/modules/login/utils.ts +42 -0
  178. package/src/modules/modelManage/ConfigDrawer.tsx +249 -0
  179. package/src/modules/modelManage/ReplaceModal.tsx +124 -0
  180. package/src/modules/modelManage/assets/empty.png +0 -0
  181. package/src/modules/modelManage/const.ts +51 -0
  182. package/src/modules/modelManage/index.tsx +606 -0
  183. package/src/modules/modelManage/server.ts +223 -0
  184. package/src/modules/nodegraph/index.tsx +1 -0
  185. package/src/modules/search/assets/Icon-history.svg +8 -0
  186. package/src/modules/search/assets/answerAwartar.png +0 -0
  187. package/src/modules/search/assets/doc.png +0 -0
  188. package/src/modules/search/assets/genera.gif +0 -0
  189. package/src/modules/search/assets/icon-robot.svg +9 -0
  190. package/src/modules/search/assets/icon-search-bar.svg +14 -0
  191. package/src/modules/search/assets/icon-sub-title.svg +3 -0
  192. package/src/modules/search/assets/icon-title.svg +9 -0
  193. package/src/modules/search/assets/icon-zoomOut.svg +9 -0
  194. package/src/modules/search/assets/iconAi.svg +9 -0
  195. package/src/modules/search/assets/pdf.png +0 -0
  196. package/src/modules/search/assets/ppt.png +0 -0
  197. package/src/modules/search/assets/search.svg +3 -0
  198. package/src/modules/search/assets/selected.svg +4 -0
  199. package/src/modules/search/assets/txt.png +0 -0
  200. package/src/modules/search/assets/xls.png +0 -0
  201. package/src/modules/search/components/AssisSelect.tsx +137 -0
  202. package/src/modules/search/components/Editor/ChatViewEditor.tsx +261 -0
  203. package/src/modules/search/components/Editor/aichat.css +1 -0
  204. package/src/modules/search/components/Editor/constant.ts +13 -0
  205. package/src/modules/search/components/Editor/index.tsx +113 -0
  206. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +332 -0
  207. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +20 -0
  208. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +38 -0
  209. package/src/modules/search/components/Editor/plugins/displayer.ts +298 -0
  210. package/src/modules/search/components/Editor/plugins/imageClick.tsx +32 -0
  211. package/src/modules/search/components/Editor/plugins/myplugin.tsx +98 -0
  212. package/src/modules/search/components/Editor/ui/avatar.tsx +19 -0
  213. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +21 -0
  214. package/src/modules/search/components/Editor/ui/button.tsx +58 -0
  215. package/src/modules/search/components/Editor/ui/calendar.tsx +68 -0
  216. package/src/modules/search/components/Editor/ui/caption.tsx +46 -0
  217. package/src/modules/search/components/Editor/ui/checkbox.tsx +27 -0
  218. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +188 -0
  219. package/src/modules/search/components/Editor/ui/code-block-element.css +434 -0
  220. package/src/modules/search/components/Editor/ui/code-block-element.tsx +39 -0
  221. package/src/modules/search/components/Editor/ui/code-leaf.tsx +24 -0
  222. package/src/modules/search/components/Editor/ui/code-line-element.tsx +10 -0
  223. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +21 -0
  224. package/src/modules/search/components/Editor/ui/column-element.tsx +30 -0
  225. package/src/modules/search/components/Editor/ui/column-group-element.tsx +94 -0
  226. package/src/modules/search/components/Editor/ui/command.tsx +75 -0
  227. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +22 -0
  228. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +37 -0
  229. package/src/modules/search/components/Editor/ui/comment-item.tsx +74 -0
  230. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +49 -0
  231. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +42 -0
  232. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +22 -0
  233. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +32 -0
  234. package/src/modules/search/components/Editor/ui/comment-value.tsx +34 -0
  235. package/src/modules/search/components/Editor/ui/comments-popover.tsx +63 -0
  236. package/src/modules/search/components/Editor/ui/date-element.tsx +83 -0
  237. package/src/modules/search/components/Editor/ui/dialog.tsx +63 -0
  238. package/src/modules/search/components/Editor/ui/draggable.tsx +177 -0
  239. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +180 -0
  240. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +85 -0
  241. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +28 -0
  242. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +76 -0
  243. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +8 -0
  244. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +51 -0
  245. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +77 -0
  246. package/src/modules/search/components/Editor/ui/heading-element.tsx +48 -0
  247. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +17 -0
  248. package/src/modules/search/components/Editor/ui/hr-element.tsx +30 -0
  249. package/src/modules/search/components/Editor/ui/icons.tsx +267 -0
  250. package/src/modules/search/components/Editor/ui/image-element.tsx +74 -0
  251. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +368 -0
  252. package/src/modules/search/components/Editor/ui/input.tsx +25 -0
  253. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +218 -0
  254. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +20 -0
  255. package/src/modules/search/components/Editor/ui/link-element.tsx +29 -0
  256. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +161 -0
  257. package/src/modules/search/components/Editor/ui/list-element.tsx +30 -0
  258. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +24 -0
  259. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +133 -0
  260. package/src/modules/search/components/Editor/ui/media-popover.tsx +97 -0
  261. package/src/modules/search/components/Editor/ui/mention-element.tsx +43 -0
  262. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +141 -0
  263. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +93 -0
  264. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +67 -0
  265. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +4 -0
  266. package/src/modules/search/components/Editor/ui/placeholder.tsx +52 -0
  267. package/src/modules/search/components/Editor/ui/popover.tsx +32 -0
  268. package/src/modules/search/components/Editor/ui/resizable.tsx +66 -0
  269. package/src/modules/search/components/Editor/ui/separator.tsx +25 -0
  270. package/src/modules/search/components/Editor/ui/style.less +12 -0
  271. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +143 -0
  272. package/src/modules/search/components/Editor/ui/table-element.tsx +243 -0
  273. package/src/modules/search/components/Editor/ui/table-row-element.tsx +22 -0
  274. package/src/modules/search/components/Editor/ui/tableValue.tsx +135 -0
  275. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +43 -0
  276. package/src/modules/search/components/Editor/ui/toggle-element.tsx +31 -0
  277. package/src/modules/search/components/Editor/ui/toolbar.tsx +157 -0
  278. package/src/modules/search/components/Editor/ui/tooltip.tsx +65 -0
  279. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +160 -0
  280. package/src/modules/search/components/Editor/ui/with-draggables.tsx +175 -0
  281. package/src/modules/search/components/FileList.tsx +287 -0
  282. package/src/modules/search/components/ImageGroupView/index.tsx +85 -0
  283. package/src/modules/search/components/ResultContent.tsx +232 -0
  284. package/src/modules/search/components/SearchInput.tsx +232 -0
  285. package/src/modules/search/components/SearchLanding.tsx +74 -0
  286. package/src/modules/search/components/SearchView.tsx +563 -0
  287. package/src/modules/search/components/SimpleEditor.tsx +158 -0
  288. package/src/modules/search/components/SimpleFileList.tsx +215 -0
  289. package/src/modules/search/index.tsx +10 -0
  290. package/src/modules/search/reademe.md +1 -0
  291. package/src/modules/search/servers/apis.tsx +19 -0
  292. package/src/modules/search/servers/index.ts +184 -0
  293. package/src/modules/search/style.less +503 -0
  294. package/src/modules/search/type.ts +22 -0
  295. package/src/modules/search/utils.ts +34 -0
  296. package/src/modules/sensitive/index.tsx +313 -0
  297. package/src/modules/sensitive/server.ts +122 -0
  298. package/src/modules/streamFilesReader/GientechStreamReader.tsx +1625 -0
  299. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  300. package/src/modules/streamFilesReader/components/Header/index.tsx +297 -0
  301. package/src/modules/streamFilesReader/index.tsx +3 -0
  302. package/src/style.css +6 -0
  303. package/src/type.d.ts +0 -0
  304. package/src/utils/commonFn.tsx +111 -0
  305. package/src/utils/decryptApiKey.ts +40 -0
  306. package/src/utils/gientechCommon/components/AppError.tsx +32 -0
  307. package/src/utils/gientechCommon/components/AppLoading.tsx +75 -0
  308. package/src/utils/gientechCommon/components/DeleteModal.tsx +75 -0
  309. package/src/utils/gientechCommon/components/DisplayError.tsx +33 -0
  310. package/src/utils/gientechCommon/components/DisplayLoading.tsx +38 -0
  311. package/src/utils/gientechCommon/components/FeedBackModal.tsx +319 -0
  312. package/src/utils/gientechCommon/components/FileCardCommon.tsx +82 -0
  313. package/src/utils/gientechCommon/components/FileManager/index.tsx +418 -0
  314. package/src/utils/gientechCommon/components/FileManager/style.css +5 -0
  315. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +581 -0
  316. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +359 -0
  317. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +245 -0
  318. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +209 -0
  319. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  320. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +148 -0
  321. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +14 -0
  322. package/src/utils/gientechCommon/components/RenameModal.tsx +86 -0
  323. package/src/utils/gientechCommon/components/style.less +11 -0
  324. package/src/utils/gientechCommon/configs/commonConfig.ts +2 -0
  325. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  326. package/src/utils/gientechCommon/configs/stylesConfig.ts +142 -0
  327. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +417 -0
  328. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +251 -0
  329. package/src/utils/gientechCommon/hooks/useFileManager.ts +208 -0
  330. package/src/utils/gientechCommon/slate/converters/deserializers.ts +763 -0
  331. package/src/utils/gientechCommon/slate/converters/mockData.ts +232 -0
  332. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +258 -0
  333. package/src/utils/gientechCommon/slate/richElements/index.tsx +499 -0
  334. package/src/utils/gientechCommon/utils/fileUtils.ts +86 -0
  335. package/src/utils/gientechCommon/utils/request.ts +37 -0
  336. package/src/utils/gientechCommon/utils/serverFn.ts +172 -0
  337. package/src/utils/index.tsx +142 -0
  338. package/src/utils/testconfigs/demologin/index.tsx +32 -0
  339. package/src/utils/testconfigs/index.ts +59 -0
  340. package/src/vite-env.d.ts +42 -0
  341. package/stats.html +4949 -0
  342. package/tailwind.config.js +170 -0
  343. package/tsconfig.app.json +30 -0
  344. package/tsconfig.app.tsbuildinfo +11 -0
  345. package/tsconfig.json +13 -0
  346. package/tsconfig.node.json +22 -0
  347. package/tsconfig.node.tsbuildinfo +1 -0
  348. package/vite.config.app.ts +93 -0
  349. package/vite.config.ts +232 -0
  350. package/workflows/release.yml +60 -0
  351. 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 +359 -0
  352. /package/{assets → dist/assets}/Doris.png +0 -0
  353. /package/{assets → dist/assets}/PostgreSQL.png +0 -0
  354. /package/{assets → dist/assets}/SQLServer.png +0 -0
  355. /package/{assets → dist/assets}/database.svg +0 -0
  356. /package/{assets → dist/assets}/database_add.svg +0 -0
  357. /package/{assets → dist/assets}/database_connect.svg +0 -0
  358. /package/{assets → dist/assets}/database_upload.svg +0 -0
  359. /package/{assets → dist/assets}/databse.svg +0 -0
  360. /package/{assets → dist/assets}/defaultWeLogo.svg +0 -0
  361. /package/{assets → dist/assets}/empty.png +0 -0
  362. /package/{assets → dist/assets}/graph.svg +0 -0
  363. /package/{assets → dist/assets}/homeBg.png +0 -0
  364. /package/{assets → dist/assets}/index-B2yNvzjy.js +0 -0
  365. /package/{assets → dist/assets}/index-BKe5FgcC.js +0 -0
  366. /package/{assets → dist/assets}/index-CpW6Dhpp.js +0 -0
  367. /package/{assets → dist/assets}/index-D72cKELw.js +0 -0
  368. /package/{assets → dist/assets}/index-DdVFXD_y.js +0 -0
  369. /package/{assets → dist/assets}/index-DrkSoKz6.js +0 -0
  370. /package/{assets → dist/assets}/index-ZopkeZtI.js +0 -0
  371. /package/{assets → dist/assets}/index-g-SUxfJH.js +0 -0
  372. /package/{assets → dist/assets}/index-j0kQJd0a.js +0 -0
  373. /package/{assets → dist/assets}/knowledge.svg +0 -0
  374. /package/{assets → dist/assets}/left.jpg +0 -0
  375. /package/{assets → dist/assets}/logoImg.png +0 -0
  376. /package/{assets → dist/assets}/mysql.svg +0 -0
  377. /package/{assets → dist/assets}/plus-V9zUoSq6.js +0 -0
  378. /package/{assets → dist/assets}/sensitive.svg +0 -0
  379. /package/{assets → dist/assets}/style-CGmZ5osp.js +0 -0
  380. /package/{assets → dist/assets}/style.css +0 -0
  381. /package/{assets → dist/assets}/style2.css +0 -0
  382. /package/{assets → dist/assets}/style3.css +0 -0
  383. /package/{assets → dist/assets}/style4.css +0 -0
  384. /package/{assets → dist/assets}/worker-BbpylX7l.js +0 -0
  385. /package/{assets → dist/assets}/x-CnaaLGJF.js +0 -0
  386. /package/{assistantConfig.d.ts → dist/assistantConfig.d.ts} +0 -0
  387. /package/{assistantConfig.js → dist/assistantConfig.js} +0 -0
  388. /package/{chat.d.ts → dist/chat.d.ts} +0 -0
  389. /package/{database.d.ts → dist/database.d.ts} +0 -0
  390. /package/{database.js → dist/database.js} +0 -0
  391. /package/{databaseId.d.ts → dist/databaseId.d.ts} +0 -0
  392. /package/{databaseTable.d.ts → dist/databaseTable.d.ts} +0 -0
  393. /package/{databaseTable.js → dist/databaseTable.js} +0 -0
  394. /package/{icons → dist/icons}/answerAwartar.png +0 -0
  395. /package/{icons → dist/icons}/docx-file.png +0 -0
  396. /package/{icons → dist/icons}/folder.png +0 -0
  397. /package/{icons → dist/icons}/html.png +0 -0
  398. /package/{icons → dist/icons}/image.png +0 -0
  399. /package/{icons → dist/icons}/jpg-file.png +0 -0
  400. /package/{icons → dist/icons}/json.png +0 -0
  401. /package/{icons → dist/icons}/md.png +0 -0
  402. /package/{icons → dist/icons}/pdf.png +0 -0
  403. /package/{icons → dist/icons}/pptx.png +0 -0
  404. /package/{icons → dist/icons}/questionAwartar.png +0 -0
  405. /package/{icons → dist/icons}/sheets.png +0 -0
  406. /package/{icons → dist/icons}/txt.png +0 -0
  407. /package/{icons → dist/icons}/xlsx.png +0 -0
  408. /package/{index.d.ts → dist/index.d.ts} +0 -0
  409. /package/{modelManage.d.ts → dist/modelManage.d.ts} +0 -0
  410. /package/{modelManage.js → dist/modelManage.js} +0 -0
  411. /package/{sensitive.d.ts → dist/sensitive.d.ts} +0 -0
  412. /package/{sensitive.js → dist/sensitive.js} +0 -0
  413. /package/{streamFilesReader.d.ts → dist/streamFilesReader.d.ts} +0 -0
  414. /package/{vite.svg → dist/vite.svg} +0 -0
  415. /package/{worker → dist/worker}/pdf.worker.min.js +0 -0
@@ -0,0 +1,951 @@
1
+ import React, { useState } from 'react';
2
+ import { GientechStreamReader } from '../../modules/streamFilesReader';
3
+ import { AppTheme } from '@mxmweb/zui';
4
+ import type { Annotation, MDAnnotation, TableAnnotation } from '../../../../apps/FViewer/dist/core/types';
5
+ import { rag_dev_server } from '../../utils/testconfigs';
6
+ // 注意:Worker 应该由最终调用方在应用入口处注册
7
+ // import { registerPDFWorker } from '@mxmweb/fviewer';
8
+ // registerPDFWorker('/worker/pdf.worker.min.js');
9
+
10
+ // 自定义Loading组件示例
11
+ const CustomLoadingComponent: React.FC<{
12
+ status: string;
13
+ theme: AppTheme;
14
+ }> = ({ status, theme }) => {
15
+ return (
16
+ <div
17
+ style={{
18
+ display: 'flex',
19
+ flexDirection: 'column',
20
+ alignItems: 'center',
21
+ justifyContent: 'center',
22
+ height: '100%',
23
+ padding: '40px',
24
+ background: theme.colors.background,
25
+ }}
26
+ >
27
+ {/* 自定义加载动画 */}
28
+ <div
29
+ style={{
30
+ position: 'relative',
31
+ width: '100px',
32
+ height: '100px',
33
+ marginBottom: '24px',
34
+ }}
35
+ >
36
+ {/* 旋转的圆环 */}
37
+ <div
38
+ style={{
39
+ width: '100%',
40
+ height: '100%',
41
+ border: `4px solid ${theme.colors.border}`,
42
+ borderTop: `4px solid ${theme.colors.primary}`,
43
+ borderRadius: '50%',
44
+ animation: 'spin 1s linear infinite',
45
+ }}
46
+ />
47
+
48
+ {/* 中心图标 */}
49
+ <div
50
+ style={{
51
+ position: 'absolute',
52
+ top: '50%',
53
+ left: '50%',
54
+ transform: 'translate(-50%, -50%)',
55
+ fontSize: '24px',
56
+ color: theme.colors.primary,
57
+ }}
58
+ >
59
+ 📄
60
+ </div>
61
+ </div>
62
+
63
+ {/* 状态文本 */}
64
+ <div
65
+ style={{
66
+ fontSize: '18px',
67
+ fontWeight: '600',
68
+ color: theme.colors.text,
69
+ marginBottom: '12px',
70
+ textAlign: 'center',
71
+ }}
72
+ >
73
+ {status}
74
+ </div>
75
+
76
+ {/* 进度条 */}
77
+ <div
78
+ style={{
79
+ width: '300px',
80
+ height: '6px',
81
+ background: theme.colors.border,
82
+ borderRadius: '3px',
83
+ overflow: 'hidden',
84
+ position: 'relative',
85
+ }}
86
+ >
87
+ <div
88
+ style={{
89
+ width: '60%',
90
+ height: '100%',
91
+ background: `linear-gradient(90deg, ${theme.colors.primary}, ${theme.colors.info})`,
92
+ borderRadius: '3px',
93
+ animation: 'loading-progress 2s ease-in-out infinite',
94
+ }}
95
+ />
96
+ </div>
97
+
98
+ {/* 动画样式 */}
99
+ <style>{`
100
+ @keyframes spin {
101
+ 0% { transform: rotate(0deg); }
102
+ 100% { transform: rotate(360deg); }
103
+ }
104
+
105
+ @keyframes loading-progress {
106
+ 0% { transform: translateX(-100%); }
107
+ 50% { transform: translateX(0%); }
108
+ 100% { transform: translateX(100%); }
109
+ }
110
+ `}</style>
111
+ </div>
112
+ );
113
+ };
114
+
115
+ // 自定义Error组件示例
116
+ const CustomErrorComponent: React.FC<{
117
+ error: string;
118
+ theme: AppTheme;
119
+ }> = ({ error, theme }) => {
120
+ return (
121
+ <div
122
+ style={{
123
+ display: 'flex',
124
+ flexDirection: 'column',
125
+ alignItems: 'center',
126
+ justifyContent: 'center',
127
+ height: '100%',
128
+ padding: '40px',
129
+ background: theme.colors.background,
130
+ }}
131
+ >
132
+ {/* 错误图标 */}
133
+ <div
134
+ style={{
135
+ width: '80px',
136
+ height: '80px',
137
+ borderRadius: '50%',
138
+ background: theme.colors.error,
139
+ display: 'flex',
140
+ alignItems: 'center',
141
+ justifyContent: 'center',
142
+ marginBottom: '24px',
143
+ fontSize: '32px',
144
+ color: 'white',
145
+ }}
146
+ >
147
+ ⚠️
148
+ </div>
149
+
150
+ {/* 错误标题 */}
151
+ <div
152
+ style={{
153
+ fontSize: '20px',
154
+ fontWeight: '600',
155
+ color: theme.colors.error,
156
+ marginBottom: '12px',
157
+ textAlign: 'center',
158
+ }}
159
+ >
160
+ 加载失败
161
+ </div>
162
+
163
+ {/* 错误详情 */}
164
+ <div
165
+ style={{
166
+ fontSize: '14px',
167
+ color: theme.colors.text,
168
+ textAlign: 'center',
169
+ maxWidth: '400px',
170
+ lineHeight: '1.5',
171
+ }}
172
+ >
173
+ {error}
174
+ </div>
175
+
176
+ {/* 重试按钮 */}
177
+ <button
178
+ style={{
179
+ marginTop: '24px',
180
+ padding: '12px 24px',
181
+ background: theme.colors.primary,
182
+ color: 'white',
183
+ border: 'none',
184
+ borderRadius: '6px',
185
+ fontSize: '14px',
186
+ fontWeight: '500',
187
+ cursor: 'pointer',
188
+ transition: 'background-color 0.2s',
189
+ }}
190
+ onMouseEnter={e => {
191
+ e.currentTarget.style.background = theme.colors.info;
192
+ }}
193
+ onMouseLeave={e => {
194
+ e.currentTarget.style.background = theme.colors.primary;
195
+ }}
196
+ >
197
+ 重新加载
198
+ </button>
199
+ </div>
200
+ );
201
+ };
202
+
203
+ // 测试标注数据
204
+ export const streamAnnotations: Annotation[] =[
205
+ {
206
+ "id": "f4b6f9516e0",
207
+ "pageNumber": 1,
208
+ "x": 0.4047,
209
+ "y": 0.481,
210
+ "width": 0.1898,
211
+ "height": 0.0172,
212
+ "content": "",
213
+ "color": "#C3F74F"
214
+ },
215
+ {
216
+ "id": "4b6f9516e0d",
217
+ "pageNumber": 1,
218
+ "x": 0.1495,
219
+ "y": 0.5243,
220
+ "width": 0.7003,
221
+ "height": 0.0534,
222
+ "content": "",
223
+ "color": "#C3F74F"
224
+ },
225
+ {
226
+ "id": "b6f9516e0d3",
227
+ "pageNumber": 1,
228
+ "x": 0.1495,
229
+ "y": 0.6057,
230
+ "width": 0.1763,
231
+ "height": 0.016,
232
+ "content": "",
233
+ "color": "#4FC3F7"
234
+ },
235
+ {
236
+ "id": "6f9516e0d32",
237
+ "pageNumber": 3,
238
+ "x": 0.1822,
239
+ "y": 0.1473,
240
+ "width": 0.4509,
241
+ "height": 0.0374,
242
+ "content": "",
243
+ "color": "#C3F74F"
244
+ },
245
+ {
246
+ "id": "f9516e0d32b",
247
+ "pageNumber": 3,
248
+ "x": 0.2275,
249
+ "y": 0.5825,
250
+ "width": 0.3762,
251
+ "height": 0.0214,
252
+ "content": "",
253
+ "color": "#4FC3F7"
254
+ },
255
+ {
256
+ "id": "9516e0d32b4",
257
+ "pageNumber": 4,
258
+ "x": 0.6902,
259
+ "y": 0.1467,
260
+ "width": 0.0311,
261
+ "height": 0.2179,
262
+ "content": "",
263
+ "color": "#4FC3F7"
264
+ },
265
+ {
266
+ "id": "516e0d32b44",
267
+ "pageNumber": 4,
268
+ "x": 0.1478,
269
+ "y": 0.7922,
270
+ "width": 0.7019,
271
+ "height": 0.0689,
272
+ "content": "",
273
+ "color": "#4FC3F7"
274
+ },
275
+ {
276
+ "id": "16e0d32b442",
277
+ "pageNumber": 5,
278
+ "x": 0.1495,
279
+ "y": 0.5137,
280
+ "width": 0.7003,
281
+ "height": 0.0695,
282
+ "content": "",
283
+ "color": "#4FC3F7"
284
+ },
285
+ {
286
+ "id": "6e0d32b442a",
287
+ "pageNumber": 6,
288
+ "x": 0.1495,
289
+ "y": 0.6805,
290
+ "width": 0.6952,
291
+ "height": 0.0315,
292
+ "content": "",
293
+ "color": "#4FC3F7"
294
+ },
295
+ {
296
+ "id": "e0d32b442a4",
297
+ "pageNumber": 6,
298
+ "x": 0.1478,
299
+ "y": 0.7173,
300
+ "width": 0.7019,
301
+ "height": 0.0315,
302
+ "content": "",
303
+ "color": "#4FC3F7"
304
+ },
305
+ {
306
+ "id": "0d32b442a43",
307
+ "pageNumber": 6,
308
+ "x": 0.1495,
309
+ "y": 0.7548,
310
+ "width": 0.7003,
311
+ "height": 0.0315,
312
+ "content": "",
313
+ "color": "#4FC3F7"
314
+ },
315
+ {
316
+ "id": "d32b442a43b",
317
+ "pageNumber": 6,
318
+ "x": 0.1495,
319
+ "y": 0.8165,
320
+ "width": 0.7003,
321
+ "height": 0.0315,
322
+ "content": "",
323
+ "color": "#4FC3F7"
324
+ },
325
+ {
326
+ "id": "32b442a43b6",
327
+ "pageNumber": 6,
328
+ "x": 0.1495,
329
+ "y": 0.8539,
330
+ "width": 0.7003,
331
+ "height": 0.0315,
332
+ "content": "",
333
+ "color": "#4FC3F7"
334
+ },
335
+ {
336
+ "id": "2b442a43b6e",
337
+ "pageNumber": 6,
338
+ "x": 0.2301,
339
+ "y": 0.8913,
340
+ "width": 0.6062,
341
+ "height": 0.0125,
342
+ "content": "",
343
+ "color": "#4FC3F7"
344
+ },
345
+ {
346
+ "id": "b442a43b6e3",
347
+ "pageNumber": 7,
348
+ "x": 0.1478,
349
+ "y": 0.0879,
350
+ "width": 0.2343,
351
+ "height": 0.0119,
352
+ "content": "",
353
+ "color": "#4FC3F7"
354
+ },
355
+ {
356
+ "id": "442a43b6e3f",
357
+ "pageNumber": 7,
358
+ "x": 0.1495,
359
+ "y": 0.1069,
360
+ "width": 0.6994,
361
+ "height": 0.0303,
362
+ "content": "",
363
+ "color": "#4FC3F7"
364
+ }
365
+ ]
366
+
367
+ // 测试Markdown标注数据
368
+ export const streamMDAnnotations: MDAnnotation[] = [
369
+ {
370
+ id: 'md-anno-1',
371
+ start: 0,
372
+ end: 20, // 标注前20个字符
373
+ content: '这是第一个 Markdown 标注',
374
+ color: '#FFEB3B',
375
+ },
376
+ {
377
+ id: 'md-anno-2',
378
+ start: 50,
379
+ end: 70, // 标注第50-70个字符
380
+ content: '这是第二个 Markdown 标注',
381
+ color: '#A8E6CF',
382
+ },
383
+ ];
384
+
385
+ // 测试表格标注数据
386
+ export const streamTableAnnotations: TableAnnotation[] = [
387
+ {
388
+ "id": "2bd1e2b0fed",
389
+ "offsets": [
390
+ [
391
+ 0,
392
+ 0
393
+ ],
394
+ [
395
+ 0,
396
+ 1
397
+ ],
398
+ [
399
+ 0,
400
+ 2
401
+ ],
402
+ [
403
+ 1,
404
+ 0
405
+ ],
406
+ [
407
+ 1,
408
+ 1
409
+ ],
410
+ [
411
+ 1,
412
+ 2
413
+ ],
414
+ [
415
+ 2,
416
+ 0
417
+ ],
418
+ [
419
+ 2,
420
+ 1
421
+ ],
422
+ [
423
+ 2,
424
+ 2
425
+ ],
426
+ [
427
+ 3,
428
+ 0
429
+ ],
430
+ [
431
+ 3,
432
+ 1
433
+ ],
434
+ [
435
+ 3,
436
+ 2
437
+ ],
438
+ [
439
+ 4,
440
+ 0
441
+ ],
442
+ [
443
+ 4,
444
+ 1
445
+ ],
446
+ [
447
+ 4,
448
+ 2
449
+ ]
450
+ ],
451
+ content: '这是表格标注',
452
+ color: '#FFEB3B',
453
+ },
454
+ ];
455
+
456
+ export default function StreamPreview() {
457
+ const [isVisible, setIsVisible] = useState(false);
458
+
459
+ // 可配置的参数
460
+ const [fileType, setFileType] = useState<'pdf'|'pdf_slides' | 'markdown' | 'markdown_table' | 'image' | 'html' | 'text'>('pdf');
461
+
462
+ // 统一的标注状态
463
+ const [annotations, setAnnotations] = useState<(Annotation | MDAnnotation | TableAnnotation)[]>([
464
+ ...streamAnnotations,
465
+ ...streamMDAnnotations,
466
+ ...streamTableAnnotations,
467
+ ]);
468
+
469
+ //http://10.15.12.13:9000/dev-rag-data/测试南自/电压和电池容量的关系.md/V0/电压和电池容量的关系.md
470
+ //http://10.15.12.13:9000/dev-rag-data/测试南自/中国电子规章制度汇编(2024版)-集团公司第二分册.pdf/V0/中国电子规章制度汇编(2024版)-集团公司第二分册.pdf
471
+ //http://10.15.12.13:9000/dev-rag-data/测试南自/服务发布专利具体步骤.md/V0/服务发布专利具体步骤.md
472
+ //http://10.15.12.13:9000/dev-rag-data/测试南自/测试文档.txt/V0/测试文档.txt
473
+ const [convertedFilePath, setConvertedFilePath] = useState(
474
+ 'http://10.15.12.13:9000/dev-rag-data/合肥晶合演示JBB/一般_山地自行车的组装1.pdf/V0/一般_山地自行车的组装1.pdf'
475
+ );
476
+ const [fileName, setFileName] = useState('VR设备专题:Pancake迎来渗透加速,产业链受益硬件升级2023-02-02行业研报.pdf');
477
+ const [totalPages, setTotalPages] = useState(29); // 根据响应头更新为实际总页数
478
+ const [initialPage, setInitialPage] = useState(1);
479
+ const [pageO, setPageO] = useState(1);
480
+ const [initialZoom, setInitialZoom] = useState(1.5);
481
+ const [authorization, setAuthorization] = useState(
482
+ rag_dev_server.token
483
+ );
484
+ const [streamApiUrl, setStreamApiUrl] = useState(
485
+ '/proxy/index/knowledgeBase/file/stream'
486
+ );
487
+ const [pageSize, setPageSize] = useState(5); // 修改为5,与网络请求一致
488
+
489
+ const handleEventsEmit = (name: string, data?: any, innerFn?: any) => {
490
+ console.log('GientechStreamReader 事件:', name, data);
491
+
492
+ switch (name) {
493
+ case 'viewer:close':
494
+ setIsVisible(false);
495
+ break;
496
+ case 'pageChange':
497
+ console.log('页面变化事件:', data);
498
+ console.log('当前页面状态:', data.pageNumber, '总页数:', data.totalPages);
499
+ break;
500
+ case 'zoomChange':
501
+ console.log('缩放变化:', data);
502
+ break;
503
+ case 'markdown_scroll_to_top':
504
+ console.log('Markdown滚动到顶部');
505
+ break;
506
+ case 'markdown_scroll_to_bottom':
507
+ console.log('Markdown滚动到底部');
508
+ break;
509
+ case 'md_annotation_add':
510
+ console.log('添加Markdown标注:', data);
511
+ setAnnotations(prev => [...prev, data]);
512
+ break;
513
+ default:
514
+ console.log('其他事件:', name, data);
515
+ break;
516
+ }
517
+ };
518
+
519
+ if (!isVisible) {
520
+ return (
521
+ <div
522
+ className="preview-container"
523
+ style={{
524
+ display: 'flex',
525
+ flexDirection: 'column',
526
+ alignItems: 'center',
527
+ justifyContent: 'center',
528
+ height: '100vh',
529
+ padding: '20px',
530
+ backgroundColor: '#f5f5f5',
531
+ }}
532
+ >
533
+ <h1 style={{ marginBottom: '30px', color: '#333' }}>
534
+ GientechStreamReader 测试 -{' '}
535
+ {fileType === 'markdown'
536
+ ? 'Markdown'
537
+ : fileType === 'pdf_slides'
538
+ ? 'PDF幻灯片'
539
+ : fileType === 'markdown_table'
540
+ ? 'Markdown表格'
541
+ : fileType === 'html'
542
+ ? 'HTML'
543
+ : fileType === 'image'
544
+ ? '图片'
545
+ : fileType === 'text'
546
+ ? '文本'
547
+ : 'PDF'}{' '}
548
+ 模式
549
+ </h1>
550
+
551
+ <div
552
+ style={{
553
+ display: 'flex',
554
+ flexDirection: 'column',
555
+ gap: '15px',
556
+ width: '100%',
557
+ maxWidth: '600px',
558
+ backgroundColor: 'white',
559
+ padding: '20px',
560
+ borderRadius: '8px',
561
+ boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
562
+ }}
563
+ >
564
+ <div>
565
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
566
+ 文件类型 (fileType):
567
+ </label>
568
+ <select
569
+ value={fileType}
570
+ onChange={e => {
571
+ const newFileType = e.target.value as 'pdf' | 'pdf_slides' | 'markdown' | 'markdown_table' | 'image' | 'html' | 'text';
572
+ setFileType(newFileType);
573
+ }}
574
+ style={{
575
+ width: '100%',
576
+ padding: '8px',
577
+ border: '1px solid #ddd',
578
+ borderRadius: '4px',
579
+ }}
580
+ >
581
+ <option value="pdf_slides">PDF幻灯片</option>
582
+ <option value="pdf">PDF文件</option>
583
+ <option value="markdown">Markdown文件</option>
584
+ <option value="markdown_table">Markdown表格文件</option>
585
+ <option value="image">图片文件</option>
586
+ <option value="html">HTML文件</option>
587
+ <option value="text">文本文件</option>
588
+ </select>
589
+ </div>
590
+
591
+ <div>
592
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
593
+ 文件路径 (convertedFilePath):
594
+ </label>
595
+ <input
596
+ type="text"
597
+ value={convertedFilePath}
598
+ onChange={e => setConvertedFilePath(e.target.value)}
599
+ style={{
600
+ width: '100%',
601
+ padding: '8px',
602
+ border: '1px solid #ddd',
603
+ borderRadius: '4px',
604
+ }}
605
+ placeholder="输入文件路径"
606
+ />
607
+ </div>
608
+
609
+ <div>
610
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
611
+ 文件名 (fileName):
612
+ </label>
613
+ <input
614
+ type="text"
615
+ value={fileName}
616
+ onChange={e => setFileName(e.target.value)}
617
+ style={{
618
+ width: '100%',
619
+ padding: '8px',
620
+ border: '1px solid #ddd',
621
+ borderRadius: '4px',
622
+ }}
623
+ placeholder="输入文件名"
624
+ />
625
+ </div>
626
+
627
+ <div>
628
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
629
+ {fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
630
+ ? '总块数 (totalPages) - 仅用于显示:'
631
+ : '总页数 (totalPages):'}
632
+ </label>
633
+ <input
634
+ type="number"
635
+ value={totalPages}
636
+ onChange={e => setTotalPages(Number(e.target.value))}
637
+ min="1"
638
+ style={{
639
+ width: '100%',
640
+ padding: '8px',
641
+ border: '1px solid #ddd',
642
+ borderRadius: '4px',
643
+ }}
644
+ placeholder={
645
+ fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
646
+ ? '仅用于显示'
647
+ : '输入总页数'
648
+ }
649
+ disabled={fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'}
650
+ />
651
+ </div>
652
+
653
+ <div>
654
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
655
+ {fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
656
+ ? '初始块 (initialPage) - 仅用于显示:'
657
+ : '初始页面 (initialPage):'}
658
+ </label>
659
+ <input
660
+ type="number"
661
+ value={initialPage}
662
+ onChange={e => setInitialPage(Number(e.target.value))}
663
+ min="1"
664
+ style={{
665
+ width: '100%',
666
+ padding: '8px',
667
+ border: '1px solid #ddd',
668
+ borderRadius: '4px',
669
+ }}
670
+ placeholder={
671
+ fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
672
+ ? '仅用于显示'
673
+ : '输入初始页面号'
674
+ }
675
+ disabled={fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'}
676
+ />
677
+ </div>
678
+
679
+ <div>
680
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
681
+ Authorization Token:
682
+ </label>
683
+ <input
684
+ type="text"
685
+ value={authorization}
686
+ onChange={e => setAuthorization(e.target.value)}
687
+ style={{
688
+ width: '100%',
689
+ padding: '8px',
690
+ border: '1px solid #ddd',
691
+ borderRadius: '4px',
692
+ }}
693
+ placeholder="输入Authorization token"
694
+ />
695
+ </div>
696
+
697
+ <div>
698
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
699
+ Stream API URL:
700
+ </label>
701
+ <input
702
+ type="text"
703
+ value={streamApiUrl}
704
+ onChange={e => setStreamApiUrl(e.target.value)}
705
+ style={{
706
+ width: '100%',
707
+ padding: '8px',
708
+ border: '1px solid #ddd',
709
+ borderRadius: '4px',
710
+ }}
711
+ placeholder="输入Stream API URL"
712
+ />
713
+ </div>
714
+
715
+ <div>
716
+ <label style={{ display: 'block', marginBottom: '5px', fontWeight: 'bold' }}>
717
+ {fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
718
+ ? '页面大小 (pageSize) - 仅PDF使用:'
719
+ : '页面大小 (pageSize):'}
720
+ </label>
721
+ <input
722
+ type="number"
723
+ value={pageSize}
724
+ onChange={e => setPageSize(Number(e.target.value))}
725
+ min="1"
726
+ style={{
727
+ width: '100%',
728
+ padding: '8px',
729
+ border: '1px solid #ddd',
730
+ borderRadius: '4px',
731
+ }}
732
+ placeholder={
733
+ fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
734
+ ? '仅PDF使用'
735
+ : '输入页面大小'
736
+ }
737
+ disabled={fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'}
738
+ />
739
+ </div>
740
+
741
+ <div style={{ marginBottom: '16px' }}>
742
+ <label style={{ display: 'block', marginBottom: '8px', fontWeight: 'bold' }}>
743
+ 初始缩放比例 (initialZoom):
744
+ </label>
745
+ <input
746
+ type="number"
747
+ value={initialZoom}
748
+ onChange={e => setInitialZoom(Number(e.target.value))}
749
+ min="0.1"
750
+ max="5"
751
+ step="0.1"
752
+ style={{
753
+ width: '100%',
754
+ padding: '8px',
755
+ border: '1px solid #ddd',
756
+ borderRadius: '4px',
757
+ }}
758
+ placeholder="输入初始缩放比例 (0.1-5.0)"
759
+ />
760
+ </div>
761
+
762
+ <button
763
+ onClick={() => setIsVisible(true)}
764
+ style={{
765
+ padding: '12px 24px',
766
+ backgroundColor: '#007bff',
767
+ color: 'white',
768
+ border: 'none',
769
+ borderRadius: '4px',
770
+ cursor: 'pointer',
771
+ fontSize: '16px',
772
+ fontWeight: 'bold',
773
+ }}
774
+ >
775
+ 开始测试{' '}
776
+ {fileType === 'markdown'
777
+ ? 'Markdown完整文件'
778
+ : fileType === 'markdown_table'
779
+ ? 'Markdown表格文件'
780
+ : fileType === 'html'
781
+ ? 'HTML文件'
782
+ : fileType === 'image'
783
+ ? '图片'
784
+ : 'PDF'}{' '}
785
+ Stream Reader
786
+ </button>
787
+ </div>
788
+
789
+ <div style={{ marginTop: '20px', textAlign: 'center', color: '#666' }}>
790
+ <p>
791
+ Stream模式:通过接口获取
792
+ {fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'html'
793
+ ? '完整的文件内容'
794
+ : '分页的PDF数据'}
795
+ </p>
796
+ <p>
797
+ {fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'html'
798
+ ? '支持完整文件渲染、缩放等功能'
799
+ : '支持页面导航、缩放等功能'}
800
+ </p>
801
+
802
+ {(fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'html') && (
803
+ <div
804
+ style={{
805
+ marginTop: '10px',
806
+ padding: '10px',
807
+ backgroundColor: '#e3f2fd',
808
+ borderRadius: '4px',
809
+ }}
810
+ >
811
+ <p style={{ margin: '0', fontSize: '14px' }}>
812
+ <strong>
813
+ {fileType === 'markdown_table'
814
+ ? 'Markdown表格'
815
+ : fileType === 'html'
816
+ ? 'HTML'
817
+ : 'Markdown'}推荐配置:
818
+ </strong>
819
+ <br />
820
+ 文件路径:
821
+ {fileType === 'html'
822
+ ? 'http://10.15.12.13:9000/dev-rag-data/demo/示例.html/V0/示例.html'
823
+ : 'http://10.15.12.13:9000/dev-rag-data/测试南自/服务发布专利具体步骤.md/V0/服务发布专利具体步骤.md'}
824
+ <br />
825
+ 总块数: 10 (仅用于显示,实际获取完整文件)
826
+ <br />
827
+ 注意: {fileType === 'markdown_table'
828
+ ? 'Markdown表格'
829
+ : fileType === 'html'
830
+ ? 'HTML'
831
+ : 'Markdown'}文件会获取完整内容,不支持分块加载
832
+ </p>
833
+ </div>
834
+ )}
835
+
836
+ {fileType === 'image' && (
837
+ <div
838
+ style={{
839
+ marginTop: '10px',
840
+ padding: '10px',
841
+ backgroundColor: '#fff3cd',
842
+ borderRadius: '4px',
843
+ }}
844
+ >
845
+ <p style={{ margin: '0', fontSize: '14px' }}>
846
+ <strong>图片推荐配置:</strong>
847
+ <br />
848
+ 文件路径: 例如 http://10.15.12.13:9000/dev-rag-data/demo/示例图片.png/V0/示例图片.png
849
+ <br />
850
+ 图片将以相同的接口请求方式获取(POST convertedFilePath),支持缩放与旋转
851
+ </p>
852
+ </div>
853
+ )}
854
+
855
+ {fileType === 'pdf' && (
856
+ <div
857
+ style={{
858
+ marginTop: '10px',
859
+ padding: '10px',
860
+ backgroundColor: '#f3e5f5',
861
+ borderRadius: '4px',
862
+ }}
863
+ >
864
+ <p style={{ margin: '0', fontSize: '14px' }}>
865
+ <strong>PDF推荐配置:</strong>
866
+ <br />
867
+ 文件路径:
868
+ http://10.15.12.13:9000/dev-rag-data/测试南自/中国电子规章制度汇编(2024版)-集团公司第二分册.pdf/V0/中国电子规章制度汇编(2024版)-集团公司第二分册.pdf
869
+ <br />
870
+ 总页数: 676, 页面大小: 5
871
+ </p>
872
+ </div>
873
+ )}
874
+
875
+ {fileType === 'text' && (
876
+ <div
877
+ style={{
878
+ marginTop: '10px',
879
+ padding: '10px',
880
+ backgroundColor: '#e8f5e8',
881
+ borderRadius: '4px',
882
+ }}
883
+ >
884
+ <p style={{ margin: '0', fontSize: '14px' }}>
885
+ <strong>文本文件推荐配置:</strong>
886
+ <br />
887
+ 文件路径: 例如 http://10.15.12.13:9000/dev-rag-data/测试南自/测试文档.txt/V0/测试文档.txt
888
+ <br />
889
+ 文本文件会获取完整内容,支持缩放,不支持分页
890
+ </p>
891
+ </div>
892
+ )}
893
+ </div>
894
+ </div>
895
+ );
896
+ }
897
+
898
+ return (
899
+ <div style={{ height: '80vh', width: '85vw' }}>
900
+ <GientechStreamReader
901
+ convertedFilePath={convertedFilePath}
902
+ fileName={fileName}
903
+ fileType={fileType}
904
+ initialPage={initialPage}
905
+ initialZoom={initialZoom} // 传递初始缩放比例
906
+ totalPages={totalPages} // 传递总页数/总块数
907
+ annotations={
908
+ fileType === 'markdown_table'
909
+ ? streamTableAnnotations
910
+ : fileType === 'markdown'
911
+ ? streamMDAnnotations
912
+ : fileType === 'html'
913
+ ? [] // HTML不需要标注
914
+ : streamAnnotations
915
+ }
916
+
917
+ authorization={authorization}
918
+ csrfToken={'csrfToken'}
919
+ streamApiUrl={streamApiUrl}
920
+ pageSize={fileType === 'pdf' ? pageSize : undefined} // 只有PDF模式才传递pageSize
921
+ eventsEmit={handleEventsEmit}
922
+ tools={{
923
+ close: true
924
+ }}
925
+ customComponents={{
926
+ LoadingComponent: CustomLoadingComponent,
927
+ ErrorComponent: CustomErrorComponent,
928
+ }}
929
+ />
930
+ <input
931
+ type="number"
932
+ value={pageO}
933
+ onChange={e => setPageO(Number(e.target.value))}
934
+ min="1"
935
+ style={{
936
+ width: '100%',
937
+ padding: '8px',
938
+ border: '1px solid #ddd',
939
+ borderRadius: '4px',
940
+ }}
941
+ placeholder={
942
+ fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'
943
+ ? '仅用于显示'
944
+ : '输入初始页面号'
945
+ }
946
+ disabled={fileType === 'markdown' || fileType === 'markdown_table' || fileType === 'image' || fileType === 'html' || fileType === 'text'}
947
+ />
948
+ <button onClick={()=>{setInitialPage(pageO)}}>跳转</button>
949
+ </div>
950
+ );
951
+ }