@lobehub/chat 1.11.9 → 1.12.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 (354) hide show
  1. package/.github/workflows/release.yml +2 -1
  2. package/.github/workflows/test.yml +2 -1
  3. package/CHANGELOG.md +25 -0
  4. package/Dockerfile.database +2 -0
  5. package/docs/self-hosting/advanced/knowledge-base.zh-CN.mdx +65 -0
  6. package/locales/ar/chat.json +13 -3
  7. package/locales/ar/components.json +2 -0
  8. package/locales/bg-BG/chat.json +13 -3
  9. package/locales/bg-BG/components.json +2 -0
  10. package/locales/de-DE/chat.json +13 -3
  11. package/locales/de-DE/components.json +2 -0
  12. package/locales/en-US/chat.json +13 -3
  13. package/locales/en-US/components.json +2 -0
  14. package/locales/es-ES/chat.json +13 -3
  15. package/locales/es-ES/components.json +2 -0
  16. package/locales/fr-FR/chat.json +13 -3
  17. package/locales/fr-FR/components.json +2 -0
  18. package/locales/it-IT/chat.json +13 -3
  19. package/locales/it-IT/components.json +2 -0
  20. package/locales/ja-JP/chat.json +13 -3
  21. package/locales/ja-JP/components.json +2 -0
  22. package/locales/ko-KR/chat.json +13 -3
  23. package/locales/ko-KR/components.json +2 -0
  24. package/locales/nl-NL/chat.json +13 -3
  25. package/locales/nl-NL/components.json +2 -0
  26. package/locales/pl-PL/chat.json +13 -3
  27. package/locales/pl-PL/components.json +2 -0
  28. package/locales/pt-BR/chat.json +13 -3
  29. package/locales/pt-BR/components.json +2 -0
  30. package/locales/ru-RU/chat.json +13 -3
  31. package/locales/ru-RU/components.json +2 -0
  32. package/locales/tr-TR/chat.json +13 -3
  33. package/locales/tr-TR/components.json +2 -0
  34. package/locales/vi-VN/chat.json +13 -3
  35. package/locales/vi-VN/components.json +2 -0
  36. package/locales/zh-CN/chat.json +13 -3
  37. package/locales/zh-CN/components.json +2 -0
  38. package/locales/zh-TW/chat.json +13 -3
  39. package/locales/zh-TW/components.json +2 -0
  40. package/package.json +3 -2
  41. package/scripts/migrateServerDB/docker.cjs +6 -0
  42. package/scripts/migrateServerDB/errorHint.js +17 -0
  43. package/scripts/migrateServerDB/index.ts +6 -0
  44. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/FileItem/Content.tsx +37 -0
  45. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/FileItem/index.tsx +87 -0
  46. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/FileItem/style.ts +4 -0
  47. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/FileItem/utils.ts +28 -0
  48. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/FileList.tsx +41 -0
  49. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/FilePreview/index.tsx +40 -0
  50. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/SendMore.tsx +1 -1
  51. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +7 -22
  52. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/TextArea.tsx +1 -1
  53. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/index.tsx +2 -4
  54. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/FileItem/File.tsx +72 -0
  55. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/FileItem/Image.tsx +74 -0
  56. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/FileItem/index.tsx +39 -0
  57. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/FileItem/style.ts +1 -0
  58. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files/index.tsx +33 -0
  59. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/InputArea/Container.tsx +41 -0
  60. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/InputArea/index.tsx +154 -0
  61. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Send.tsx +34 -0
  62. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/index.tsx +24 -11
  63. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/components/UploadDetail/UploadStatus.tsx +71 -0
  64. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/components/UploadDetail/index.tsx +49 -0
  65. package/src/app/(main)/chat/(workspace)/@portal/FilePreview/index.tsx +26 -0
  66. package/src/app/(main)/chat/(workspace)/@portal/Home/Files/FileList/Item.tsx +53 -0
  67. package/src/app/(main)/chat/(workspace)/@portal/Home/Files/FileList/index.tsx +50 -0
  68. package/src/app/(main)/chat/(workspace)/@portal/Home/Files/index.tsx +21 -0
  69. package/src/app/(main)/chat/(workspace)/@portal/Home/index.tsx +2 -0
  70. package/src/app/(main)/chat/(workspace)/@portal/router.tsx +4 -0
  71. package/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/KnowledgeTag.tsx +41 -0
  72. package/src/app/(main)/chat/(workspace)/_layout/Desktop/ChatHeader/Tags.tsx +7 -2
  73. package/src/app/(main)/chat/(workspace)/_layout/Desktop/HotKeys.tsx +1 -1
  74. package/src/app/(main)/files/(content)/@menu/default.tsx +27 -0
  75. package/src/app/(main)/files/(content)/@menu/features/FileMenu/index.tsx +97 -0
  76. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/EmptyStatus.tsx +53 -0
  77. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/Item/Content.tsx +175 -0
  78. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/Item/index.tsx +69 -0
  79. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/KnowledgeBaseList.tsx +30 -0
  80. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/SkeletonList.tsx +57 -0
  81. package/src/app/(main)/files/(content)/@menu/features/KnowledgeBase/index.tsx +54 -0
  82. package/src/app/(main)/files/(content)/@modal/(.)[id]/FileDetail.tsx +16 -0
  83. package/src/app/(main)/files/(content)/@modal/(.)[id]/FilePreview.tsx +15 -0
  84. package/src/app/(main)/files/(content)/@modal/(.)[id]/FullscreenModal.tsx +85 -0
  85. package/src/app/(main)/files/(content)/@modal/(.)[id]/page.tsx +19 -0
  86. package/src/app/(main)/files/(content)/@modal/default.tsx +3 -0
  87. package/src/app/(main)/files/(content)/NotSupportClient.tsx +152 -0
  88. package/src/app/(main)/files/(content)/_layout/Desktop/index.tsx +28 -0
  89. package/src/app/(main)/files/(content)/_layout/Mobile.tsx +47 -0
  90. package/src/app/(main)/files/(content)/_layout/type.ts +7 -0
  91. package/src/app/(main)/files/(content)/layout.tsx +18 -0
  92. package/src/app/(main)/files/(content)/page.tsx +14 -0
  93. package/src/app/(main)/files/[id]/Header.tsx +63 -0
  94. package/src/app/(main)/files/[id]/page.tsx +44 -0
  95. package/src/app/(main)/files/features/FileDetail.tsx +93 -0
  96. package/src/app/(main)/files/hooks/useFileCategory.ts +9 -0
  97. package/src/app/(main)/files/layout.tsx +12 -0
  98. package/src/app/(main)/files/loading.tsx +21 -0
  99. package/src/app/(main)/repos/[id]/@menu/Head/index.tsx +33 -0
  100. package/src/app/(main)/repos/[id]/@menu/Menu/index.tsx +56 -0
  101. package/src/app/(main)/repos/[id]/@menu/default.tsx +25 -0
  102. package/src/app/(main)/repos/[id]/_layout/Desktop/index.tsx +25 -0
  103. package/src/app/(main)/repos/[id]/_layout/Mobile.tsx +47 -0
  104. package/src/app/(main)/repos/[id]/_layout/type.ts +6 -0
  105. package/src/app/(main)/repos/[id]/hooks/useKnowledgeItem.ts +7 -0
  106. package/src/app/(main)/repos/[id]/layout.tsx +13 -0
  107. package/src/app/(main)/repos/[id]/page.tsx +18 -0
  108. package/src/app/(main)/repos/layout.tsx +13 -0
  109. package/src/app/(main)/repos/page.tsx +5 -0
  110. package/src/app/trpc/async/[trpc]/route.ts +28 -0
  111. package/src/chains/abstractChunk.ts +19 -0
  112. package/src/chains/answerWithContext.ts +34 -0
  113. package/src/chains/rewriteQuery.ts +22 -0
  114. package/src/components/DragUpload/index.tsx +6 -99
  115. package/src/components/DragUpload/useDragUpload.tsx +146 -0
  116. package/src/components/FeatureList/index.tsx +64 -0
  117. package/src/components/FileParsingStatus/index.tsx +230 -0
  118. package/src/components/ImageItem/index.tsx +10 -2
  119. package/src/components/KnowledgeIcon/index.tsx +28 -0
  120. package/src/config/app.ts +6 -1
  121. package/src/config/featureFlags/schema.ts +1 -1
  122. package/src/const/file.ts +1 -0
  123. package/src/const/url.ts +1 -0
  124. package/src/database/client/models/file.ts +8 -2
  125. package/src/database/server/migrations/0005_pgvector.sql +2 -0
  126. package/src/database/server/migrations/0006_add_knowledge_base.sql +307 -0
  127. package/src/database/server/migrations/meta/0005_snapshot.json +2119 -0
  128. package/src/database/server/migrations/meta/0006_snapshot.json +3006 -0
  129. package/src/database/server/migrations/meta/_journal.json +14 -0
  130. package/src/database/server/models/__tests__/_test_template.ts +155 -0
  131. package/src/database/server/models/__tests__/agent.test.ts +226 -0
  132. package/src/database/server/models/__tests__/asyncTask.test.ts +176 -0
  133. package/src/database/server/models/__tests__/chunk.test.ts +336 -0
  134. package/src/database/server/models/__tests__/file.test.ts +317 -29
  135. package/src/database/server/models/__tests__/fixtures/embedding.ts +568 -0
  136. package/src/database/server/models/__tests__/knowledgeBase.test.ts +132 -0
  137. package/src/database/server/models/__tests__/message.test.ts +7 -4
  138. package/src/database/server/models/_template.ts +10 -1
  139. package/src/database/server/models/agent.ts +165 -0
  140. package/src/database/server/models/asyncTask.ts +96 -0
  141. package/src/database/server/models/chunk.ts +203 -0
  142. package/src/database/server/models/embedding.ts +47 -0
  143. package/src/database/server/models/file.ts +231 -12
  144. package/src/database/server/models/knowledgeBase.ts +94 -0
  145. package/src/database/server/models/message.ts +156 -30
  146. package/src/database/server/models/user.ts +12 -1
  147. package/src/database/server/schemas/lobechat/agent.ts +93 -0
  148. package/src/database/server/schemas/lobechat/discover.ts +1 -1
  149. package/src/database/server/schemas/lobechat/file.ts +118 -1
  150. package/src/database/server/schemas/lobechat/index.ts +5 -1
  151. package/src/database/server/schemas/lobechat/message.ts +169 -0
  152. package/src/database/server/schemas/lobechat/rag.ts +51 -0
  153. package/src/database/server/schemas/lobechat/relations.ts +68 -48
  154. package/src/database/server/schemas/lobechat/session.ts +77 -0
  155. package/src/database/server/schemas/lobechat/topic.ts +32 -0
  156. package/src/database/server/schemas/lobechat/user.ts +40 -25
  157. package/src/database/server/utils/idGenerator.ts +1 -0
  158. package/src/features/ChatInput/ActionBar/Clear.tsx +1 -1
  159. package/src/features/ChatInput/ActionBar/Knowledge/Dropdown.tsx +160 -0
  160. package/src/features/ChatInput/ActionBar/Knowledge/ListItem.tsx +52 -0
  161. package/src/features/ChatInput/ActionBar/Knowledge/index.tsx +54 -0
  162. package/src/features/ChatInput/ActionBar/Tools/index.tsx +1 -1
  163. package/src/features/ChatInput/ActionBar/Upload/ClientMode.tsx +52 -0
  164. package/src/features/ChatInput/ActionBar/Upload/ServerMode.tsx +104 -0
  165. package/src/features/ChatInput/ActionBar/Upload/index.tsx +8 -0
  166. package/src/features/ChatInput/ActionBar/config.ts +14 -5
  167. package/src/features/ChatInput/useSend.ts +16 -7
  168. package/src/features/Conversation/Messages/Assistant/FileChunks/Item/index.tsx +51 -0
  169. package/src/features/Conversation/Messages/Assistant/FileChunks/Item/style.ts +38 -0
  170. package/src/features/Conversation/Messages/Assistant/FileChunks/index.tsx +76 -0
  171. package/src/features/Conversation/Messages/Assistant/index.tsx +13 -4
  172. package/src/features/Conversation/Messages/Default.tsx +4 -0
  173. package/src/features/Conversation/Messages/User/BelowMessage.tsx +78 -0
  174. package/src/features/Conversation/Messages/User/FileListViewer/Item.tsx +53 -0
  175. package/src/features/Conversation/Messages/User/FileListViewer/index.tsx +21 -0
  176. package/src/{components/FileList/FileListViewer.tsx → features/Conversation/Messages/User/ImageFileListViewer.tsx} +10 -2
  177. package/src/features/Conversation/Messages/{User.tsx → User/index.tsx} +11 -2
  178. package/src/features/Conversation/Messages/index.ts +8 -3
  179. package/src/features/Conversation/components/ChatItem/index.tsx +33 -10
  180. package/src/features/Conversation/components/InboxWelcome/QuestionSuggest.tsx +1 -1
  181. package/src/features/Conversation/types/index.tsx +1 -0
  182. package/src/features/FileManager/ChunkDrawer/ChunkList/ChunkItem.tsx +61 -0
  183. package/src/features/FileManager/ChunkDrawer/ChunkList/index.tsx +42 -0
  184. package/src/features/FileManager/ChunkDrawer/Content.tsx +38 -0
  185. package/src/features/FileManager/ChunkDrawer/Loading/index.tsx +16 -0
  186. package/src/features/FileManager/ChunkDrawer/SimilaritySearchList/Item.tsx +62 -0
  187. package/src/features/FileManager/ChunkDrawer/SimilaritySearchList/index.tsx +31 -0
  188. package/src/features/FileManager/ChunkDrawer/index.tsx +48 -0
  189. package/src/features/FileManager/FileList/EmptyStatus.tsx +153 -0
  190. package/src/features/FileManager/FileList/FileListItem/ChunkTag.tsx +35 -0
  191. package/src/features/FileManager/FileList/FileListItem/DropdownMenu.tsx +150 -0
  192. package/src/features/FileManager/FileList/FileListItem/index.tsx +211 -0
  193. package/src/features/FileManager/FileList/FileSkeleton.tsx +25 -0
  194. package/src/features/FileManager/FileList/ToolBar/Config.tsx +28 -0
  195. package/src/features/FileManager/FileList/ToolBar/MultiSelectActions.tsx +152 -0
  196. package/src/features/FileManager/FileList/ToolBar/index.tsx +114 -0
  197. package/src/features/FileManager/FileList/index.tsx +143 -0
  198. package/src/features/FileManager/FileList/useCheckTaskStatus.ts +27 -0
  199. package/src/features/FileManager/Header/FilesSearchBar.tsx +41 -0
  200. package/src/features/FileManager/Header/UploadFileButton.tsx +79 -0
  201. package/src/features/FileManager/Header/index.tsx +39 -0
  202. package/src/features/FileManager/UploadDock/Item.tsx +124 -0
  203. package/src/features/FileManager/UploadDock/index.tsx +183 -0
  204. package/src/features/FileManager/index.tsx +38 -0
  205. package/src/features/FileSidePanel/index.tsx +79 -0
  206. package/src/features/FileViewer/NotSupport/index.tsx +54 -0
  207. package/src/features/FileViewer/PDFViewer/HighlightLayer.tsx +81 -0
  208. package/src/features/FileViewer/PDFViewer/index.tsx +93 -0
  209. package/src/features/FileViewer/PDFViewer/style.ts +20 -0
  210. package/src/features/FileViewer/PDFViewer/useResizeObserver.ts +33 -0
  211. package/src/features/FileViewer/TXTViewer/index.tsx +41 -0
  212. package/src/features/FileViewer/index.tsx +45 -0
  213. package/src/features/KnowledgeBaseModal/AddFilesToKnowledgeBase/SelectForm.tsx +115 -0
  214. package/src/features/KnowledgeBaseModal/AddFilesToKnowledgeBase/index.tsx +43 -0
  215. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Item/Action.tsx +103 -0
  216. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Item/EditCustomPlugin.tsx +55 -0
  217. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Item/PluginTag.tsx +58 -0
  218. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Item/index.tsx +70 -0
  219. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/List.tsx +49 -0
  220. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/Loading.tsx +13 -0
  221. package/src/features/KnowledgeBaseModal/AssignKnowledgeBase/index.tsx +39 -0
  222. package/src/features/KnowledgeBaseModal/CreateNew/CreateForm.tsx +73 -0
  223. package/src/features/KnowledgeBaseModal/CreateNew/index.tsx +35 -0
  224. package/src/features/KnowledgeBaseModal/index.ts +3 -0
  225. package/src/libs/langchain/loaders/pdf/index.ts +2 -2
  226. package/src/libs/trpc/async/asyncAuth.ts +24 -0
  227. package/src/libs/trpc/async/index.ts +10 -0
  228. package/src/libs/trpc/async/init.ts +11 -0
  229. package/src/libs/trpc/client/async.ts +14 -0
  230. package/src/libs/trpc/client/index.ts +1 -0
  231. package/src/libs/trpc/client/lambda.ts +9 -0
  232. package/src/libs/trpc/middleware/keyVaults.ts +18 -0
  233. package/src/libs/unstructured/__tests__/index.test.ts +0 -10
  234. package/src/libs/unstructured/index.ts +6 -11
  235. package/src/locales/default/chat.ts +47 -3
  236. package/src/locales/default/common.ts +1 -0
  237. package/src/locales/default/components.ts +2 -0
  238. package/src/locales/default/error.ts +6 -1
  239. package/src/locales/default/file.ts +92 -0
  240. package/src/locales/default/index.ts +4 -0
  241. package/src/locales/default/knowledgeBase.ts +31 -0
  242. package/src/locales/default/portal.ts +1 -0
  243. package/src/middleware.ts +3 -0
  244. package/src/server/asyncContext.ts +40 -0
  245. package/src/server/modules/ContentChunk/index.ts +135 -0
  246. package/src/server/modules/S3/index.ts +30 -5
  247. package/src/server/routers/async/caller.ts +27 -0
  248. package/src/server/routers/async/file.ts +247 -0
  249. package/src/server/routers/async/index.ts +12 -0
  250. package/src/server/routers/lambda/_template.ts +77 -0
  251. package/src/server/routers/lambda/agent.ts +159 -0
  252. package/src/server/routers/lambda/chunk.ts +189 -0
  253. package/src/server/routers/lambda/file.ts +129 -5
  254. package/src/server/routers/lambda/index.ts +6 -0
  255. package/src/server/routers/lambda/knowledgeBase.ts +79 -0
  256. package/src/server/routers/lambda/message.ts +6 -0
  257. package/src/server/routers/lambda/session.ts +0 -25
  258. package/src/server/routers/lambda/user.ts +5 -1
  259. package/src/server/services/chunk/index.ts +74 -0
  260. package/src/server/utils/files.ts +9 -0
  261. package/src/services/__tests__/chat.test.ts +18 -20
  262. package/src/services/__tests__/{upload.test.ts → upload_legacy.test.ts} +1 -1
  263. package/src/services/agent.ts +45 -0
  264. package/src/services/chat.ts +17 -15
  265. package/src/services/file/client.test.ts +1 -50
  266. package/src/services/file/client.ts +12 -25
  267. package/src/services/file/server.ts +25 -3
  268. package/src/services/file/type.ts +7 -4
  269. package/src/services/knowledgeBase.ts +34 -0
  270. package/src/services/message/client.test.ts +1 -1
  271. package/src/services/message/client.ts +29 -3
  272. package/src/services/message/index.ts +0 -2
  273. package/src/services/message/server.ts +9 -3
  274. package/src/services/message/type.ts +1 -13
  275. package/src/services/rag.ts +29 -0
  276. package/src/services/session/server.ts +1 -1
  277. package/src/services/upload.ts +89 -84
  278. package/src/services/upload_legacy.ts +104 -0
  279. package/src/services/user/client.ts +7 -2
  280. package/src/services/user/server.ts +6 -2
  281. package/src/services/user/type.ts +3 -2
  282. package/src/store/agent/slices/chat/action.ts +90 -18
  283. package/src/store/agent/slices/chat/initialState.ts +1 -0
  284. package/src/store/agent/slices/chat/selectors.ts +58 -0
  285. package/src/store/chat/slices/builtinTool/action.test.ts +2 -2
  286. package/src/store/chat/slices/builtinTool/action.ts +2 -2
  287. package/src/store/chat/slices/message/action.test.ts +2 -1
  288. package/src/store/chat/slices/message/action.ts +102 -26
  289. package/src/store/chat/slices/message/actions/rag.ts +148 -0
  290. package/src/store/chat/slices/message/initialState.ts +7 -0
  291. package/src/store/chat/slices/message/reducer.ts +6 -2
  292. package/src/store/chat/slices/message/selectors.ts +38 -3
  293. package/src/store/chat/slices/plugin/action.ts +8 -2
  294. package/src/store/chat/slices/portal/action.ts +8 -0
  295. package/src/store/chat/slices/portal/initialState.ts +3 -0
  296. package/src/store/chat/slices/portal/selectors.ts +8 -2
  297. package/src/store/file/initialState.ts +5 -1
  298. package/src/store/file/reducers/uploadFileList.ts +133 -0
  299. package/src/store/file/selectors.ts +3 -0
  300. package/src/store/file/slices/chat/action.test.ts +90 -90
  301. package/src/store/file/slices/chat/action.ts +164 -109
  302. package/src/store/file/slices/chat/initialState.ts +7 -2
  303. package/src/store/file/slices/chat/selectors.test.ts +84 -61
  304. package/src/store/file/slices/chat/selectors.ts +22 -32
  305. package/src/store/file/slices/chunk/action.ts +36 -0
  306. package/src/store/file/slices/chunk/index.ts +3 -0
  307. package/src/store/file/slices/chunk/initialState.ts +15 -0
  308. package/src/store/file/slices/chunk/selectors.ts +10 -0
  309. package/src/store/file/slices/fileManager/action.ts +187 -0
  310. package/src/store/file/slices/fileManager/index.ts +3 -0
  311. package/src/store/file/slices/fileManager/initialState.ts +18 -0
  312. package/src/store/file/slices/fileManager/selectors.ts +58 -0
  313. package/src/store/file/slices/tts/action.test.ts +1 -1
  314. package/src/store/file/slices/tts/action.ts +2 -2
  315. package/src/store/file/slices/upload/action.ts +164 -0
  316. package/src/store/file/store.ts +12 -1
  317. package/src/store/knowledgeBase/index.ts +2 -0
  318. package/src/store/knowledgeBase/initialState.ts +7 -0
  319. package/src/store/knowledgeBase/selectors.ts +1 -0
  320. package/src/store/knowledgeBase/slices/content/action.ts +27 -0
  321. package/src/store/knowledgeBase/slices/content/index.ts +1 -0
  322. package/src/store/knowledgeBase/slices/crud/action.ts +78 -0
  323. package/src/store/knowledgeBase/slices/crud/index.ts +3 -0
  324. package/src/store/knowledgeBase/slices/crud/initialState.ts +12 -0
  325. package/src/store/knowledgeBase/slices/crud/selectors.ts +7 -0
  326. package/src/store/knowledgeBase/store.ts +30 -0
  327. package/src/store/serverConfig/selectors.test.ts +1 -1
  328. package/src/store/user/slices/preference/selectors.ts +8 -0
  329. package/src/store/user/slices/settings/selectors/systemAgent.ts +2 -0
  330. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +3 -23
  331. package/src/types/agent/index.ts +9 -0
  332. package/src/types/asyncTask.ts +31 -0
  333. package/src/types/chunk/document.ts +9 -0
  334. package/src/types/chunk/index.ts +52 -0
  335. package/src/types/files/index.ts +35 -0
  336. package/src/types/files/list.ts +44 -0
  337. package/src/types/files/upload.ts +91 -0
  338. package/src/types/knowledgeBase/index.ts +45 -0
  339. package/src/types/message/index.ts +54 -5
  340. package/src/types/rag.ts +16 -0
  341. package/src/utils/filter.test.ts +2 -0
  342. package/src/utils/server/auth.ts +23 -0
  343. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/LocalFiles.tsx +0 -46
  344. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Mobile/Files.tsx +0 -19
  345. package/src/components/FileList/EditableFileList.tsx +0 -47
  346. package/src/components/FileList/index.ts +0 -2
  347. package/src/components/FileList/type.tsx +0 -7
  348. package/src/database/server/schemas/lobechat/chat.ts +0 -331
  349. package/src/features/ChatInput/ActionBar/FileUpload.tsx +0 -69
  350. package/src/features/ChatInput/useChatInput.ts +0 -45
  351. package/src/features/FileList/EditableFileList.tsx +0 -31
  352. package/src/features/FileList/FileListPreviewer.tsx +0 -17
  353. package/src/features/FileList/index.tsx +0 -2
  354. package/src/types/files.ts +0 -42
