@mxmweb/aichat 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/assets/aichat.css +1 -0
  2. package/{dist/components → components}/AiChat.d.ts +1 -11
  3. package/{dist/index.js → index.js} +7 -7
  4. package/package.json +10 -41
  5. package/.editorconfig +0 -38
  6. package/.github/workflows/release.yml +0 -60
  7. package/.prettierignore +0 -16
  8. package/.prettierrc +0 -17
  9. package/.releaserc.json +0 -36
  10. package/CHANGELOG.md +0 -58
  11. package/CONTRIBUTING.md +0 -111
  12. package/NPMREADME.md +0 -215
  13. package/bash.exe.stackdump +0 -40
  14. package/components.json +0 -21
  15. package/demo.txt +0 -134
  16. package/dist/README.md +0 -216
  17. package/dist/assets/aichat.css +0 -1
  18. package/dist/package.json +0 -19
  19. package/eslint.config.js +0 -92
  20. package/index.html +0 -14
  21. package/postcss.config.cjs +0 -19
  22. package/public/icons/answerAwartar.png +0 -0
  23. package/public/icons/docx-file.png +0 -0
  24. package/public/icons/folder.png +0 -0
  25. package/public/icons/html.png +0 -0
  26. package/public/icons/image.png +0 -0
  27. package/public/icons/jpg-file.png +0 -0
  28. package/public/icons/json.png +0 -0
  29. package/public/icons/md.png +0 -0
  30. package/public/icons/pdf.png +0 -0
  31. package/public/icons/pptx.png +0 -0
  32. package/public/icons/questionAwartar.png +0 -0
  33. package/public/icons/sheets.png +0 -0
  34. package/public/icons/txt.png +0 -0
  35. package/public/icons/xlsx.png +0 -0
  36. package/public/libs/luckysheet/fontAwesome.otf +0 -0
  37. package/public/libs/luckysheet/fontawesome-webfont.eot +0 -0
  38. package/public/libs/luckysheet/fontawesome-webfont.svg +0 -2671
  39. package/public/libs/luckysheet/fontawesome-webfont.ttf +0 -0
  40. package/public/libs/luckysheet/fontawesome-webfont.woff +0 -0
  41. package/public/libs/luckysheet/fontawesome-webfont.woff2 +0 -0
  42. package/public/libs/luckysheet/fonts/fontawesome-webfont.ttf +0 -0
  43. package/public/libs/luckysheet/fonts/fontawesome-webfont.woff +0 -0
  44. package/public/libs/luckysheet/fonts/fontawesome-webfont.woff2 +0 -0
  45. package/public/libs/luckysheet/iconfont.css +0 -461
  46. package/public/libs/luckysheet/jquery.min.js +0 -2
  47. package/public/libs/luckysheet/luckysheet.css +0 -1
  48. package/public/libs/luckysheet/luckysheet.umd.js +0 -27
  49. package/public/libs/luckysheet/plugin.js +0 -1
  50. package/public/libs/luckysheet/plugins.css +0 -10
  51. package/public/libs/luckysheet/pluginsCss.css +0 -1
  52. package/public/vite.svg +0 -1
  53. package/public/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  54. package/public/vs/base/common/worker/simpleWorker.nls.de.js +0 -8
  55. package/public/vs/base/common/worker/simpleWorker.nls.es.js +0 -8
  56. package/public/vs/base/common/worker/simpleWorker.nls.fr.js +0 -8
  57. package/public/vs/base/common/worker/simpleWorker.nls.it.js +0 -8
  58. package/public/vs/base/common/worker/simpleWorker.nls.ja.js +0 -8
  59. package/public/vs/base/common/worker/simpleWorker.nls.js +0 -8
  60. package/public/vs/base/common/worker/simpleWorker.nls.ko.js +0 -8
  61. package/public/vs/base/common/worker/simpleWorker.nls.ru.js +0 -8
  62. package/public/vs/base/common/worker/simpleWorker.nls.zh-cn.js +0 -8
  63. package/public/vs/base/common/worker/simpleWorker.nls.zh-tw.js +0 -8
  64. package/public/vs/base/worker/workerMain.js +0 -27
  65. package/public/vs/basic-languages/abap/abap.js +0 -10
  66. package/public/vs/basic-languages/apex/apex.js +0 -10
  67. package/public/vs/basic-languages/azcli/azcli.js +0 -10
  68. package/public/vs/basic-languages/bat/bat.js +0 -10
  69. package/public/vs/basic-languages/bicep/bicep.js +0 -11
  70. package/public/vs/basic-languages/cameligo/cameligo.js +0 -10
  71. package/public/vs/basic-languages/clojure/clojure.js +0 -10
  72. package/public/vs/basic-languages/coffee/coffee.js +0 -10
  73. package/public/vs/basic-languages/cpp/cpp.js +0 -10
  74. package/public/vs/basic-languages/csharp/csharp.js +0 -10
  75. package/public/vs/basic-languages/csp/csp.js +0 -10
  76. package/public/vs/basic-languages/css/css.js +0 -12
  77. package/public/vs/basic-languages/cypher/cypher.js +0 -10
  78. package/public/vs/basic-languages/dart/dart.js +0 -10
  79. package/public/vs/basic-languages/dockerfile/dockerfile.js +0 -10
  80. package/public/vs/basic-languages/ecl/ecl.js +0 -10
  81. package/public/vs/basic-languages/elixir/elixir.js +0 -10
  82. package/public/vs/basic-languages/flow9/flow9.js +0 -10
  83. package/public/vs/basic-languages/freemarker2/freemarker2.js +0 -12
  84. package/public/vs/basic-languages/fsharp/fsharp.js +0 -10
  85. package/public/vs/basic-languages/go/go.js +0 -10
  86. package/public/vs/basic-languages/graphql/graphql.js +0 -10
  87. package/public/vs/basic-languages/handlebars/handlebars.js +0 -10
  88. package/public/vs/basic-languages/hcl/hcl.js +0 -10
  89. package/public/vs/basic-languages/html/html.js +0 -10
  90. package/public/vs/basic-languages/ini/ini.js +0 -10
  91. package/public/vs/basic-languages/java/java.js +0 -10
  92. package/public/vs/basic-languages/javascript/javascript.js +0 -10
  93. package/public/vs/basic-languages/julia/julia.js +0 -10
  94. package/public/vs/basic-languages/kotlin/kotlin.js +0 -10
  95. package/public/vs/basic-languages/less/less.js +0 -11
  96. package/public/vs/basic-languages/lexon/lexon.js +0 -10
  97. package/public/vs/basic-languages/liquid/liquid.js +0 -10
  98. package/public/vs/basic-languages/lua/lua.js +0 -10
  99. package/public/vs/basic-languages/m3/m3.js +0 -10
  100. package/public/vs/basic-languages/markdown/markdown.js +0 -10
  101. package/public/vs/basic-languages/mdx/mdx.js +0 -10
  102. package/public/vs/basic-languages/mips/mips.js +0 -10
  103. package/public/vs/basic-languages/msdax/msdax.js +0 -10
  104. package/public/vs/basic-languages/mysql/mysql.js +0 -10
  105. package/public/vs/basic-languages/objective-c/objective-c.js +0 -10
  106. package/public/vs/basic-languages/pascal/pascal.js +0 -10
  107. package/public/vs/basic-languages/pascaligo/pascaligo.js +0 -10
  108. package/public/vs/basic-languages/perl/perl.js +0 -10
  109. package/public/vs/basic-languages/pgsql/pgsql.js +0 -10
  110. package/public/vs/basic-languages/php/php.js +0 -10
  111. package/public/vs/basic-languages/pla/pla.js +0 -10
  112. package/public/vs/basic-languages/postiats/postiats.js +0 -10
  113. package/public/vs/basic-languages/powerquery/powerquery.js +0 -10
  114. package/public/vs/basic-languages/powershell/powershell.js +0 -10
  115. package/public/vs/basic-languages/protobuf/protobuf.js +0 -11
  116. package/public/vs/basic-languages/pug/pug.js +0 -10
  117. package/public/vs/basic-languages/python/python.js +0 -10
  118. package/public/vs/basic-languages/qsharp/qsharp.js +0 -10
  119. package/public/vs/basic-languages/r/r.js +0 -10
  120. package/public/vs/basic-languages/razor/razor.js +0 -10
  121. package/public/vs/basic-languages/redis/redis.js +0 -10
  122. package/public/vs/basic-languages/redshift/redshift.js +0 -10
  123. package/public/vs/basic-languages/restructuredtext/restructuredtext.js +0 -10
  124. package/public/vs/basic-languages/ruby/ruby.js +0 -10
  125. package/public/vs/basic-languages/rust/rust.js +0 -10
  126. package/public/vs/basic-languages/sb/sb.js +0 -10
  127. package/public/vs/basic-languages/scala/scala.js +0 -10
  128. package/public/vs/basic-languages/scheme/scheme.js +0 -10
  129. package/public/vs/basic-languages/scss/scss.js +0 -12
  130. package/public/vs/basic-languages/shell/shell.js +0 -10
  131. package/public/vs/basic-languages/solidity/solidity.js +0 -10
  132. package/public/vs/basic-languages/sophia/sophia.js +0 -10
  133. package/public/vs/basic-languages/sparql/sparql.js +0 -10
  134. package/public/vs/basic-languages/sql/sql.js +0 -10
  135. package/public/vs/basic-languages/st/st.js +0 -10
  136. package/public/vs/basic-languages/swift/swift.js +0 -13
  137. package/public/vs/basic-languages/systemverilog/systemverilog.js +0 -10
  138. package/public/vs/basic-languages/tcl/tcl.js +0 -10
  139. package/public/vs/basic-languages/twig/twig.js +0 -10
  140. package/public/vs/basic-languages/typescript/typescript.js +0 -10
  141. package/public/vs/basic-languages/vb/vb.js +0 -10
  142. package/public/vs/basic-languages/wgsl/wgsl.js +0 -307
  143. package/public/vs/basic-languages/xml/xml.js +0 -10
  144. package/public/vs/basic-languages/yaml/yaml.js +0 -10
  145. package/public/vs/editor/editor.main.css +0 -6
  146. package/public/vs/editor/editor.main.js +0 -745
  147. package/public/vs/editor/editor.main.js.gz +0 -0
  148. package/public/vs/editor/editor.main.nls.de.js +0 -31
  149. package/public/vs/editor/editor.main.nls.es.js +0 -31
  150. package/public/vs/editor/editor.main.nls.fr.js +0 -29
  151. package/public/vs/editor/editor.main.nls.it.js +0 -29
  152. package/public/vs/editor/editor.main.nls.ja.js +0 -31
  153. package/public/vs/editor/editor.main.nls.js +0 -29
  154. package/public/vs/editor/editor.main.nls.ko.js +0 -29
  155. package/public/vs/editor/editor.main.nls.ru.js +0 -31
  156. package/public/vs/editor/editor.main.nls.zh-cn.js +0 -31
  157. package/public/vs/editor/editor.main.nls.zh-tw.js +0 -29
  158. package/public/vs/language/css/cssMode.js +0 -13
  159. package/public/vs/language/css/cssWorker.js +0 -81
  160. package/public/vs/language/css/cssWorker.js.gz +0 -0
  161. package/public/vs/language/html/htmlMode.js +0 -13
  162. package/public/vs/language/html/htmlWorker.js +0 -453
  163. package/public/vs/language/json/jsonMode.js +0 -15
  164. package/public/vs/language/json/jsonWorker.js +0 -36
  165. package/public/vs/language/typescript/tsMode.js +0 -20
  166. package/public/vs/language/typescript/tsWorker.js +0 -37016
  167. package/public/vs/language/typescript/tsWorker.js.gz +0 -0
  168. package/public/vs/loader.js +0 -11
  169. package/public/worker/pdf.worker.min.js +0 -32
  170. package/src/HeadlessChat.tsx +0 -250
  171. package/src/LoginPage/components/Login/LoginBox/index.tsx +0 -103
  172. package/src/LoginPage/components/Login/RegisterBox/index.tsx +0 -181
  173. package/src/LoginPage/components/Login/index.tsx +0 -101
  174. package/src/LoginPage/index.tsx +0 -103
  175. package/src/LoginPage/useServices.ts +0 -53
  176. package/src/LoginPage/utils.ts +0 -42
  177. package/src/Preview.tsx +0 -278
  178. package/src/UseLogingHeadless.tsx +0 -238
  179. package/src/adopters/GientechChat/Conversations/Item.tsx +0 -132
  180. package/src/adopters/GientechChat/Conversations/List.tsx +0 -127
  181. package/src/adopters/GientechChat/Conversations/groupByTime.ts +0 -39
  182. package/src/adopters/GientechChat/Conversations/index.tsx +0 -102
  183. package/src/adopters/GientechChat/constants.tsx +0 -33
  184. package/src/adopters/GientechChat/index.tsx +0 -1242
  185. package/src/adopters/GientechChat/types.ts +0 -17
  186. package/src/adopters/HeadLessChat/constants.tsx +0 -32
  187. package/src/adopters/HeadLessChat/index.tsx +0 -1038
  188. package/src/adopters/HeadLessChat/types.ts +0 -23
  189. package/src/adopters/gientechCommon/components/AppError.tsx +0 -32
  190. package/src/adopters/gientechCommon/components/AppLoading.tsx +0 -75
  191. package/src/adopters/gientechCommon/components/DisplayError.tsx +0 -33
  192. package/src/adopters/gientechCommon/components/DisplayLoading.tsx +0 -38
  193. package/src/adopters/gientechCommon/components/FeedBackModal.tsx +0 -310
  194. package/src/adopters/gientechCommon/components/FileManager/index.tsx +0 -381
  195. package/src/adopters/gientechCommon/components/FileManager/style.css +0 -5
  196. package/src/adopters/gientechCommon/components/Messages/AiChatBox.tsx +0 -530
  197. package/src/adopters/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -245
  198. package/src/adopters/gientechCommon/components/Messages/ReferenceCard.tsx +0 -302
  199. package/src/adopters/gientechCommon/components/Messages/RetriveItem.tsx +0 -194
  200. package/src/adopters/gientechCommon/components/Messages/UserChatBox.tsx +0 -211
  201. package/src/adopters/gientechCommon/components/RenameModal.tsx +0 -75
  202. package/src/adopters/gientechCommon/components/style.less +0 -11
  203. package/src/adopters/gientechCommon/configs/commonConfig.ts +0 -2
  204. package/src/adopters/gientechCommon/configs/senderConfig.ts +0 -0
  205. package/src/adopters/gientechCommon/configs/stylesConfig.ts +0 -142
  206. package/src/adopters/gientechCommon/hooks/AichatUseController.tsx +0 -308
  207. package/src/adopters/gientechCommon/slate/converters/deserializers.ts +0 -757
  208. package/src/adopters/gientechCommon/slate/converters/mockData.ts +0 -232
  209. package/src/adopters/gientechCommon/slate/converters/slateConverters.ts +0 -258
  210. package/src/adopters/gientechCommon/slate/richElements/index.tsx +0 -476
  211. package/src/adopters/gientechCommon/utils/request.ts +0 -37
  212. package/src/adopters/gientechCommon/utils/serverFn.ts +0 -143
  213. package/src/assets/img/downArrow.png +0 -0
  214. package/src/assets/img/excel.png +0 -0
  215. package/src/assets/img/img.png +0 -0
  216. package/src/assets/img/pdf.png +0 -0
  217. package/src/assets/img/ppt.png +0 -0
  218. package/src/assets/img/txt.png +0 -0
  219. package/src/assets/img/word.png +0 -0
  220. package/src/assets/login/homeBg.png +0 -0
  221. package/src/assets/login/left.jpg +0 -0
  222. package/src/assets/login/logoImg.png +0 -0
  223. package/src/assets/style.css +0 -1
  224. package/src/components/AiChat.tsx +0 -647
  225. package/src/components/AiChat.types.tsx +0 -110
  226. package/src/components/DefaultAppError.tsx +0 -7
  227. package/src/components/DefaultAppLoading.tsx +0 -7
  228. package/src/components/DefaultDisplayError.tsx +0 -7
  229. package/src/components/DefaultDisplayLoading.tsx +0 -7
  230. package/src/components/DefaultNewChatWelcome.tsx +0 -10
  231. package/src/components/Displayer/DefaultAiChatBox.tsx +0 -64
  232. package/src/components/Displayer/DefaultUserChatBox.tsx +0 -34
  233. package/src/components/Displayer/index.tsx +0 -107
  234. package/src/components/Displayer/slate/converters/deserializers.ts +0 -427
  235. package/src/components/Displayer/slate/converters/mockData.ts +0 -190
  236. package/src/components/Displayer/slate/converters/slateConverters.ts +0 -258
  237. package/src/components/Displayer/slate/richElements/index.tsx +0 -308
  238. package/src/components/DrawerContent.tsx +0 -105
  239. package/src/components/DrawerPreview.tsx +0 -36
  240. package/src/components/DynamicForm.tsx +0 -29
  241. package/src/components/Loading.tsx +0 -0
  242. package/src/components/RetrieveTest/components/ChatInput.tsx +0 -198
  243. package/src/components/RetrieveTest/components/ChatMessage.tsx +0 -894
  244. package/src/components/RetrieveTest/components/ConfigPanel.tsx +0 -472
  245. package/src/components/RetrieveTest/components/RichTextEditor.tsx +0 -97
  246. package/src/components/RetrieveTest/components/VoiceInput.tsx +0 -257
  247. package/src/components/RetrieveTest/components/config/index.ts +0 -0
  248. package/src/components/RetrieveTest/components/converters/deserializers.ts +0 -393
  249. package/src/components/RetrieveTest/components/converters/mockData.ts +0 -190
  250. package/src/components/RetrieveTest/components/converters/slateConverters.ts +0 -164
  251. package/src/components/RetrieveTest/components/richElements/index.tsx +0 -339
  252. package/src/components/RetrieveTest/components/style.css +0 -3
  253. package/src/components/RetrieveTest/index.tsx +0 -679
  254. package/src/components/Sender/FileUpload.tsx +0 -76
  255. package/src/components/Sender/FilesDisplay.tsx +0 -103
  256. package/src/components/Sender/VoiceInput.tsx +0 -81
  257. package/src/components/Sender/contexts/BadgeContext.tsx +0 -36
  258. package/src/components/Sender/index.tsx +0 -545
  259. package/src/components/Sidebar/Loading.tsx +0 -0
  260. package/src/components/Sidebar/RetriveConfigPanel.tsx +0 -41
  261. package/src/components/Sidebar/useDynamicFormItems.tsx +0 -176
  262. package/src/components/SidebarProp.ts +0 -41
  263. package/src/components/common/FileCardCommon.tsx +0 -82
  264. package/src/components/defaultStyleSet.tsx +0 -142
  265. package/src/components/styles.config.ts +0 -4
  266. package/src/lib_enter.ts +0 -12
  267. package/src/main.tsx +0 -12
  268. package/src/mockForm.ts +0 -91
  269. package/src/servers/chatApi.ts +0 -43
  270. package/src/servers/fileApi.ts +0 -12
  271. package/src/servers/modelApi.ts +0 -19
  272. package/src/style.css +0 -22
  273. package/src/testj.js +0 -3
  274. package/src/type.d.ts +0 -0
  275. package/src/utils/commonFn.tsx +0 -111
  276. package/src/utils/index.tsx +0 -94
  277. package/src/vite-env.d.ts +0 -11
  278. package/tailwind.config.js +0 -18
  279. package/tsconfig.app.json +0 -29
  280. package/tsconfig.app.tsbuildinfo +0 -11
  281. package/tsconfig.json +0 -13
  282. package/tsconfig.node.json +0 -22
  283. package/tsconfig.node.tsbuildinfo +0 -1
  284. package/vite.config.ts +0 -138
  285. package/vite.config_mainapp.ts +0 -126
  286. /package/{dist/HeadlessChat.d.ts → HeadlessChat.d.ts} +0 -0
  287. /package/{dist/LoginPage → LoginPage}/components/Login/LoginBox/index.d.ts +0 -0
  288. /package/{dist/LoginPage → LoginPage}/components/Login/RegisterBox/index.d.ts +0 -0
  289. /package/{dist/LoginPage → LoginPage}/components/Login/index.d.ts +0 -0
  290. /package/{dist/LoginPage → LoginPage}/index.d.ts +0 -0
  291. /package/{dist/LoginPage → LoginPage}/useServices.d.ts +0 -0
  292. /package/{dist/LoginPage → LoginPage}/utils.d.ts +0 -0
  293. /package/{dist/Preview.d.ts → Preview.d.ts} +0 -0
  294. /package/{dist/UseLogingHeadless.d.ts → UseLogingHeadless.d.ts} +0 -0
  295. /package/{dist/adopters → adopters}/GientechChat/Conversations/Item.d.ts +0 -0
  296. /package/{dist/adopters → adopters}/GientechChat/Conversations/List.d.ts +0 -0
  297. /package/{dist/adopters → adopters}/GientechChat/Conversations/groupByTime.d.ts +0 -0
  298. /package/{dist/adopters → adopters}/GientechChat/Conversations/index.d.ts +0 -0
  299. /package/{dist/adopters → adopters}/GientechChat/constants.d.ts +0 -0
  300. /package/{dist/adopters → adopters}/GientechChat/index.d.ts +0 -0
  301. /package/{dist/adopters → adopters}/GientechChat/types.d.ts +0 -0
  302. /package/{dist/adopters → adopters}/HeadLessChat/constants.d.ts +0 -0
  303. /package/{dist/adopters → adopters}/HeadLessChat/index.d.ts +0 -0
  304. /package/{dist/adopters → adopters}/HeadLessChat/types.d.ts +0 -0
  305. /package/{dist/adopters → adopters}/gientechCommon/components/AppError.d.ts +0 -0
  306. /package/{dist/adopters → adopters}/gientechCommon/components/AppLoading.d.ts +0 -0
  307. /package/{dist/adopters → adopters}/gientechCommon/components/DisplayError.d.ts +0 -0
  308. /package/{dist/adopters → adopters}/gientechCommon/components/DisplayLoading.d.ts +0 -0
  309. /package/{dist/adopters → adopters}/gientechCommon/components/FeedBackModal.d.ts +0 -0
  310. /package/{dist/adopters → adopters}/gientechCommon/components/FileManager/index.d.ts +0 -0
  311. /package/{dist/adopters → adopters}/gientechCommon/components/Messages/AiChatBox.d.ts +0 -0
  312. /package/{dist/adopters → adopters}/gientechCommon/components/Messages/GientechNewChatWelcome.d.ts +0 -0
  313. /package/{dist/adopters → adopters}/gientechCommon/components/Messages/ReferenceCard.d.ts +0 -0
  314. /package/{dist/adopters → adopters}/gientechCommon/components/Messages/RetriveItem.d.ts +0 -0
  315. /package/{dist/adopters → adopters}/gientechCommon/components/Messages/UserChatBox.d.ts +0 -0
  316. /package/{dist/adopters → adopters}/gientechCommon/components/RenameModal.d.ts +0 -0
  317. /package/{dist/adopters → adopters}/gientechCommon/configs/commonConfig.d.ts +0 -0
  318. /package/{dist/adopters → adopters}/gientechCommon/configs/senderConfig.d.ts +0 -0
  319. /package/{dist/adopters → adopters}/gientechCommon/configs/stylesConfig.d.ts +0 -0
  320. /package/{dist/adopters → adopters}/gientechCommon/hooks/AichatUseController.d.ts +0 -0
  321. /package/{dist/adopters → adopters}/gientechCommon/slate/converters/deserializers.d.ts +0 -0
  322. /package/{dist/adopters → adopters}/gientechCommon/slate/converters/mockData.d.ts +0 -0
  323. /package/{dist/adopters → adopters}/gientechCommon/slate/converters/slateConverters.d.ts +0 -0
  324. /package/{dist/adopters → adopters}/gientechCommon/slate/richElements/index.d.ts +0 -0
  325. /package/{dist/adopters → adopters}/gientechCommon/utils/request.d.ts +0 -0
  326. /package/{dist/adopters → adopters}/gientechCommon/utils/serverFn.d.ts +0 -0
  327. /package/{dist/components → components}/AiChat.types.d.ts +0 -0
  328. /package/{dist/components → components}/DefaultAppError.d.ts +0 -0
  329. /package/{dist/components → components}/DefaultAppLoading.d.ts +0 -0
  330. /package/{dist/components → components}/DefaultDisplayError.d.ts +0 -0
  331. /package/{dist/components → components}/DefaultDisplayLoading.d.ts +0 -0
  332. /package/{dist/components → components}/DefaultNewChatWelcome.d.ts +0 -0
  333. /package/{dist/components → components}/Displayer/DefaultAiChatBox.d.ts +0 -0
  334. /package/{dist/components → components}/Displayer/DefaultUserChatBox.d.ts +0 -0
  335. /package/{dist/components → components}/Displayer/index.d.ts +0 -0
  336. /package/{dist/components → components}/Displayer/slate/converters/deserializers.d.ts +0 -0
  337. /package/{dist/components → components}/Displayer/slate/converters/mockData.d.ts +0 -0
  338. /package/{dist/components → components}/Displayer/slate/converters/slateConverters.d.ts +0 -0
  339. /package/{dist/components → components}/Displayer/slate/richElements/index.d.ts +0 -0
  340. /package/{dist/components → components}/DrawerContent.d.ts +0 -0
  341. /package/{dist/components → components}/DrawerPreview.d.ts +0 -0
  342. /package/{dist/components → components}/DynamicForm.d.ts +0 -0
  343. /package/{dist/components → components}/Loading.d.ts +0 -0
  344. /package/{dist/components → components}/RetrieveTest/components/ChatInput.d.ts +0 -0
  345. /package/{dist/components → components}/RetrieveTest/components/ChatMessage.d.ts +0 -0
  346. /package/{dist/components → components}/RetrieveTest/components/ConfigPanel.d.ts +0 -0
  347. /package/{dist/components → components}/RetrieveTest/components/RichTextEditor.d.ts +0 -0
  348. /package/{dist/components → components}/RetrieveTest/components/VoiceInput.d.ts +0 -0
  349. /package/{dist/components → components}/RetrieveTest/components/config/index.d.ts +0 -0
  350. /package/{dist/components → components}/RetrieveTest/components/converters/deserializers.d.ts +0 -0
  351. /package/{dist/components → components}/RetrieveTest/components/converters/mockData.d.ts +0 -0
  352. /package/{dist/components → components}/RetrieveTest/components/converters/slateConverters.d.ts +0 -0
  353. /package/{dist/components → components}/RetrieveTest/components/richElements/index.d.ts +0 -0
  354. /package/{dist/components → components}/RetrieveTest/index.d.ts +0 -0
  355. /package/{dist/components → components}/Sender/FileUpload.d.ts +0 -0
  356. /package/{dist/components → components}/Sender/FilesDisplay.d.ts +0 -0
  357. /package/{dist/components → components}/Sender/VoiceInput.d.ts +0 -0
  358. /package/{dist/components → components}/Sender/contexts/BadgeContext.d.ts +0 -0
  359. /package/{dist/components → components}/Sender/index.d.ts +0 -0
  360. /package/{dist/components → components}/Sidebar/Loading.d.ts +0 -0
  361. /package/{dist/components → components}/Sidebar/RetriveConfigPanel.d.ts +0 -0
  362. /package/{dist/components → components}/Sidebar/useDynamicFormItems.d.ts +0 -0
  363. /package/{dist/components → components}/SidebarProp.d.ts +0 -0
  364. /package/{dist/components → components}/common/FileCardCommon.d.ts +0 -0
  365. /package/{dist/components → components}/defaultStyleSet.d.ts +0 -0
  366. /package/{dist/components → components}/styles.config.d.ts +0 -0
  367. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  368. /package/{dist/icons → icons}/docx-file.png +0 -0
  369. /package/{dist/icons → icons}/folder.png +0 -0
  370. /package/{dist/icons → icons}/html.png +0 -0
  371. /package/{dist/icons → icons}/image.png +0 -0
  372. /package/{dist/icons → icons}/jpg-file.png +0 -0
  373. /package/{dist/icons → icons}/json.png +0 -0
  374. /package/{dist/icons → icons}/md.png +0 -0
  375. /package/{dist/icons → icons}/pdf.png +0 -0
  376. /package/{dist/icons → icons}/pptx.png +0 -0
  377. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  378. /package/{dist/icons → icons}/sheets.png +0 -0
  379. /package/{dist/icons → icons}/txt.png +0 -0
  380. /package/{dist/icons → icons}/xlsx.png +0 -0
  381. /package/{dist/index.d.ts → index.d.ts} +0 -0
  382. /package/{dist/lib_enter.d.ts → lib_enter.d.ts} +0 -0
  383. /package/{dist/libs → libs}/luckysheet/fontAwesome.otf +0 -0
  384. /package/{dist/libs → libs}/luckysheet/fontawesome-webfont.eot +0 -0
  385. /package/{dist/libs → libs}/luckysheet/fontawesome-webfont.svg +0 -0
  386. /package/{dist/libs → libs}/luckysheet/fontawesome-webfont.ttf +0 -0
  387. /package/{dist/libs → libs}/luckysheet/fontawesome-webfont.woff +0 -0
  388. /package/{dist/libs → libs}/luckysheet/fontawesome-webfont.woff2 +0 -0
  389. /package/{dist/libs → libs}/luckysheet/fonts/fontawesome-webfont.ttf +0 -0
  390. /package/{dist/libs → libs}/luckysheet/fonts/fontawesome-webfont.woff +0 -0
  391. /package/{dist/libs → libs}/luckysheet/fonts/fontawesome-webfont.woff2 +0 -0
  392. /package/{dist/libs → libs}/luckysheet/iconfont.css +0 -0
  393. /package/{dist/libs → libs}/luckysheet/jquery.min.js +0 -0
  394. /package/{dist/libs → libs}/luckysheet/luckysheet.css +0 -0
  395. /package/{dist/libs → libs}/luckysheet/luckysheet.umd.js +0 -0
  396. /package/{dist/libs → libs}/luckysheet/plugin.js +0 -0
  397. /package/{dist/libs → libs}/luckysheet/plugins.css +0 -0
  398. /package/{dist/libs → libs}/luckysheet/pluginsCss.css +0 -0
  399. /package/{dist/main.d.ts → main.d.ts} +0 -0
  400. /package/{dist/mockForm.d.ts → mockForm.d.ts} +0 -0
  401. /package/{dist/servers → servers}/chatApi.d.ts +0 -0
  402. /package/{dist/servers → servers}/fileApi.d.ts +0 -0
  403. /package/{dist/servers → servers}/modelApi.d.ts +0 -0
  404. /package/{dist/utils → utils}/commonFn.d.ts +0 -0
  405. /package/{dist/utils → utils}/index.d.ts +0 -0
  406. /package/{dist/vite.svg → vite.svg} +0 -0
  407. /package/{dist/vs → vs}/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  408. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.de.js +0 -0
  409. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.es.js +0 -0
  410. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.fr.js +0 -0
  411. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.it.js +0 -0
  412. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.ja.js +0 -0
  413. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.js +0 -0
  414. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.ko.js +0 -0
  415. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.ru.js +0 -0
  416. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.zh-cn.js +0 -0
  417. /package/{dist/vs → vs}/base/common/worker/simpleWorker.nls.zh-tw.js +0 -0
  418. /package/{dist/vs → vs}/base/worker/workerMain.js +0 -0
  419. /package/{dist/vs → vs}/basic-languages/abap/abap.js +0 -0
  420. /package/{dist/vs → vs}/basic-languages/apex/apex.js +0 -0
  421. /package/{dist/vs → vs}/basic-languages/azcli/azcli.js +0 -0
  422. /package/{dist/vs → vs}/basic-languages/bat/bat.js +0 -0
  423. /package/{dist/vs → vs}/basic-languages/bicep/bicep.js +0 -0
  424. /package/{dist/vs → vs}/basic-languages/cameligo/cameligo.js +0 -0
  425. /package/{dist/vs → vs}/basic-languages/clojure/clojure.js +0 -0
  426. /package/{dist/vs → vs}/basic-languages/coffee/coffee.js +0 -0
  427. /package/{dist/vs → vs}/basic-languages/cpp/cpp.js +0 -0
  428. /package/{dist/vs → vs}/basic-languages/csharp/csharp.js +0 -0
  429. /package/{dist/vs → vs}/basic-languages/csp/csp.js +0 -0
  430. /package/{dist/vs → vs}/basic-languages/css/css.js +0 -0
  431. /package/{dist/vs → vs}/basic-languages/cypher/cypher.js +0 -0
  432. /package/{dist/vs → vs}/basic-languages/dart/dart.js +0 -0
  433. /package/{dist/vs → vs}/basic-languages/dockerfile/dockerfile.js +0 -0
  434. /package/{dist/vs → vs}/basic-languages/ecl/ecl.js +0 -0
  435. /package/{dist/vs → vs}/basic-languages/elixir/elixir.js +0 -0
  436. /package/{dist/vs → vs}/basic-languages/flow9/flow9.js +0 -0
  437. /package/{dist/vs → vs}/basic-languages/freemarker2/freemarker2.js +0 -0
  438. /package/{dist/vs → vs}/basic-languages/fsharp/fsharp.js +0 -0
  439. /package/{dist/vs → vs}/basic-languages/go/go.js +0 -0
  440. /package/{dist/vs → vs}/basic-languages/graphql/graphql.js +0 -0
  441. /package/{dist/vs → vs}/basic-languages/handlebars/handlebars.js +0 -0
  442. /package/{dist/vs → vs}/basic-languages/hcl/hcl.js +0 -0
  443. /package/{dist/vs → vs}/basic-languages/html/html.js +0 -0
  444. /package/{dist/vs → vs}/basic-languages/ini/ini.js +0 -0
  445. /package/{dist/vs → vs}/basic-languages/java/java.js +0 -0
  446. /package/{dist/vs → vs}/basic-languages/javascript/javascript.js +0 -0
  447. /package/{dist/vs → vs}/basic-languages/julia/julia.js +0 -0
  448. /package/{dist/vs → vs}/basic-languages/kotlin/kotlin.js +0 -0
  449. /package/{dist/vs → vs}/basic-languages/less/less.js +0 -0
  450. /package/{dist/vs → vs}/basic-languages/lexon/lexon.js +0 -0
  451. /package/{dist/vs → vs}/basic-languages/liquid/liquid.js +0 -0
  452. /package/{dist/vs → vs}/basic-languages/lua/lua.js +0 -0
  453. /package/{dist/vs → vs}/basic-languages/m3/m3.js +0 -0
  454. /package/{dist/vs → vs}/basic-languages/markdown/markdown.js +0 -0
  455. /package/{dist/vs → vs}/basic-languages/mdx/mdx.js +0 -0
  456. /package/{dist/vs → vs}/basic-languages/mips/mips.js +0 -0
  457. /package/{dist/vs → vs}/basic-languages/msdax/msdax.js +0 -0
  458. /package/{dist/vs → vs}/basic-languages/mysql/mysql.js +0 -0
  459. /package/{dist/vs → vs}/basic-languages/objective-c/objective-c.js +0 -0
  460. /package/{dist/vs → vs}/basic-languages/pascal/pascal.js +0 -0
  461. /package/{dist/vs → vs}/basic-languages/pascaligo/pascaligo.js +0 -0
  462. /package/{dist/vs → vs}/basic-languages/perl/perl.js +0 -0
  463. /package/{dist/vs → vs}/basic-languages/pgsql/pgsql.js +0 -0
  464. /package/{dist/vs → vs}/basic-languages/php/php.js +0 -0
  465. /package/{dist/vs → vs}/basic-languages/pla/pla.js +0 -0
  466. /package/{dist/vs → vs}/basic-languages/postiats/postiats.js +0 -0
  467. /package/{dist/vs → vs}/basic-languages/powerquery/powerquery.js +0 -0
  468. /package/{dist/vs → vs}/basic-languages/powershell/powershell.js +0 -0
  469. /package/{dist/vs → vs}/basic-languages/protobuf/protobuf.js +0 -0
  470. /package/{dist/vs → vs}/basic-languages/pug/pug.js +0 -0
  471. /package/{dist/vs → vs}/basic-languages/python/python.js +0 -0
  472. /package/{dist/vs → vs}/basic-languages/qsharp/qsharp.js +0 -0
  473. /package/{dist/vs → vs}/basic-languages/r/r.js +0 -0
  474. /package/{dist/vs → vs}/basic-languages/razor/razor.js +0 -0
  475. /package/{dist/vs → vs}/basic-languages/redis/redis.js +0 -0
  476. /package/{dist/vs → vs}/basic-languages/redshift/redshift.js +0 -0
  477. /package/{dist/vs → vs}/basic-languages/restructuredtext/restructuredtext.js +0 -0
  478. /package/{dist/vs → vs}/basic-languages/ruby/ruby.js +0 -0
  479. /package/{dist/vs → vs}/basic-languages/rust/rust.js +0 -0
  480. /package/{dist/vs → vs}/basic-languages/sb/sb.js +0 -0
  481. /package/{dist/vs → vs}/basic-languages/scala/scala.js +0 -0
  482. /package/{dist/vs → vs}/basic-languages/scheme/scheme.js +0 -0
  483. /package/{dist/vs → vs}/basic-languages/scss/scss.js +0 -0
  484. /package/{dist/vs → vs}/basic-languages/shell/shell.js +0 -0
  485. /package/{dist/vs → vs}/basic-languages/solidity/solidity.js +0 -0
  486. /package/{dist/vs → vs}/basic-languages/sophia/sophia.js +0 -0
  487. /package/{dist/vs → vs}/basic-languages/sparql/sparql.js +0 -0
  488. /package/{dist/vs → vs}/basic-languages/sql/sql.js +0 -0
  489. /package/{dist/vs → vs}/basic-languages/st/st.js +0 -0
  490. /package/{dist/vs → vs}/basic-languages/swift/swift.js +0 -0
  491. /package/{dist/vs → vs}/basic-languages/systemverilog/systemverilog.js +0 -0
  492. /package/{dist/vs → vs}/basic-languages/tcl/tcl.js +0 -0
  493. /package/{dist/vs → vs}/basic-languages/twig/twig.js +0 -0
  494. /package/{dist/vs → vs}/basic-languages/typescript/typescript.js +0 -0
  495. /package/{dist/vs → vs}/basic-languages/vb/vb.js +0 -0
  496. /package/{dist/vs → vs}/basic-languages/wgsl/wgsl.js +0 -0
  497. /package/{dist/vs → vs}/basic-languages/xml/xml.js +0 -0
  498. /package/{dist/vs → vs}/basic-languages/yaml/yaml.js +0 -0
  499. /package/{dist/vs → vs}/editor/editor.main.css +0 -0
  500. /package/{dist/vs → vs}/editor/editor.main.js +0 -0
  501. /package/{dist/vs → vs}/editor/editor.main.js.gz +0 -0
  502. /package/{dist/vs → vs}/editor/editor.main.nls.de.js +0 -0
  503. /package/{dist/vs → vs}/editor/editor.main.nls.es.js +0 -0
  504. /package/{dist/vs → vs}/editor/editor.main.nls.fr.js +0 -0
  505. /package/{dist/vs → vs}/editor/editor.main.nls.it.js +0 -0
  506. /package/{dist/vs → vs}/editor/editor.main.nls.ja.js +0 -0
  507. /package/{dist/vs → vs}/editor/editor.main.nls.js +0 -0
  508. /package/{dist/vs → vs}/editor/editor.main.nls.ko.js +0 -0
  509. /package/{dist/vs → vs}/editor/editor.main.nls.ru.js +0 -0
  510. /package/{dist/vs → vs}/editor/editor.main.nls.zh-cn.js +0 -0
  511. /package/{dist/vs → vs}/editor/editor.main.nls.zh-tw.js +0 -0
  512. /package/{dist/vs → vs}/language/css/cssMode.js +0 -0
  513. /package/{dist/vs → vs}/language/css/cssWorker.js +0 -0
  514. /package/{dist/vs → vs}/language/css/cssWorker.js.gz +0 -0
  515. /package/{dist/vs → vs}/language/html/htmlMode.js +0 -0
  516. /package/{dist/vs → vs}/language/html/htmlWorker.js +0 -0
  517. /package/{dist/vs → vs}/language/json/jsonMode.js +0 -0
  518. /package/{dist/vs → vs}/language/json/jsonWorker.js +0 -0
  519. /package/{dist/vs → vs}/language/typescript/tsMode.js +0 -0
  520. /package/{dist/vs → vs}/language/typescript/tsWorker.js +0 -0
  521. /package/{dist/vs → vs}/language/typescript/tsWorker.js.gz +0 -0
  522. /package/{dist/vs → vs}/loader.js +0 -0
  523. /package/{dist/worker → worker}/pdf.worker.min.js +0 -0