@@ -11,7 +11,7 @@ jobs:
11
11
 
12
12
  services:
13
13
  postgres:
14
- image: postgres:16
14
+ image: pgvector/pgvector:pg16
15
15
  env:
16
16
  POSTGRES_PASSWORD: postgres
17
17
  options: >-
@@ -40,6 +40,7 @@ jobs:
40
40
  DATABASE_DRIVER: node
41
41
  NEXT_PUBLIC_SERVICE_MODE: server
42
42
  KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
43
+ NEXT_PUBLIC_S3_DOMAIN: https://example.com
43
44
 
44
45
  - name: Test App Coverage
45
46
  run: bun run test-app:coverage
@@ -8,7 +8,7 @@ jobs:
8
8
 
9
9
  services:
10
10
  postgres:
11
- image: postgres:16
11
+ image: pgvector/pgvector:pg16
12
12
  env:
13
13
  POSTGRES_PASSWORD: postgres
14
14
  options: >-
@@ -39,6 +39,7 @@ jobs:
39
39
  DATABASE_DRIVER: node
40
40
  NEXT_PUBLIC_SERVICE_MODE: server
41
41
  KEY_VAULTS_SECRET: LA7n9k3JdEcbSgml2sxfw+4TV1AzaaFU5+R176aQz4s=
42
+ NEXT_PUBLIC_S3_DOMAIN: https://example.com
42
43
 
43
44
  - name: Upload Server coverage to Codecov
44
45
  uses: codecov/codecov-action@v4
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 1.12.0](https://github.com/lobehub/lobe-chat/compare/v1.11.9...v1.12.0)
6
+
7
+ <sup>Released on **2024-08-21**</sup>
8
+
9
+ #### ✨ Features
10
+
11
+ - **misc**: Files and knowledge base.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's improved
19
+
20
+ - **misc**: Files and knowledge base, closes [#3487](https://github.com/lobehub/lobe-chat/issues/3487) ([6574c01](https://github.com/lobehub/lobe-chat/commit/6574c01))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
5
30
  ### [Version 1.11.9](https://github.com/lobehub/lobe-chat/compare/v1.11.8...v1.11.9)
6
31
 
7
32
  <sup>Released on **2024-08-19**</sup>
@@ -92,6 +92,7 @@ COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm
92
92
  # Copy database migrations
93
93
  COPY --from=builder /app/src/database/server/migrations /app/migrations
94
94
  COPY --from=builder /app/scripts/migrateServerDB/docker.cjs /app/docker.cjs
95
+ COPY --from=builder /app/scripts/migrateServerDB/errorHint.js /app/errorHint.js
95
96
 
96
97
  ## Production image, copy all the files and run next
97
98
  FROM base
@@ -107,6 +108,7 @@ ENV HOSTNAME="0.0.0.0" \
107
108
 
108
109
  # General Variables
109
110
  ENV ACCESS_CODE="" \
111
+ APP_URL="" \
110
112
  API_KEY_SELECT_MODE="" \
111
113
  DEFAULT_AGENT_CONFIG="" \
112
114
  SYSTEM_AGENT="" \
@@ -0,0 +1,65 @@
1
+ # 知识库/文件上传
2
+
3
+ LobeChat 支持文件上传/知识库管理。该功能依赖于以下核心技术组件,了解这些组件将有助于你成功部署和维护知识库系统。
4
+
5
+ ## 核心组件
6
+
7
+ ### 1. PostgreSQL 与 PGVector
8
+
9
+ PostgreSQL 是一个强大的开源关系型数据库系统,而 PGVector 是其扩展,为向量操作提供支持。
10
+
11
+ - **用途**:存储结构化数据和向量索引
12
+ - **部署建议**:使用官方 Docker 镜像可以快速部署 PostgreSQL 和 PGVector
13
+
14
+ 示例部署脚本:
15
+
16
+ ```
17
+ docker run -p 5432:5432 -d --name pg -e POSTGRES_PASSWORD=mysecretpassword pgvector/pgvector:pg16
18
+ ```
19
+
20
+ - **注意事项**:确保分配足够的资源以处理向量操作
21
+
22
+ ### 2. S3 兼容的对象存储
23
+
24
+ S3(或兼容 S3 协议的存储服务)用于存储上传的文件。
25
+
26
+ - **用途**:存储原始文件
27
+ - **选项**:可以使用 AWS S3、MinIO 或其他兼容 S3 协议的存储服务
28
+ - **注意事项**:配置适当的访问权限和安全策略
29
+
30
+ ### 3. OpenAI Embedding
31
+
32
+ OpenAI 的嵌入(Embedding)服务用于将文本转化为向量表示。
33
+
34
+ - **用途**:生成文本的向量表示,用于语义搜索
35
+ - **注意事项**:
36
+ - 需要有效的 OpenAI API 密钥
37
+ - 实施适当的 API 调用限制和错误处理机制
38
+
39
+ ### 4. Unstructured.io(可选)
40
+
41
+ Unstructured.io 是一个强大的文档处理工具。
42
+
43
+ - **用途**:处理复杂的文档格式,提取结构化信息
44
+ - **应用场景**:处理 PDF、Word 等非纯文本格式的文档
45
+ - **注意事项**:评估处理需求,根据文档复杂度决定是否部署
46
+
47
+ ## 部署注意事项
48
+
49
+ 1. **数据安全**:确保所有组件都有适当的安全措施,特别是涉及敏感数据时。
50
+
51
+ 2. **性能优化**:
52
+
53
+ - 为 PostgreSQL 和 PGVector 配置足够的计算资源
54
+ - 优化 S3 存储的访问策略和缓存机制
55
+
56
+ 3. **可扩展性**:设计架构时考虑未来可能的数据增长和用户增加。
57
+
58
+ 4. **监控与维护**:
59
+
60
+ - 实施日志记录和监控系统
61
+ - 定期备份数据库和对象存储
62
+
63
+ 5. **合规性**:确保部署符合相关的数据保护法规和隐私政策。
64
+
65
+ 通过正确配置和集成这些核心组件,您可以为 LobeChat 构建一个强大、高效的知识库系统。每个组件都在整体架构中扮演着关键角色,共同支持高级的文档管理和智能检索功能。
@@ -62,6 +62,7 @@
62
62
  "pin": "تثبيت",
63
63
  "pinOff": "إلغاء التثبيت",
64
64
  "rag": {
65
+ "referenceChunks": "مراجع",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "حذف الاستعلام",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "تحديث معلومات المساعد",
157
158
  "upload": {
158
- "actionFiletip": "تحميل المستند",
159
- "actionTooltip": "تحميل الصورة",
160
- "disabled": "النموذج الحالي لا يدعم التعرف على الرؤية، يرجى تغيير النموذج المستخدم",
159
+ "action": {
160
+ "fileUpload": "رفع ملف",
161
+ "folderUpload": "رفع مجلد",
162
+ "imageDisabled": "النموذج الحالي لا يدعم التعرف على الصور، يرجى تغيير النموذج لاستخدامه",
163
+ "imageUpload": "رفع صورة",
164
+ "tooltip": "رفع"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "رفع ملف",
168
+ "actionTooltip": "رفع",
169
+ "disabled": "النموذج الحالي لا يدعم التعرف على الصور وتحليل الملفات، يرجى تغيير النموذج لاستخدامه"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "تحضير الأجزاء...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "لم يتم تحويل كتل النص بالكامل إلى متجهات، مما سيؤدي إلى عدم توفر وظيفة البحث الدلالي، لتحسين جودة البحث، يرجى تحويل كتل النص إلى متجهات",
53
+ "error": "فشل في تحويل البيانات إلى متجهات",
54
+ "errorResult": "فشل في تحويل البيانات إلى متجهات، يرجى التحقق والمحاولة مرة أخرى. سبب الفشل:",
53
55
  "processing": "يتم تحويل كتل النص إلى متجهات، يرجى الانتظار",
54
56
  "success": "تم تحويل جميع كتل النص الحالية إلى متجهات"
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Закачи",
63
63
  "pinOff": "Откачи",
64
64
  "rag": {
65
+ "referenceChunks": "Цитирани източници",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Изтрий Query",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Актуализирай информацията за агента",
157
158
  "upload": {
158
- "actionFiletip": "Загрузите файл",
159
- "actionTooltip": "Качи изображение",
160
- "disabled": "Текущият модел не поддържа визуално разпознаване. Моля, превключи моделите, за да използваш тази функция.",
159
+ "action": {
160
+ "fileUpload": "Качване на файл",
161
+ "folderUpload": "Качване на папка",
162
+ "imageDisabled": "Текущият модел не поддържа визуално разпознаване, моля, превключете модела и опитайте отново",
163
+ "imageUpload": "Качване на изображение",
164
+ "tooltip": "Качване"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Качване на файл",
168
+ "actionTooltip": "Качване",
169
+ "disabled": "Текущият модел не поддържа визуално разпознаване и анализ на файлове, моля, превключете модела и опитайте отново"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Подготовка на парчета...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Текстовите блокове все още не са напълно векторизирани, което ще доведе до недостъпност на семантичното търсене. За подобряване на качеството на търсенето, моля, векторизирайте текстовите блокове.",
53
+ "error": "Неуспешна векторизация",
54
+ "errorResult": "Неуспешна векторизация, моля проверете и опитайте отново. Причина за неуспеха:",
53
55
  "processing": "Текстовите блокове се векторизират, моля, бъдете търпеливи.",
54
56
  "success": "Текущите текстови блокове са напълно векторизирани."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Anheften",
63
63
  "pinOff": "Anheften aufheben",
64
64
  "rag": {
65
+ "referenceChunks": "Referenzstücke",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Abfrage löschen",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Assistenteninformationen aktualisieren",
157
158
  "upload": {
158
- "actionFiletip": "Laden Sie die Datei hoch",
159
- "actionTooltip": "Bild hochladen",
160
- "disabled": "Das aktuelle Modell unterstützt keine visuelle Erkennung. Bitte wechseln Sie das Modell, um es zu verwenden.",
159
+ "action": {
160
+ "fileUpload": "Datei hochladen",
161
+ "folderUpload": "Ordner hochladen",
162
+ "imageDisabled": "Das aktuelle Modell unterstützt keine visuelle Erkennung. Bitte wechseln Sie das Modell, um diese Funktion zu nutzen.",
163
+ "imageUpload": "Bild hochladen",
164
+ "tooltip": "Hochladen"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Datei hochladen",
168
+ "actionTooltip": "Hochladen",
169
+ "disabled": "Das aktuelle Modell unterstützt keine visuelle Erkennung und Dateianalyse. Bitte wechseln Sie das Modell, um diese Funktionen zu nutzen."
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Vorbereitung der Teile...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Textblöcke sind noch nicht vollständig vektorisiert, was die Funktion der semantischen Suche beeinträchtigen kann. Um die Suchqualität zu verbessern, vektorisieren Sie die Textblöcke.",
53
+ "error": "Vektorisierung fehlgeschlagen",
54
+ "errorResult": "Vektorisierung fehlgeschlagen, bitte überprüfen Sie und versuchen Sie es erneut. Grund für das Scheitern:",
53
55
  "processing": "Textblöcke werden vektorisiert, bitte haben Sie Geduld.",
54
56
  "success": "Alle aktuellen Textblöcke sind vektorisiert."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Pin",
63
63
  "pinOff": "Unpin",
64
64
  "rag": {
65
+ "referenceChunks": "Reference Source",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Delete Query Rewrite",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Update Assistant Information",
157
158
  "upload": {
158
- "actionFiletip": "Update File",
159
- "actionTooltip": "Upload Image",
160
- "disabled": "The current model does not support visual recognition. Please switch models to use this feature.",
159
+ "action": {
160
+ "fileUpload": "Upload File",
161
+ "folderUpload": "Upload Folder",
162
+ "imageDisabled": "The current model does not support visual recognition. Please switch models to use this feature.",
163
+ "imageUpload": "Upload Image",
164
+ "tooltip": "Upload"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Upload File",
168
+ "actionTooltip": "Upload",
169
+ "disabled": "The current model does not support visual recognition and file analysis. Please switch models to use this feature."
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Preparing chunks...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Text chunks have not been fully vectorized, which will render the semantic search feature unavailable. To improve search quality, please vectorize the text chunks.",
53
+ "error": "Vectorization failed",
54
+ "errorResult": "Vectorization failed, please check and try again. Reason for failure:",
53
55
  "processing": "Text chunks are being vectorized, please be patient.",
54
56
  "success": "All current text chunks have been vectorized."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Fijar",
63
63
  "pinOff": "Desfijar",
64
64
  "rag": {
65
+ "referenceChunks": "Fragmentos de referencia",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Eliminar reescritura de consulta",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Actualizar información del asistente",
157
158
  "upload": {
158
- "actionFiletip": "Sube el archivo",
159
- "actionTooltip": "Subir imagen",
160
- "disabled": "El modelo actual no admite reconocimiento visual. Por favor, cambia de modelo para usar esta función",
159
+ "action": {
160
+ "fileUpload": "Subir archivo",
161
+ "folderUpload": "Subir carpeta",
162
+ "imageDisabled": "El modelo actual no soporta reconocimiento visual, por favor cambie de modelo para usar esta función",
163
+ "imageUpload": "Subir imagen",
164
+ "tooltip": "Subir"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Subir archivo",
168
+ "actionTooltip": "Subir",
169
+ "disabled": "El modelo actual no soporta reconocimiento visual ni análisis de archivos, por favor cambie de modelo para usar esta función"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Preparando fragmentos...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Los bloques de texto aún no están completamente vectorizados, lo que hará que la función de búsqueda semántica no esté disponible. Para mejorar la calidad de búsqueda, por favor vectorice los bloques de texto.",
53
+ "error": "Error de vectorización",
54
+ "errorResult": "Error de vectorización, por favor verifica y vuelve a intentarlo. Motivo del fallo:",
53
55
  "processing": "Los bloques de texto están siendo vectorizados, por favor, tenga paciencia.",
54
56
  "success": "Todos los bloques de texto actuales han sido vectorizados."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Épingler",
63
63
  "pinOff": "Désépingler",
64
64
  "rag": {
65
+ "referenceChunks": "Références",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Supprimer la réécriture de la requête",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Mettre à jour les informations de l'agent",
157
158
  "upload": {
158
- "actionFiletip": "Télécharger le fichier",
159
- "actionTooltip": "Télécharger une image",
160
- "disabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle. Veuillez changer de modèle pour utiliser cette fonctionnalité.",
159
+ "action": {
160
+ "fileUpload": "Télécharger un fichier",
161
+ "folderUpload": "Télécharger un dossier",
162
+ "imageDisabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle, veuillez changer de modèle pour l'utiliser",
163
+ "imageUpload": "Télécharger une image",
164
+ "tooltip": "Télécharger"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Télécharger un fichier",
168
+ "actionTooltip": "Télécharger",
169
+ "disabled": "Le modèle actuel ne prend pas en charge la reconnaissance visuelle et l'analyse de fichiers, veuillez changer de modèle pour l'utiliser"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Préparation des morceaux...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Les blocs de texte n'ont pas encore été entièrement vectorisés, ce qui rendra la fonction de recherche sémantique indisponible. Pour améliorer la qualité de la recherche, veuillez vectoriser les blocs de texte.",
53
+ "error": "Échec de la vectorisation",
54
+ "errorResult": "Échec de la vectorisation, veuillez vérifier et réessayer. Raison de l'échec :",
53
55
  "processing": "Les blocs de texte sont en cours de vectorisation, veuillez patienter.",
54
56
  "success": "Tous les blocs de texte sont maintenant vectorisés."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Fissa in alto",
63
63
  "pinOff": "Annulla fissaggio in alto",
64
64
  "rag": {
65
+ "referenceChunks": "Citazioni di riferimento",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Elimina la Query riscritta",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Aggiorna informazioni assistente",
157
158
  "upload": {
158
- "actionFiletip": "Carica il file",
159
- "actionTooltip": "Carica immagine",
160
- "disabled": "Il modello attuale non supporta il riconoscimento visivo, si prega di cambiare modello prima di utilizzarlo",
159
+ "action": {
160
+ "fileUpload": "Carica file",
161
+ "folderUpload": "Carica cartella",
162
+ "imageDisabled": "Il modello attuale non supporta il riconoscimento visivo, si prega di cambiare modello per utilizzare questa funzione",
163
+ "imageUpload": "Carica immagine",
164
+ "tooltip": "Carica"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Carica file",
168
+ "actionTooltip": "Carica",
169
+ "disabled": "Il modello attuale non supporta il riconoscimento visivo e l'analisi dei file, si prega di cambiare modello per utilizzare questa funzione"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Preparazione dei blocchi...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "I blocchi di testo non sono stati completamente vettorizzati, il che comporterà l'impossibilità di utilizzare la funzione di ricerca semantica. Per migliorare la qualità della ricerca, si prega di vettorizzare i blocchi di testo.",
53
+ "error": "Errore di vettorizzazione",
54
+ "errorResult": "Vettorizzazione fallita, controlla e riprova. Motivo del fallimento:",
53
55
  "processing": "I blocchi di testo sono in fase di vettorizzazione, ti preghiamo di attendere",
54
56
  "success": "Attualmente tutti i blocchi di testo sono stati vettorizzati"
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "ピン留め",
63
63
  "pinOff": "ピン留め解除",
64
64
  "rag": {
65
+ "referenceChunks": "参照チャンク",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "クエリを削除",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "エージェント情報を更新",
157
158
  "upload": {
158
- "actionFiletip": "ファイルをアップロードする",
159
- "actionTooltip": "画像をアップロード",
160
- "disabled": "現在のモデルはビジュアル認識をサポートしていません。モデルを切り替えて使用してください",
159
+ "action": {
160
+ "fileUpload": "ファイルをアップロード",
161
+ "folderUpload": "フォルダをアップロード",
162
+ "imageDisabled": "現在のモデルは視覚認識をサポートしていません。モデルを切り替えてから使用してください。",
163
+ "imageUpload": "画像をアップロード",
164
+ "tooltip": "アップロード"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "ファイルをアップロード",
168
+ "actionTooltip": "アップロード",
169
+ "disabled": "現在のモデルは視覚認識とファイル分析をサポートしていません。モデルを切り替えてから使用してください。"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "ブロックの準備中...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "テキストブロックはまだ完全にベクトル化されていません。これにより意味検索機能が使用できなくなります。検索品質を向上させるために、テキストブロックをベクトル化してください",
53
+ "error": "ベクトル化に失敗しました",
54
+ "errorResult": "ベクトル化に失敗しました。再試行する前に確認してください。失敗の理由:",
53
55
  "processing": "テキストブロックをベクトル化中です。しばらくお待ちください",
54
56
  "success": "現在のテキストブロックはすべてベクトル化されています"
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "고정",
63
63
  "pinOff": "고정 해제",
64
64
  "rag": {
65
+ "referenceChunks": "참조 조각",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "쿼리 삭제",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "도우미 정보 업데이트",
157
158
  "upload": {
158
- "actionFiletip": "파일 업로드",
159
- "actionTooltip": "이미지 업로드",
160
- "disabled": "현재 모델은 시각 인식을 지원하지 않습니다. 모델을 전환한 후 사용해주세요.",
159
+ "action": {
160
+ "fileUpload": "파일 업로드",
161
+ "folderUpload": "폴더 업로드",
162
+ "imageDisabled": "현재 모델은 시각 인식을 지원하지 않습니다. 모델을 변경한 후 사용하세요.",
163
+ "imageUpload": "이미지 업로드",
164
+ "tooltip": "업로드"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "파일 업로드",
168
+ "actionTooltip": "업로드",
169
+ "disabled": "현재 모델은 시각 인식 및 파일 분석을 지원하지 않습니다. 모델을 변경한 후 사용하세요."
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "청크 준비 중...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "텍스트 블록이 완전히 벡터화되지 않았습니다. 이는 의미 검색 기능을 사용할 수 없게 만듭니다. 검색 품질을 향상시키기 위해 텍스트 블록을 벡터화해 주세요.",
53
+ "error": "벡터화 실패",
54
+ "errorResult": "벡터화에 실패했습니다. 다시 확인한 후 재시도해 주세요. 실패 원인:",
53
55
  "processing": "텍스트 블록이 벡터화되고 있습니다. 잠시 기다려 주세요.",
54
56
  "success": "현재 텍스트 블록이 모두 벡터화되었습니다."
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Vastzetten",
63
63
  "pinOff": "Vastzetten uitschakelen",
64
64
  "rag": {
65
+ "referenceChunks": "Referentiestukken",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Verwijder Query herschrijving",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Assistentgegevens bijwerken",
157
158
  "upload": {
158
- "actionFiletip": "Upload het bestand",
159
- "actionTooltip": "Upload afbeelding",
160
- "disabled": "Het huidige model ondersteunt geen visuele herkenning. Schakel over naar een ander model om dit te gebruiken.",
159
+ "action": {
160
+ "fileUpload": "Bestand uploaden",
161
+ "folderUpload": "Map uploaden",
162
+ "imageDisabled": "Dit model ondersteunt momenteel geen visuele herkenning, schakel alstublieft naar een ander model.",
163
+ "imageUpload": "Afbeelding uploaden",
164
+ "tooltip": "Uploaden"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Bestand uploaden",
168
+ "actionTooltip": "Uploaden",
169
+ "disabled": "Dit model ondersteunt momenteel geen visuele herkenning en bestandanalyse, schakel alstublieft naar een ander model."
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Voorbereiden van blokken...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Tekstblokken zijn nog niet volledig gevectoriseerd, wat de semantische zoekfunctie kan uitschakelen. Om de zoekkwaliteit te verbeteren, vectoriseer de tekstblokken.",
53
+ "error": "Vectorisatie mislukt",
54
+ "errorResult": "Vectorisatie mislukt, controleer en probeer het opnieuw. Reden van falen:",
53
55
  "processing": "Tekstblokken worden gevectoriseerd, graag even geduld.",
54
56
  "success": "Huidige tekstblokken zijn allemaal gevectoriseerd"
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Przypnij",
63
63
  "pinOff": "Odepnij",
64
64
  "rag": {
65
+ "referenceChunks": "Fragmenty odniesienia",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Usuń przepisanie zapytania",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Aktualizuj informacje asystenta",
157
158
  "upload": {
158
- "actionFiletip": "Prześlij plik",
159
- "actionTooltip": "Prześlij obraz",
160
- "disabled": "Obecny model nie obsługuje rozpoznawania wizyjnego. Proszę przełączyć model.",
159
+ "action": {
160
+ "fileUpload": "Prześlij plik",
161
+ "folderUpload": "Prześlij folder",
162
+ "imageDisabled": "Aktualny model nie obsługuje rozpoznawania wizualnego, przełącz się na inny model, aby użyć tej funkcji",
163
+ "imageUpload": "Prześlij obraz",
164
+ "tooltip": "Prześlij"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Prześlij plik",
168
+ "actionTooltip": "Prześlij",
169
+ "disabled": "Aktualny model nie obsługuje rozpoznawania wizualnego i analizy plików, przełącz się na inny model, aby użyć tej funkcji"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Przygotowywanie fragmentów...",
163
173
  "status": {
@@ -50,6 +50,8 @@
50
50
  "chunks": {
51
51
  "embeddingStatus": {
52
52
  "empty": "Bloki tekstowe nie zostały w pełni wektoryzowane, co spowoduje, że funkcja wyszukiwania semantycznego będzie niedostępna. Aby poprawić jakość wyszukiwania, proszę wektoryzować bloki tekstowe",
53
+ "error": "Błąd wektoryzacji",
54
+ "errorResult": "Błąd wektoryzacji, spróbuj ponownie po sprawdzeniu. Powód błędu:",
53
55
  "processing": "Bloki tekstowe są wektoryzowane, proszę czekać",
54
56
  "success": "Obecne bloki tekstowe zostały w pełni wektoryzowane"
55
57
  },
@@ -62,6 +62,7 @@
62
62
  "pin": "Fixar",
63
63
  "pinOff": "Desafixar",
64
64
  "rag": {
65
+ "referenceChunks": "Referências",
65
66
  "userQuery": {
66
67
  "actions": {
67
68
  "delete": "Excluir reescrita de Query",
@@ -155,9 +156,18 @@
155
156
  },
156
157
  "updateAgent": "Atualizar Informações do Assistente",
157
158
  "upload": {
158
- "actionFiletip": "Enviar arquivo",
159
- "actionTooltip": "Enviar Imagem",
160
- "disabled": "O modelo atual não suporta reconhecimento visual. Por favor, altere o modelo antes de usar.",
159
+ "action": {
160
+ "fileUpload": "Enviar arquivo",
161
+ "folderUpload": "Enviar pasta",
162
+ "imageDisabled": "O modelo atual não suporta reconhecimento visual, por favor, mude de modelo antes de usar",
163
+ "imageUpload": "Enviar imagem",
164
+ "tooltip": "Enviar"
165
+ },
166
+ "clientMode": {
167
+ "actionFiletip": "Enviar arquivo",
168
+ "actionTooltip": "Enviar",
169
+ "disabled": "O modelo atual não suporta reconhecimento visual e análise de arquivos, por favor, mude de modelo antes de usar"
170
+ },
161
171
  "preview": {
162
172
  "prepareTasks": "Preparando partes...",
163
173
  "status": {