@@ -1,894 +0,0 @@
1
- import React, { useEffect, useRef, useState, useMemo } from 'react';
2
- import { ConfigProvider, Drawer, Tabs } from 'antd';
3
- import { RobotOutlined, CodeOutlined, ApiOutlined, SettingOutlined } from '@ant-design/icons';
4
- import { createEditor, Descendant, leaf, Element as SlateElement } from 'slate';
5
- import { Slate, Editable, withReact } from 'slate-react';
6
- import { deserializeMarkdown } from './converters/deserializers';
7
- import { renderElement, renderLeaf } from './richElements';
8
-
9
- import FileViewer, { registerPDFWorker } from '@mxmweb/file-viewer';
10
- registerPDFWorker('/worker/pdf.worker1.min.js');
11
- import { Modal } from 'antd';
12
- import {
13
- dealMinioUrl,
14
- FILEIMG,
15
- FileModalSize,
16
- getMarkExcludeType,
17
- isImage,
18
- TempBaseUrl,
19
- } from '@root/src/core/helps';
20
- import { FileItem } from '@root/src/components/FileItem';
21
- import { Code, Settings, Zap, ChevronDown, ChevronUp } from 'lucide-react';
22
- import { DrawerContent } from '@root/src/components/AiChat/components/ChatDisplayer/components/DrawerContent';
23
-
24
- interface ChatMessageProps {
25
- type: 'user' | 'ai';
26
- time: string;
27
- content: any;
28
- hasLLMConfig?: boolean;
29
- retrievedChunks?: Array<{ [key: string]: any }>;
30
- prompt?: string;
31
- configInfo?: {
32
- textChunks: number;
33
- topP: number;
34
- topN: number;
35
- denseWeight: number;
36
- enableKG: boolean;
37
- enableRerank: boolean;
38
- model: string;
39
- temperature?: number;
40
- diversity?: number;
41
- maxTokens?: number;
42
- recallModel: string;
43
- llmModel: string;
44
- respTime?: number;
45
- tokens?: number;
46
- search_type?: string | string[];
47
- search_policy?: string;
48
- };
49
- streaming?: boolean;
50
- isLatest?: boolean;
51
- finished?: boolean;
52
- }
53
-
54
- // 扩展富文本元素类型
55
- type CustomText = {
56
- text: string;
57
- bold?: boolean;
58
- italic?: boolean;
59
- underline?: boolean;
60
- code?: boolean;
61
- };
62
-
63
- interface BaseElement {
64
- type: string;
65
- children: (CustomText | CustomElement)[];
66
- url?: string;
67
- align?: 'left' | 'center' | 'right';
68
- }
69
-
70
- interface ParagraphElement extends BaseElement {
71
- type: 'paragraph';
72
- }
73
-
74
- interface HeadingElement extends BaseElement {
75
- type: 'heading-one' | 'heading-two';
76
- }
77
-
78
- interface ListElement extends BaseElement {
79
- type: 'bulleted-list' | 'numbered-list';
80
- }
81
-
82
- interface ListItemElement extends BaseElement {
83
- type: 'list-item';
84
- }
85
-
86
- interface TableElement extends BaseElement {
87
- type: 'table';
88
- }
89
-
90
- interface TableRowElement extends BaseElement {
91
- type: 'table-row';
92
- }
93
-
94
- interface TableCellElement extends BaseElement {
95
- type: 'table-cell';
96
- }
97
-
98
- interface ImageElement extends BaseElement {
99
- type: 'image';
100
- url: string;
101
- }
102
-
103
- type CustomElement =
104
- | ParagraphElement
105
- | HeadingElement
106
- | ListElement
107
- | ListItemElement
108
- | TableElement
109
- | TableRowElement
110
- | TableCellElement
111
- | ImageElement;
112
-
113
- // 检索策略映射
114
- const searchPolicyMap: Record<string, string> = {
115
- '1': '混合检索',
116
- '2': '全文检索',
117
- '3': '语义检索',
118
- 混合检索: '混合检索',
119
- 全文检索: '全文检索',
120
- 语义检索: '语义检索',
121
- };
122
-
123
- interface ChunkCardProps {
124
- chunk: any;
125
- index: number;
126
- editor: any;
127
- customRenderElement: any;
128
- customRenderLeaf: any;
129
- deserializeMarkdown: (md: string) => any;
130
- TempBaseUrl: string;
131
- isImage: (type: string) => boolean;
132
- getType: (source: string) => string;
133
- getName: (source: string) => string;
134
- messagesEndRef: React.RefObject<HTMLDivElement>;
135
- }
136
-
137
- // 深比较函数
138
- function deepEqual(a: any, b: any) {
139
- return JSON.stringify(a) === JSON.stringify(b);
140
- }
141
-
142
- // 自定义useDeepCompareMemo
143
- function useDeepCompareMemo<T>(factory: () => T, deps: any[]): T {
144
- const ref = useRef<{ deps: any[]; value: T }>();
145
- if (!ref.current || !deepEqual(ref.current.deps, deps)) {
146
- ref.current = { deps, value: factory() };
147
- }
148
- return ref.current.value;
149
- }
150
-
151
- export function ChatMessage({
152
- type,
153
- time,
154
- content,
155
- hasLLMConfig = true,
156
- retrievedChunks = [],
157
- prompt,
158
- configInfo,
159
- }: ChatMessageProps) {
160
- const [open, setOpen] = useState(false);
161
- const [drawerContent, setDrawerContent] = useState<{
162
- file_source: string;
163
- contents: any[];
164
- curMark: string;
165
- file_type: string;
166
- title: string;
167
- } | null>(null);
168
- useEffect(() => {
169
- console.log('retrievedChunks', retrievedChunks);
170
- }, [retrievedChunks]);
171
- const [slateContent, setSlateContent] = useState<Descendant[]>(() =>
172
- deserializeMarkdown(content)
173
- );
174
- const editor = useRef(withReact(createEditor()));
175
- const [pdfUrl, setPdfUrl] = useState<string | null>(null);
176
- const [showViewer, setShowViewer] = useState(false);
177
- const [activeTabKey, setActiveTabKey] = useState('1');
178
- const [autoScroll, setAutoScroll] = useState(true);
179
- const messagesEndRef = useRef<HTMLDivElement>(null);
180
- const callContainerRef = useRef<HTMLDivElement>(null);
181
-
182
- useEffect(() => {
183
- setSlateContent(deserializeMarkdown(typeof content === 'string' ? content : ''));
184
- }, [content]);
185
-
186
- // 生成与 retrievedChunks 数量一致的 editor 实例数组
187
- const editors = useMemo(
188
- () => (retrievedChunks || []).map(() => withReact(createEditor())),
189
- [retrievedChunks?.length]
190
- );
191
-
192
- // 格式化检索块为字符串
193
- const formattedChunks = retrievedChunks
194
- .map((chunk, index) => `[${index + 1}] ${chunk.content}`)
195
- .join('\n\n');
196
-
197
- // leaf/attributes 兼容新版 retrive-tag 回调
198
- const handleRetriveTagClick = (leaf: any, attributes: any) => {
199
- // 你可以根据 leaf.text 或 leaf.id 做业务处理
200
- // 这里假设 leaf.text 是 order_num
201
- const match = retrievedChunks.find(chunk => {
202
- return String(chunk.order_num) === String(leaf.id);
203
- });
204
- console.log('match:', match);
205
- // if (
206
- // match &&
207
- // match.parsedFilePath &&
208
- // match.parsedFilePath.endsWith(".pdf")
209
- // ) {
210
- // setPdfUrl((dealMinioUrl(match?.parsedFilePath) as string) || "");
211
- // setShowViewer(true);
212
- // }
213
-
214
- if (match && match.metadata) {
215
- const { metadata, parsedFilePath } = match;
216
- if (!metadata) return;
217
- const { source } = metadata;
218
- const fileParts = source.split('.');
219
- const label = fileParts.slice(0, -1).join('.') || 'Unknown Label';
220
- const file_type = fileParts[fileParts.length - 1] || 'Unknown Type';
221
- setDrawerContent({
222
- file_source: getMarkExcludeType(file_type) ? `${metadata.source}` : parsedFilePath,
223
- contents: [{ mark: '1', metadata }],
224
- curMark: '1',
225
- file_type,
226
- title: label,
227
- });
228
- setOpen(true);
229
- }
230
- // 你可以在这里暴露更多自定义逻辑
231
- // 比如弹窗、跳转、通知父组件等
232
- // console.log('retrive tag click:', leaf, attributes, match);
233
- };
234
-
235
- const handleClose = () => {
236
- setShowViewer(false);
237
- setPdfUrl(null);
238
- };
239
-
240
- // 高阶函数传递回调
241
- const customRenderElement = (props: any) =>
242
- renderElement({ ...props, onRetriveTagClick: handleRetriveTagClick });
243
-
244
- // 高阶函数传递回调给 renderLeaf
245
- const customRenderLeaf = (props: any) =>
246
- renderLeaf({ ...props, onRetriveTagClick: handleRetriveTagClick });
247
-
248
- // 解析 search_type 为数组
249
- let searchTypes: string[] = [];
250
- if (Array.isArray(configInfo?.search_type)) {
251
- searchTypes = configInfo.search_type;
252
- } else if (typeof configInfo?.search_type === 'string') {
253
- try {
254
- searchTypes = JSON.parse(configInfo.search_type);
255
- if (!Array.isArray(searchTypes)) {
256
- searchTypes = configInfo.search_type.split(',').map((s: string) => s.trim());
257
- }
258
- } catch {
259
- searchTypes = configInfo.search_type.split(',').map((s: string) => s.trim());
260
- }
261
- }
262
-
263
- if (type === 'user') {
264
- return (
265
- <div className="flex items-start mb-6 animate-fadeIn w-full text-wrap">
266
- <div className="w-10 h-10 rounded-full bg-gradient-to-r from-blue-400 to-blue-500 flex items-center justify-center mr-3 shadow-sm">
267
- <span className="text-white text-sm">用</span>
268
- </div>
269
- <div className="flex-1">
270
- <div className="flex-col">
271
- <div className="text-xs text-gray-400 mb-1">{time}</div>
272
- <div className="bg-gradient-to-r from-blue-50 to-blue-100 rounded-lg p-4 inline-block max-w-[80%] shadow-sm">
273
- <span className="text-gray-700">{content}</span>
274
- </div>
275
- </div>
276
- </div>
277
- </div>
278
- );
279
- }
280
-
281
- const getName = (source: string) => {
282
- const arr = source.split('/');
283
- return arr[arr.length - 1];
284
- };
285
-
286
- const getType = (source: string) => {
287
- const arr = source.split('.');
288
- return arr[arr.length - 1];
289
- };
290
-
291
- const sourceFile = useDeepCompareMemo(() => {
292
- if (retrievedChunks && Array.isArray(retrievedChunks)) {
293
- const seen = new Set<string>();
294
- return retrievedChunks.filter(chunk => {
295
- const source = chunk?.metadata?.source;
296
- if (!source || seen.has(source)) return false;
297
- seen.add(source);
298
- return true;
299
- });
300
- }
301
- return [];
302
- }, [retrievedChunks]);
303
-
304
- // 单独的ChunkCard子组件,管理自己的hooks
305
- function ChunkCard({
306
- chunk,
307
- index,
308
- editor,
309
- customRenderElement,
310
- customRenderLeaf,
311
- deserializeMarkdown,
312
- TempBaseUrl,
313
- isImage,
314
- getType,
315
- getName,
316
- messagesEndRef,
317
- }: ChunkCardProps) {
318
- const [expanded, setExpanded] = useState(false);
319
- const contentRef = useRef<HTMLDivElement>(null);
320
- const [showExpand, setShowExpand] = useState(false);
321
- useEffect(() => {
322
- const timer = setTimeout(() => {
323
- if (contentRef.current) {
324
- setShowExpand(contentRef.current.scrollHeight > 60);
325
- }
326
- }, 0);
327
- return () => clearTimeout(timer);
328
- }, [chunk.page_content, chunk.type, expanded]);
329
- return (
330
- <div
331
- key={index}
332
- className="bg-gradient-to-r w-full from-gray-50 to-white rounded-lg p-4 border border-gray-100 shadow-sm transition-all hover:shadow-md"
333
- >
334
- <div className="flex-col items-center justify-between mb-3">
335
- <div className="text-sm font-medium text-gray-700 flex items-center">
336
- <span className="w-2 h-2 rounded-full bg-blue-400 mr-2"></span>
337
- 召回片段 {index + 1}
338
- </div>
339
- </div>
340
- <div className="flex pb-2 flex-col items-start pt-4 text-xs space-y-2">
341
- <div className="flex items-center mb-2 mt-2">
342
- <span className="inline-block w-1 h-4 bg-blue-500 rounded-sm mr-2"></span>
343
- <span className="text-gray-900 text-[14px] font-semibold tracking-wide opacity-75">
344
- chunk信息
345
- </span>
346
- </div>
347
- {/* 分数标签组 */}
348
- <div className="w-auto overflow-x-auto">
349
- <table className=" border-collapse text-xs text-gray-700">
350
- <tbody>
351
- <tr className="text-gray-300">
352
- <td className="border-b border-gray-200 px-3 py-1 whitespace-nowrap text-center">
353
- 召回位置
354
- </td>
355
- <td className="border-b border-gray-200 px-3 py-1 whitespace-nowrap text-center">
356
- 召回得分
357
- </td>
358
- <td className="border-b border-gray-200 px-3 py-1 whitespace-nowrap text-center">
359
- 重排位置
360
- </td>
361
- <td className="border-b border-gray-200 px-3 py-1 whitespace-nowrap text-center">
362
- 重排得分
363
- </td>
364
- <td className="border-b border-gray-200 px-3 py-1 whitespace-nowrap text-center">
365
- 索引来源
366
- </td>
367
- </tr>
368
- <tr className="text-gray-800 font-semibold">
369
- <td className="border-r border-gray-200 px-3 py-1 whitespace-nowrap text-center">
370
- {chunk.rrf_score_rank ? Number(chunk.rrf_score_rank) : '-'}
371
- </td>
372
- <td className="border-r border-gray-200 px-3 py-1 whitespace-nowrap text-center">
373
- {chunk.rrf_score ? Number(chunk.rrf_score).toFixed(3) : '-'}
374
- </td>
375
- <td className="border-r border-gray-200 px-3 py-1 whitespace-nowrap text-center">
376
- {chunk.rerank_score_rank ? Number(chunk.rerank_score_rank) : '-'}
377
- </td>
378
- <td className="border-r border-gray-200 px-3 py-1 px-3 py-1 whitespace-nowrap text-center">
379
- {chunk.score ? Number(chunk.score).toFixed(3) : '-'}
380
- </td>
381
- <td className="px-3 py-1 whitespace-nowrap text-center">
382
- {chunk.metadata.search_type.map((type: string, idx: number) => (
383
- <span
384
- key={type + idx}
385
- className="block border border-gray-200 text-gray-700 px-2 py-0.5 text-xs"
386
- >
387
- {type}
388
- </span>
389
- ))}
390
- </td>
391
- </tr>
392
- </tbody>
393
- </table>
394
- </div>
395
- </div>
396
- {/* 内容区域按类型渲染 */}
397
- <div className="text-gray-800 leading-relaxed">
398
- <div className="flex items-center mb-2 mt-2">
399
- <span className="inline-block w-1 h-4 bg-green-500 rounded-sm mr-2"></span>
400
- <span className="text-gray-900 text-[14px] font-semibold tracking-wide opacity-75">
401
- chunk内容
402
- </span>
403
- </div>
404
- <div
405
- ref={contentRef}
406
- style={{
407
- maxHeight: expanded ? 'none' : '60px',
408
- overflow: expanded ? 'visible' : 'hidden',
409
- position: 'relative',
410
- transition: 'max-height 0.3s',
411
- }}
412
- >
413
- {chunk.type === 'image' ? (
414
- (() => {
415
- const imagePath = chunk.metadata?.image_path;
416
- return imagePath ? (
417
- <img
418
- src={imagePath}
419
- alt={`图片片段${index + 1}`}
420
- style={{
421
- maxWidth: 240,
422
- maxHeight: 180,
423
- borderRadius: 6,
424
- border: '1px solid #eee',
425
- cursor: 'pointer',
426
- }}
427
- onClick={() => window.open(imagePath, '_blank')}
428
- />
429
- ) : (
430
- <span style={{ color: '#aaa' }}>无图片</span>
431
- );
432
- })()
433
- ) : chunk.type === 'table' ? (
434
- <div style={{ minWidth: 400, overflowX: 'auto' }}>
435
- <Slate
436
- editor={editor}
437
- initialValue={deserializeMarkdown(chunk.page_content || '')}
438
- key={JSON.stringify(deserializeMarkdown(chunk.page_content || ''))}
439
- onChange={() => {}}
440
- >
441
- <Editable
442
- readOnly
443
- renderElement={customRenderElement}
444
- renderLeaf={customRenderLeaf}
445
- className="min-h-[30px] p-2 rounded border border-gray-50 bg-white"
446
- />
447
- </Slate>
448
- </div>
449
- ) : (
450
- <Slate
451
- editor={editor}
452
- initialValue={deserializeMarkdown(chunk.page_content || '')}
453
- key={JSON.stringify(deserializeMarkdown(chunk.page_content || ''))}
454
- onChange={() => {}}
455
- >
456
- <Editable
457
- readOnly
458
- renderElement={customRenderElement}
459
- renderLeaf={customRenderLeaf}
460
- className="min-h-[30px] p-2 rounded border border-gray-50 bg-white"
461
- />
462
- </Slate>
463
- )}
464
- </div>
465
- {showExpand && (
466
- <div
467
- className="text-blue-500 flex items-center justify-center w-full cursor-pointer text-xs mt-1 select-none"
468
- onClick={() => setExpanded(v => !v)}
469
- >
470
- <div className="flex items-center pt-1 justify-center gap-1">
471
- {expanded ? (
472
- <ChevronUp size={14} className="mr-0.5" />
473
- ) : (
474
- <ChevronDown size={14} className="mr-0.5" />
475
- )}
476
- {expanded ? '收起' : '展开全部'}
477
- </div>
478
- </div>
479
- )}
480
- </div>
481
- <div className="flex-col items-center py-2 justify-between">
482
- <div className="flex pb-2 items-center mb-2 mt-2">
483
- <span className="inline-block w-1 h-4 bg-gray-500 rounded-sm mr-2"></span>
484
- <span className="text-gray-900 text-[14px] font-semibold tracking-wide opacity-75">
485
- 文件来源
486
- </span>
487
- </div>
488
- <div className="text-xs text-gray-500">
489
- <FileItem
490
- fileList={[
491
- {
492
- convertedFilePath: chunk.parsedFilePath,
493
- filePath: `${TempBaseUrl}${chunk.metadata?.source}`,
494
- type: isImage(getType(chunk.metadata.source))
495
- ? 'image'
496
- : getType(chunk.metadata.source),
497
- name: getName(chunk.metadata.source),
498
- },
499
- ]}
500
- idx={index}
501
- type="view"
502
- />
503
- </div>
504
- {/* 滚动锚点 */}
505
- <div ref={messagesEndRef} />
506
- </div>
507
- </div>
508
- );
509
- }
510
-
511
- return (
512
- <>
513
- <div className="flex items-start mb-6 animate-fadeIn w-full text-wrap">
514
- <div className="w-10 h-10 rounded-full bg-gradient-to-r from-purple-400 to-purple-500 flex items-center justify-center mr-3 shadow-sm">
515
- <span className="text-white w-10 h-10 flex items-center justify-center text-sm">AI</span>
516
- </div>
517
- <div className="flex-1 w-[calc(100%-40px)]">
518
- <div className="flex flex-col w-full relative">
519
- <div className="text-xs text-gray-400 mb-1">{time}</div>
520
- <div className="bg-white rounded-lg shadow-md w-full overflow-hidden border border-gray-100">
521
- <Tabs
522
- activeKey={activeTabKey}
523
- onChange={setActiveTabKey}
524
- className="[&_.ant-tabs-nav]:mb-0 [&_.ant-tabs-nav]:px-4 [&_.ant-tabs-nav]:bg-gradient-to-r [&_.ant-tabs-nav]:from-gray-50 [&_.ant-tabs-nav]:to-white [&_.ant-tabs-nav]:border-b [&_.ant-tabs-nav]:border-gray-100
525
- [&_.ant-tabs-tab]:relative [&_.ant-tabs-tab]:transition-all [&_.ant-tabs-tab]:duration-300 [&_.ant-tabs-tab]:mx-3 [&_.ant-tabs-tab]:py-3 [&_.ant-tabs-tab]:px-0 [&_.ant-tabs-tab]:opacity-75
526
- [&_.ant-tabs-tab:hover]:opacity-100 [&_.ant-tabs-tab:hover]:text-blue-500 [&_.ant-tabs-tab:hover]:bg-transparent
527
- [&_.ant-tabs-tab-active_.ant-tabs-tab-btn]:text-blue-500 [&_.ant-tabs-tab-active_.ant-tabs-tab-btn]:font-medium
528
- [&_.ant-tabs-tab-active]:opacity-100 [&_.ant-tabs-tab-active]:after:content-[''] [&_.ant-tabs-tab-active]:after:absolute [&_.ant-tabs-tab-active]:after:bottom-0 [&_.ant-tabs-tab-active]:after:left-0 [&_.ant-tabs-tab-active]:after:w-full [&_.ant-tabs-tab-active]:after:h-0.5 [&_.ant-tabs-tab-active]:after:bg-blue-500 [&_.ant-tabs-tab-active]:after:rounded-t
529
- [&_.ant-tabs-ink-bar]:hidden"
530
- items={[
531
- {
532
- key: '1',
533
- label: (
534
- <span className="px-1 py-1 inline-flex items-center text-sm bg-gray-100 text-gray-700">
535
- <RobotOutlined className="mr-1.5 text-gray-500" />
536
- <span>语义回答</span>
537
- </span>
538
- ),
539
- children: (
540
- <div className="p-4 bg-gradient-to-r from-gray-50 to-white w-full">
541
- {hasLLMConfig ? (
542
- <>
543
- <div className="mb-4 p-3 bg-white rounded-lg border border-gray-100">
544
- <div className="text-sm text-gray-600 font-medium mb-3 flex items-center">
545
- <span className="w-2 h-2 rounded-full bg-blue-400 mr-2"></span>
546
- LLM 配置信息
547
- </div>
548
- <div className="grid grid-cols-2 gap-3 text-xs text-gray-500">
549
- <div className="flex items-center space-x-2">
550
- <span className="w-2 h-2 rounded-full bg-green-400"></span>
551
- <span>模型:{configInfo?.llmModel || '-'}</span>
552
- </div>
553
-
554
- <div className="flex items-center space-x-2">
555
- <span className="w-2 h-2 rounded-full bg-blue-400"></span>
556
- <span>
557
- 温度:
558
- {configInfo?.temperature?.toFixed(2) || '-'}
559
- </span>
560
- </div>
561
- <div className="flex items-center space-x-2">
562
- <span className="w-2 h-2 rounded-full bg-purple-400"></span>
563
- <span>
564
- 多样性:
565
- {configInfo?.diversity?.toFixed(2) || '-'}
566
- </span>
567
- </div>
568
- <div className="flex items-center space-x-2">
569
- <span className="w-2 h-2 rounded-full bg-yellow-400"></span>
570
- <span>最大令牌:{configInfo?.maxTokens || '-'}</span>
571
- </div>
572
- </div>
573
- </div>
574
- <div className="text-gray-800 w-full leading-relaxed">
575
- <Slate
576
- editor={editor.current}
577
- initialValue={slateContent}
578
- key={JSON.stringify(slateContent)}
579
- onChange={setSlateContent}
580
- >
581
- <Editable
582
- readOnly
583
- renderElement={customRenderElement}
584
- renderLeaf={customRenderLeaf}
585
- className="min-h-[50px] w-full p-4 rounded-lg border border-gray-100 bg-white"
586
- />
587
- </Slate>
588
- </div>
589
- {!!sourceFile?.length && (
590
- <div className="flex-col items-center py-2 justify-between">
591
- <div className="text-xs text-gray-500 pt-4 ">来源文件</div>
592
- <div className="text-xs text-gray-500">
593
- <FileItem
594
- fileList={sourceFile.map((chunk: any, index: number) => {
595
- return {
596
- convertedFilePath: chunk.parsedFilePath,
597
- filePath: `${TempBaseUrl}${chunk.metadata?.source}`,
598
- type: isImage(getType(chunk.metadata.source))
599
- ? 'image'
600
- : getType(chunk.metadata.source),
601
- name: getName(chunk.metadata.source),
602
- };
603
- })}
604
- type="view"
605
- idx={1}
606
- className="flex"
607
- />
608
- </div>
609
- </div>
610
- )}
611
-
612
- {typeof configInfo?.respTime === 'number' &&
613
- typeof configInfo?.tokens === 'number' && (
614
- <div className="flex pt-2 gap-x-5 justify-start text-gray-500 leading-relaxed">
615
- <div>
616
- 总耗时:
617
- {(configInfo.respTime / 1000).toFixed(2)}s
618
- </div>
619
- <div>共使用: {configInfo.tokens} token</div>
620
- </div>
621
- )}
622
- </>
623
- ) : (
624
- <div className="flex flex-col items-center justify-center py-8 text-gray-500">
625
- <RobotOutlined
626
- style={{ fontSize: '48px' }}
627
- className="mb-4 text-gray-300"
628
- />
629
- <p className="text-sm">未配置大语言模型</p>
630
- <p className="text-xs mt-2">请在左侧设置面板开启并配置大语言模型</p>
631
- </div>
632
- )}
633
- </div>
634
- ),
635
- },
636
- {
637
- key: '2',
638
- label: (
639
- <span
640
- className={`px-1 py-1 inline-flex items-center text-sm transition-all ${activeTabKey === '2' ? 'font-bold text-black' : 'text-gray-700'}`}
641
- >
642
- <Code
643
- size={16}
644
- className={`mr-1 ${activeTabKey === '2' ? 'text-black' : 'text-gray-500'}`}
645
- />
646
- <span>Prompt</span>
647
- </span>
648
- ),
649
- children: (
650
- <div className="p-4">
651
- {hasLLMConfig && prompt ? (
652
- <div className="bg-gray-50 p-4 rounded-lg border border-gray-100 font-mono text-sm whitespace-pre-wrap leading-relaxed text-gray-700 shadow-inner">
653
- {prompt}
654
- </div>
655
- ) : (
656
- <div className="flex flex-col items-center justify-center py-8 text-gray-500">
657
- <CodeOutlined
658
- style={{ fontSize: '48px' }}
659
- className="mb-4 text-gray-300"
660
- />
661
- <p className="text-sm">未配置 Prompt</p>
662
- <p className="text-xs mt-2">当前仅执行向量检索,未使用大语言模型</p>
663
- </div>
664
- )}
665
- </div>
666
- ),
667
- },
668
- {
669
- key: '3',
670
- label: (
671
- <span
672
- className={`px-1 py-1 inline-flex items-center text-sm transition-all ${activeTabKey === '3' ? 'font-bold text-black' : 'text-gray-700'}`}
673
- >
674
- <Zap
675
- size={16}
676
- className={`mr-1 ${activeTabKey === '3' ? 'text-black' : 'text-gray-500'}`}
677
- />
678
- <span className="relative">
679
- 召回信息
680
- {retrievedChunks.length > 0 && (
681
- <span className="absolute -top-1 -right-4 bg-red-500 text-white text-xs rounded-full w-4 h-4 flex items-center justify-center">
682
- {retrievedChunks.length}
683
- </span>
684
- )}
685
- </span>
686
- </span>
687
- ),
688
- children: (
689
- <div
690
- className="p-4 space-y-4"
691
- ref={callContainerRef}
692
- style={{ maxHeight: '60vh', overflowY: 'auto' }}
693
- >
694
- {retrievedChunks.length > 0 ? (
695
- retrievedChunks.map((chunk, index) => (
696
- <ChunkCard
697
- key={index}
698
- chunk={chunk}
699
- index={index}
700
- editor={editors[index]}
701
- customRenderElement={customRenderElement}
702
- customRenderLeaf={customRenderLeaf}
703
- deserializeMarkdown={deserializeMarkdown}
704
- TempBaseUrl={TempBaseUrl}
705
- isImage={isImage}
706
- getType={getType}
707
- getName={getName}
708
- messagesEndRef={messagesEndRef}
709
- />
710
- ))
711
- ) : (
712
- <div className="flex flex-col items-center justify-center py-8 text-gray-400">
713
- <ApiOutlined
714
- style={{ fontSize: '48px' }}
715
- className="mb-4 text-gray-300"
716
- />
717
- <p className="text-sm">暂无召回信息</p>
718
- <p className="text-xs mt-2">当前未检索到任何相关文本片段</p>
719
- </div>
720
- )}
721
- </div>
722
- ),
723
- },
724
- {
725
- key: '4',
726
- label: (
727
- <span
728
- className={`px-1 py-1 inline-flex items-center text-sm transition-all ${activeTabKey === '4' ? 'font-bold text-black' : 'text-gray-700'}`}
729
- >
730
- <Settings
731
- size={16}
732
- className={`mr-1 ${activeTabKey === '4' ? 'text-black' : 'text-gray-500'}`}
733
- />
734
- <span>检索配置</span>
735
- </span>
736
- ),
737
- children: configInfo && (
738
- <div className="p-4">
739
- <div className="grid grid-cols-2 gap-6">
740
- <div className="bg-gradient-to-r from-gray-50 to-white rounded-lg p-4 border border-gray-100">
741
- <div className="text-sm font-medium text-gray-700 mb-3 flex items-center">
742
- <span className="w-2 h-2 rounded-full bg-blue-400 mr-2"></span>
743
- 召回配置
744
- </div>
745
- <div className="space-y-2 text-sm text-gray-600">
746
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
747
- <span>返回文本片数量</span>
748
- <span className="font-mono">{configInfo.textChunks}</span>
749
- </div>
750
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
751
- <span>相似度阈值</span>
752
- <span className="font-mono">{configInfo.topP}</span>
753
- </div>
754
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
755
- <span>召回数量</span>
756
- <span className="font-mono">{configInfo.topN}</span>
757
- </div>
758
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
759
- <span>Dense Weight</span>
760
- <span className="font-mono">{configInfo.denseWeight}</span>
761
- </div>
762
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
763
- <span>检索策略</span>
764
- <span className="font-mono">
765
- {configInfo?.search_policy
766
- ? searchPolicyMap[String(configInfo.search_policy)] ||
767
- configInfo.search_policy
768
- : '-'}
769
- </span>
770
- </div>
771
- </div>
772
- </div>
773
- <div className="bg-gradient-to-r from-gray-50 to-white rounded-lg p-4 border border-gray-100">
774
- <div className="text-sm font-medium text-gray-700 mb-3 flex items-center">
775
- <span className="w-2 h-2 rounded-full bg-green-400 mr-2"></span>
776
- 功能开关
777
- </div>
778
- <div className="space-y-2 text-sm text-gray-600">
779
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
780
- <span>知识图谱</span>
781
- <span
782
- className={
783
- configInfo.enableKG ? 'text-green-500' : 'text-gray-500'
784
- }
785
- >
786
- {configInfo.enableKG ? '开启' : '关闭'}
787
- </span>
788
- </div>
789
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
790
- <span>重排模型</span>
791
- <span
792
- className={
793
- configInfo.enableRerank ? 'text-green-500' : 'text-gray-500'
794
- }
795
- >
796
- {configInfo.enableRerank ? '开启' : '关闭'}
797
- </span>
798
- </div>
799
- <div className="flex items-center justify-between p-2 bg-white rounded border border-gray-50">
800
- <span>检索模型</span>
801
- <span className="font-mono">{configInfo.recallModel}</span>
802
- </div>
803
- </div>
804
- </div>
805
- </div>
806
- </div>
807
- ),
808
- },
809
- ]}
810
- />
811
- </div>
812
- </div>
813
- </div>
814
- </div>
815
- <ConfigProvider
816
- modal={{
817
- styles: {
818
- body: {
819
- padding: 0,
820
- },
821
- content: {
822
- padding: 0,
823
- },
824
- },
825
- }}
826
- >
827
- <Modal
828
- open={showViewer}
829
- closable={false}
830
- footer={null}
831
- width={FileModalSize.width}
832
- height={FileModalSize.height}
833
- destroyOnClose
834
- >
835
- {pdfUrl && (
836
- <div style={{ width: '100%', height: '100%' }}>
837
- <FileViewer
838
- content={pdfUrl}
839
- onClose={handleClose}
840
- tools={{ annotation: false, download: true, close: true }}
841
- />
842
- </div>
843
- )}
844
- </Modal>
845
- </ConfigProvider>
846
- <ConfigProvider
847
- drawer={{
848
- styles: {
849
- body: { padding: 0 },
850
- header: { display: 'none' },
851
- },
852
- }}
853
- >
854
- <Drawer
855
- title={
856
- <div className="flex items-center">
857
- <img
858
- src={FILEIMG[drawerContent?.file_type || 'doc']}
859
- width={18}
860
- height={18}
861
- className="mr-[6px]"
862
- />
863
- <div>{`${drawerContent?.title}.${drawerContent?.file_type}`}</div>
864
- </div>
865
- }
866
- autoFocus={false}
867
- onClose={() => setOpen(false)}
868
- open={open}
869
- width={600}
870
- className="overflow-x-hidden"
871
- destroyOnClose
872
- afterOpenChange={open => {
873
- if (!open) {
874
- setDrawerContent(null);
875
- }
876
- }}
877
- >
878
- <DrawerContent content={drawerContent} onClose={() => setOpen(false)} />
879
- </Drawer>
880
- </ConfigProvider>
881
- </>
882
- );
883
- }
884
-
885
- export const Welcome = () => (
886
- <div
887
- className="flex flex-col items-center justify-center pb-[20%] text-gray-400 animate-fadeIn"
888
- style={{ transform: 'rotate(180deg)' }}
889
- >
890
- <RobotOutlined style={{ fontSize: 48 }} className="mb-4 text-blue-300" />
891
- <div className="text-lg font-semibold mb-2">Hi,我是检索测试助手</div>
892
- <div className="text-sm">欢迎体验知识库检索与多模态召回测试</div>
893
- </div>
894
- );