open-webui 0.3.31.dev1__tar.gz → 0.3.33.dev1__tar.gz

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 (617) hide show
  1. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/CHANGELOG.md +20 -0
  2. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/Dockerfile +11 -1
  3. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/PKG-INFO +12 -8
  4. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/TROUBLESHOOTING.md +1 -1
  5. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/audio/main.py +39 -24
  6. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/images/utils/comfyui.py +18 -6
  7. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/ollama/main.py +29 -55
  8. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/openai/main.py +6 -5
  9. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/main.py +89 -66
  10. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/utils.py +93 -58
  11. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/vector/connector.py +4 -0
  12. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/vector/dbs/chroma.py +6 -2
  13. open_webui-0.3.33.dev1/backend/open_webui/apps/retrieval/vector/dbs/qdrant.py +179 -0
  14. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/main.py +67 -3
  15. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/models/chats.py +805 -0
  16. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/models/feedbacks.py +254 -0
  17. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/files.py +51 -4
  18. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/models/folders.py +271 -0
  19. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/knowledge.py +16 -0
  20. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/models/tags.py +109 -0
  21. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/auths.py +66 -7
  22. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/chats.py +272 -89
  23. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/routers/evaluations.py +147 -0
  24. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/files.py +59 -46
  25. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/routers/folders.py +251 -0
  26. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/functions.py +1 -1
  27. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/knowledge.py +6 -1
  28. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/tools.py +0 -3
  29. open_webui-0.3.33.dev1/backend/open_webui/apps/webui/routers/utils.py +99 -0
  30. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/utils.py +0 -1
  31. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/config.py +110 -35
  32. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/constants.py +4 -1
  33. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/env.py +29 -2
  34. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/main.py +226 -213
  35. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/1af9b942657b_migrate_tags.py +151 -0
  36. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/242a2047eae0_update_chat_table.py +82 -0
  37. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/3ab32c4b8f59_update_tags.py +81 -0
  38. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/4ace53fd72c8_update_folder_table_datetime.py +67 -0
  39. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/af906e964978_add_feedback_table.py +51 -0
  40. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/c29facfe716b_update_file_table_path.py +79 -0
  41. open_webui-0.3.33.dev1/backend/open_webui/migrations/versions/c69f45358db4_add_folder_table.py +50 -0
  42. open_webui-0.3.33.dev1/backend/open_webui/static/assets/pdf-style.css +319 -0
  43. open_webui-0.3.33.dev1/backend/open_webui/static/fonts/NotoSans-Variable.ttf +0 -0
  44. open_webui-0.3.33.dev1/backend/open_webui/static/fonts/NotoSansJP-Variable.ttf +0 -0
  45. open_webui-0.3.33.dev1/backend/open_webui/static/fonts/NotoSansKR-Variable.ttf +0 -0
  46. open_webui-0.3.33.dev1/backend/open_webui/static/fonts/NotoSansSC-Variable.ttf +0 -0
  47. open_webui-0.3.33.dev1/backend/open_webui/storage/provider.py +163 -0
  48. open_webui-0.3.33.dev1/backend/open_webui/utils/oauth.py +261 -0
  49. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/payload.py +50 -1
  50. open_webui-0.3.33.dev1/backend/open_webui/utils/pdf_generator.py +139 -0
  51. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/response.py +2 -3
  52. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/task.py +56 -16
  53. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/utils.py +1 -1
  54. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/requirements.txt +7 -1
  55. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/e2e/chat.cy.ts +3 -3
  56. open_webui-0.3.33.dev1/cypress/e2e/documents.cy.ts +2 -0
  57. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/support/e2e.ts +0 -44
  58. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docs/apache.md +1 -1
  59. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/package-lock.json +976 -64
  60. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/package.json +13 -2
  61. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/pyproject.toml +13 -9
  62. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/app.css +28 -2
  63. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/chats/index.ts +261 -10
  64. {open_webui-0.3.31.dev1/src/lib/apis/documents → open_webui-0.3.33.dev1/src/lib/apis/evaluations}/index.ts +52 -69
  65. open_webui-0.3.33.dev1/src/lib/apis/folders/index.ts +269 -0
  66. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/index.ts +74 -2
  67. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/retrieval/index.ts +1 -1
  68. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/streaming/index.ts +6 -0
  69. open_webui-0.3.33.dev1/src/lib/components/AddFilesPlaceholder.svelte +28 -0
  70. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/ChangelogModal.svelte +5 -2
  71. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/AddUserModal.svelte +11 -10
  72. open_webui-0.3.33.dev1/src/lib/components/admin/Evaluations/FeedbackMenu.svelte +46 -0
  73. open_webui-0.3.33.dev1/src/lib/components/admin/Evaluations.svelte +633 -0
  74. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Audio.svelte +98 -7
  75. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Connections.svelte +1 -1
  76. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Documents.svelte +113 -93
  77. open_webui-0.3.33.dev1/src/lib/components/admin/Settings/Evaluations/Model.svelte +63 -0
  78. open_webui-0.3.33.dev1/src/lib/components/admin/Settings/Evaluations/ModelModal.svelte +418 -0
  79. open_webui-0.3.33.dev1/src/lib/components/admin/Settings/Evaluations.svelte +158 -0
  80. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/General.svelte +1 -1
  81. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Images.svelte +1 -1
  82. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Interface.svelte +21 -9
  83. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Models.svelte +1 -1
  84. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Pipelines.svelte +10 -8
  85. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Users.svelte +23 -114
  86. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/WebSearch.svelte +1 -1
  87. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings.svelte +31 -11
  88. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Artifacts.svelte +18 -1
  89. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Chat.svelte +385 -139
  90. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ChatControls.svelte +61 -14
  91. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ChatPlaceholder.svelte +2 -2
  92. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Controls/Controls.svelte +13 -13
  93. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/Commands/Knowledge.svelte +131 -43
  94. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/Commands/Models.svelte +4 -8
  95. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/Commands/Prompts.svelte +12 -20
  96. open_webui-0.3.33.dev1/src/lib/components/chat/MessageInput/Commands.svelte +80 -0
  97. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/InputMenu.svelte +8 -3
  98. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/VoiceRecording.svelte +10 -2
  99. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput.svelte +230 -214
  100. open_webui-0.3.33.dev1/src/lib/components/chat/Messages/Citations.svelte +219 -0
  101. open_webui-0.3.33.dev1/src/lib/components/chat/Messages/CitationsModal.svelte +163 -0
  102. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/CodeBlock.svelte +16 -7
  103. open_webui-0.3.33.dev1/src/lib/components/chat/Messages/CodeExecutionModal.svelte +118 -0
  104. open_webui-0.3.33.dev1/src/lib/components/chat/Messages/CodeExecutions.svelte +80 -0
  105. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/ContentRenderer.svelte +48 -24
  106. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Message.svelte +1 -0
  107. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/MultiResponseMessages.svelte +3 -2
  108. open_webui-0.3.33.dev1/src/lib/components/chat/Messages/RateComment.svelte +206 -0
  109. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/ResponseMessage.svelte +149 -20
  110. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/UserMessage.svelte +25 -23
  111. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages.svelte +6 -12
  112. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ModelSelector/Selector.svelte +23 -11
  113. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ModelSelector.svelte +1 -0
  114. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Overview.svelte +15 -4
  115. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Placeholder.svelte +18 -19
  116. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Account.svelte +10 -10
  117. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Audio.svelte +1 -1
  118. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/General.svelte +1 -1
  119. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Interface.svelte +63 -3
  120. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Personalization.svelte +1 -1
  121. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/SettingsModal.svelte +17 -17
  122. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ShortcutsModal.svelte +1 -1
  123. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/TagChatModal.svelte +9 -1
  124. open_webui-0.3.33.dev1/src/lib/components/chat/Tags.svelte +82 -0
  125. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Badge.svelte +2 -1
  126. open_webui-0.3.33.dev1/src/lib/components/common/Collapsible.svelte +88 -0
  127. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/ConfirmDialog.svelte +9 -4
  128. open_webui-0.3.33.dev1/src/lib/components/common/DragGhost.svelte +30 -0
  129. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Drawer.svelte +2 -14
  130. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Dropdown.svelte +1 -1
  131. open_webui-0.3.33.dev1/src/lib/components/common/Folder.svelte +141 -0
  132. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Modal.svelte +7 -3
  133. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Pagination.svelte +3 -3
  134. open_webui-0.3.33.dev1/src/lib/components/common/RichTextInput.svelte +476 -0
  135. open_webui-0.3.33.dev1/src/lib/components/common/SVGPanZoom.svelte +53 -0
  136. open_webui-0.3.33.dev1/src/lib/components/common/Sidebar.svelte +30 -0
  137. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Switch.svelte +1 -1
  138. open_webui-0.3.33.dev1/src/lib/components/common/Tags/TagList.svelte +32 -0
  139. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Tags.svelte +4 -6
  140. open_webui-0.3.33.dev1/src/lib/components/common/Textarea.svelte +38 -0
  141. open_webui-0.3.33.dev1/src/lib/components/icons/ArrowLeft.svelte +15 -0
  142. open_webui-0.3.33.dev1/src/lib/components/icons/ArrowRight.svelte +15 -0
  143. open_webui-0.3.33.dev1/src/lib/components/icons/ChartBar.svelte +10 -0
  144. open_webui-0.3.33.dev1/src/lib/components/icons/CloudArrowUp.svelte +19 -0
  145. open_webui-0.3.33.dev1/src/lib/components/icons/Cog6.svelte +20 -0
  146. open_webui-0.3.33.dev1/src/lib/components/icons/Document.svelte +19 -0
  147. open_webui-0.3.33.dev1/src/lib/components/icons/DocumentChartBar.svelte +15 -0
  148. open_webui-0.3.33.dev1/src/lib/components/icons/Download.svelte +19 -0
  149. open_webui-0.3.33.dev1/src/lib/components/icons/Mic.svelte +10 -0
  150. open_webui-0.3.33.dev1/src/lib/components/icons/Minus.svelte +15 -0
  151. open_webui-0.3.33.dev1/src/lib/components/icons/PencilSolid.svelte +10 -0
  152. open_webui-0.3.33.dev1/src/lib/components/icons/PencilSquare.svelte +13 -0
  153. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Navbar/Menu.svelte +66 -56
  154. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Navbar.svelte +5 -4
  155. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte +0 -2
  156. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Sidebar/ChatItem.svelte +157 -53
  157. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar/ChatMenu.svelte +277 -0
  158. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar/Folders/FolderMenu.svelte +70 -0
  159. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar/Folders.svelte +35 -0
  160. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar/RecursiveFolder.svelte +482 -0
  161. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar/SearchInput.svelte +218 -0
  162. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Sidebar/UserMenu.svelte +10 -10
  163. open_webui-0.3.33.dev1/src/lib/components/layout/Sidebar.svelte +832 -0
  164. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/UpdateInfoToast.svelte +3 -9
  165. open_webui-0.3.31.dev1/src/lib/components/playground/ChatCompletion.svelte → open_webui-0.3.33.dev1/src/lib/components/playground/Chat/Messages.svelte +4 -38
  166. open_webui-0.3.33.dev1/src/lib/components/playground/Chat.svelte +374 -0
  167. open_webui-0.3.33.dev1/src/lib/components/playground/Completions.svelte +197 -0
  168. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Functions/FunctionEditor.svelte +53 -47
  169. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Functions.svelte +58 -38
  170. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge/Collection/AddContentMenu.svelte +1 -1
  171. open_webui-0.3.33.dev1/src/lib/components/workspace/Knowledge/Collection/AddTextContentModal.svelte +165 -0
  172. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge/Collection/Files.svelte +9 -1
  173. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge/Collection.svelte +290 -156
  174. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge.svelte +20 -26
  175. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models.svelte +72 -46
  176. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Prompts.svelte +64 -47
  177. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Tools/ToolkitEditor.svelte +53 -47
  178. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Tools.svelte +58 -38
  179. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ar-BH/translation.json +82 -23
  180. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/bg-BG/translation.json +82 -23
  181. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/bn-BD/translation.json +82 -23
  182. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ca-ES/translation.json +99 -40
  183. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ceb-PH/translation.json +82 -23
  184. open_webui-0.3.33.dev1/src/lib/i18n/locales/da-DK/translation.json +847 -0
  185. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/de-DE/translation.json +82 -23
  186. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/dg-DG/translation.json +82 -23
  187. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/en-GB/translation.json +82 -23
  188. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/en-US/translation.json +82 -23
  189. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/es-ES/translation.json +230 -171
  190. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/fa-IR/translation.json +82 -23
  191. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/fi-FI/translation.json +82 -23
  192. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/fr-CA/translation.json +82 -23
  193. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/fr-FR/translation.json +141 -82
  194. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/he-IL/translation.json +82 -23
  195. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/hi-IN/translation.json +82 -23
  196. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/hr-HR/translation.json +82 -23
  197. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/id-ID/translation.json +82 -23
  198. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ie-GA/translation.json +82 -23
  199. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/it-IT/translation.json +82 -23
  200. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ja-JP/translation.json +270 -211
  201. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ka-GE/translation.json +82 -23
  202. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ko-KR/translation.json +82 -23
  203. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/languages.json +4 -0
  204. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/lt-LT/translation.json +82 -23
  205. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ms-MY/translation.json +82 -23
  206. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/nb-NO/translation.json +82 -23
  207. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/nl-NL/translation.json +82 -23
  208. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/pa-IN/translation.json +82 -23
  209. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/pl-PL/translation.json +82 -23
  210. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/pt-BR/translation.json +82 -23
  211. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/pt-PT/translation.json +82 -23
  212. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ro-RO/translation.json +82 -23
  213. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/ru-RU/translation.json +82 -23
  214. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/sr-RS/translation.json +82 -23
  215. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/sv-SE/translation.json +82 -23
  216. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/th-TH/translation.json +82 -23
  217. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/tk-TW/translation.json +82 -23
  218. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/tr-TR/translation.json +82 -23
  219. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/uk-UA/translation.json +118 -59
  220. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/vi-VN/translation.json +82 -23
  221. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/zh-CN/translation.json +104 -45
  222. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/locales/zh-TW/translation.json +198 -139
  223. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/stores/index.ts +1 -1
  224. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/index.ts +25 -9
  225. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/marked/katex-extension.ts +1 -1
  226. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/+layout.svelte +17 -7
  227. open_webui-0.3.33.dev1/src/routes/(app)/admin/+layout.svelte +90 -0
  228. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/admin/+page.svelte +194 -108
  229. open_webui-0.3.33.dev1/src/routes/(app)/admin/evaluations/+page.svelte +5 -0
  230. open_webui-0.3.33.dev1/src/routes/(app)/playground/+layout.svelte +70 -0
  231. open_webui-0.3.33.dev1/src/routes/(app)/playground/+page.svelte +5 -0
  232. open_webui-0.3.33.dev1/src/routes/(app)/playground/completions/+page.svelte +5 -0
  233. open_webui-0.3.33.dev1/src/routes/(app)/workspace/+layout.svelte +117 -0
  234. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/models/create/+page.svelte +10 -8
  235. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/models/edit/+page.svelte +10 -8
  236. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/prompts/create/+page.svelte +10 -8
  237. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/prompts/edit/+page.svelte +10 -8
  238. open_webui-0.3.33.dev1/src/routes/watch/+page.svelte +22 -0
  239. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/themes/rosepine-dawn.css +1 -1
  240. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/themes/rosepine.css +1 -1
  241. open_webui-0.3.31.dev1/backend/open_webui/apps/webui/models/chats.py +0 -386
  242. open_webui-0.3.31.dev1/backend/open_webui/apps/webui/models/tags.py +0 -262
  243. open_webui-0.3.31.dev1/backend/open_webui/apps/webui/routers/utils.py +0 -140
  244. open_webui-0.3.31.dev1/backend/open_webui/test/apps/webui/routers/test_documents.py +0 -105
  245. open_webui-0.3.31.dev1/cypress/e2e/documents.cy.ts +0 -46
  246. open_webui-0.3.31.dev1/src/lib/components/AddFilesPlaceholder.svelte +0 -21
  247. open_webui-0.3.31.dev1/src/lib/components/chat/MessageInput/Commands.svelte +0 -140
  248. open_webui-0.3.31.dev1/src/lib/components/chat/Messages/Citations.svelte +0 -67
  249. open_webui-0.3.31.dev1/src/lib/components/chat/Messages/CitationsModal.svelte +0 -103
  250. open_webui-0.3.31.dev1/src/lib/components/chat/Messages/RateComment.svelte +0 -133
  251. open_webui-0.3.31.dev1/src/lib/components/chat/Tags.svelte +0 -82
  252. open_webui-0.3.31.dev1/src/lib/components/common/Collapsible.svelte +0 -45
  253. open_webui-0.3.31.dev1/src/lib/components/common/SVGPanZoom.svelte +0 -29
  254. open_webui-0.3.31.dev1/src/lib/components/common/Tags/TagList.svelte +0 -34
  255. open_webui-0.3.31.dev1/src/lib/components/documents/AddDocModal.svelte +0 -166
  256. open_webui-0.3.31.dev1/src/lib/components/documents/EditDocModal.svelte +0 -181
  257. open_webui-0.3.31.dev1/src/lib/components/icons/ChatMenu.svelte +0 -124
  258. open_webui-0.3.31.dev1/src/lib/components/layout/Sidebar/ChatMenu.svelte +0 -154
  259. open_webui-0.3.31.dev1/src/lib/components/layout/Sidebar.svelte +0 -615
  260. open_webui-0.3.31.dev1/src/lib/components/playground/Playground.svelte +0 -399
  261. open_webui-0.3.31.dev1/src/lib/components/playground/TextCompletion.svelte +0 -0
  262. open_webui-0.3.31.dev1/src/lib/components/workspace/Documents.svelte +0 -627
  263. open_webui-0.3.31.dev1/src/lib/components/workspace/Knowledge/Collection/AddTextContentModal.svelte +0 -125
  264. open_webui-0.3.31.dev1/src/routes/(app)/admin/+layout.svelte +0 -95
  265. open_webui-0.3.31.dev1/src/routes/(app)/playground/+layout.svelte +0 -48
  266. open_webui-0.3.31.dev1/src/routes/(app)/playground/+page.svelte +0 -5
  267. open_webui-0.3.31.dev1/src/routes/(app)/workspace/+layout.svelte +0 -110
  268. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.dockerignore +0 -0
  269. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.env.example +0 -0
  270. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.eslintignore +0 -0
  271. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.eslintrc.cjs +0 -0
  272. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.gitattributes +0 -0
  273. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/FUNDING.yml +0 -0
  274. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  275. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  276. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/dependabot.yml +0 -0
  277. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/pull_request_template.md +0 -0
  278. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/build-release.yml +0 -0
  279. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/deploy-to-hf-spaces.yml +0 -0
  280. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/docker-build.yaml +0 -0
  281. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/format-backend.yaml +0 -0
  282. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/format-build-frontend.yaml +0 -0
  283. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/integration-test.yml +0 -0
  284. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/lint-backend.disabled +0 -0
  285. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/lint-frontend.disabled +0 -0
  286. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.github/workflows/release-pypi.yml +0 -0
  287. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.gitignore +0 -0
  288. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.npmrc +0 -0
  289. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.prettierignore +0 -0
  290. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/.prettierrc +0 -0
  291. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/CODE_OF_CONDUCT.md +0 -0
  292. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/Caddyfile.localhost +0 -0
  293. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/INSTALLATION.md +0 -0
  294. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/LICENSE +0 -0
  295. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/Makefile +0 -0
  296. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/README.md +0 -0
  297. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/.dockerignore +0 -0
  298. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/.gitignore +0 -0
  299. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/data/readme.txt +0 -0
  300. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/dev.sh +0 -0
  301. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/__init__.py +0 -0
  302. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/alembic.ini +0 -0
  303. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/images/main.py +0 -0
  304. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/loaders/main.py +0 -0
  305. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/models/colbert.py +0 -0
  306. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/vector/dbs/milvus.py +0 -0
  307. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/vector/main.py +0 -0
  308. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/brave.py +0 -0
  309. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/duckduckgo.py +0 -0
  310. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/google_pse.py +0 -0
  311. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/jina_search.py +0 -0
  312. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/main.py +0 -0
  313. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/searchapi.py +0 -0
  314. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/searxng.py +0 -0
  315. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/serper.py +0 -0
  316. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/serply.py +0 -0
  317. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/serpstack.py +0 -0
  318. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/tavily.py +0 -0
  319. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/brave.json +0 -0
  320. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/google_pse.json +0 -0
  321. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/searchapi.json +0 -0
  322. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/searxng.json +0 -0
  323. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/serper.json +0 -0
  324. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/serply.json +0 -0
  325. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/testdata/serpstack.json +0 -0
  326. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/retrieval/web/utils.py +0 -0
  327. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/socket/main.py +0 -0
  328. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/socket/utils.py +0 -0
  329. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/db.py +0 -0
  330. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/001_initial_schema.py +0 -0
  331. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/002_add_local_sharing.py +0 -0
  332. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/003_add_auth_api_key.py +0 -0
  333. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/004_add_archived.py +0 -0
  334. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/005_add_updated_at.py +0 -0
  335. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/006_migrate_timestamps_and_charfields.py +0 -0
  336. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/007_add_user_last_active_at.py +0 -0
  337. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/008_add_memory.py +0 -0
  338. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/009_add_models.py +0 -0
  339. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/010_migrate_modelfiles_to_models.py +0 -0
  340. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/011_add_user_settings.py +0 -0
  341. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/012_add_tools.py +0 -0
  342. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/013_add_user_info.py +0 -0
  343. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/014_add_files.py +0 -0
  344. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/015_add_functions.py +0 -0
  345. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/016_add_valves_and_is_active.py +0 -0
  346. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/017_add_user_oauth_sub.py +0 -0
  347. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/migrations/018_add_function_is_global.py +0 -0
  348. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/internal/wrappers.py +0 -0
  349. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/auths.py +0 -0
  350. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/documents.py +0 -0
  351. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/functions.py +0 -0
  352. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/memories.py +0 -0
  353. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/models.py +0 -0
  354. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/prompts.py +0 -0
  355. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/tools.py +0 -0
  356. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/models/users.py +0 -0
  357. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/configs.py +0 -0
  358. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/documents.py +0 -0
  359. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/memories.py +0 -0
  360. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/models.py +0 -0
  361. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/prompts.py +0 -0
  362. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/apps/webui/routers/users.py +0 -0
  363. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/data/readme.txt +0 -0
  364. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/README +0 -0
  365. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/env.py +0 -0
  366. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/script.py.mako +0 -0
  367. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/util.py +0 -0
  368. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/versions/6a39f3d8e55c_add_knowledge_table.py +0 -0
  369. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/versions/7e5b5dc7342b_init.py +0 -0
  370. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/versions/c0fbf31ca0db_update_file_table.py +0 -0
  371. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/migrations/versions/ca81bd47c050_add_config_table.py +0 -0
  372. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/favicon.png +0 -0
  373. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSans-Bold.ttf +0 -0
  374. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSans-Italic.ttf +0 -0
  375. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSans-Regular.ttf +0 -0
  376. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSansJP-Regular.ttf +0 -0
  377. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSansKR-Regular.ttf +0 -0
  378. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/fonts/NotoSansSC-Regular.ttf +0 -0
  379. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/logo.png +0 -0
  380. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/splash.png +0 -0
  381. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/static/user-import.csv +0 -0
  382. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/__init__.py +0 -0
  383. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/apps/webui/routers/test_auths.py +0 -0
  384. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/apps/webui/routers/test_chats.py +0 -0
  385. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/apps/webui/routers/test_models.py +0 -0
  386. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/apps/webui/routers/test_prompts.py +0 -0
  387. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/apps/webui/routers/test_users.py +0 -0
  388. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/util/abstract_integration_test.py +0 -0
  389. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/test/util/mock_user.py +0 -0
  390. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/logo.png +0 -0
  391. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/misc.py +0 -0
  392. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/schemas.py +0 -0
  393. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/security_headers.py +0 -0
  394. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/tools.py +0 -0
  395. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/open_webui/utils/webhook.py +0 -0
  396. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/start.sh +0 -0
  397. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/backend/start_windows.bat +0 -0
  398. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/confirm_remove.sh +0 -0
  399. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/data/example-doc.txt +0 -0
  400. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/e2e/registration.cy.ts +0 -0
  401. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/e2e/settings.cy.ts +0 -0
  402. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/support/index.d.ts +0 -0
  403. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress/tsconfig.json +0 -0
  404. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/cypress.config.ts +0 -0
  405. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/demo.gif +0 -0
  406. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.a1111-test.yaml +0 -0
  407. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.amdgpu.yaml +0 -0
  408. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.api.yaml +0 -0
  409. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.data.yaml +0 -0
  410. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.gpu.yaml +0 -0
  411. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docker-compose.yaml +0 -0
  412. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docs/CONTRIBUTING.md +0 -0
  413. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docs/README.md +0 -0
  414. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/docs/SECURITY.md +0 -0
  415. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/hatch_build.py +0 -0
  416. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/i18next-parser.config.ts +0 -0
  417. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/helm/README.md +0 -0
  418. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/kustomization.yaml +0 -0
  419. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/ollama-service.yaml +0 -0
  420. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/ollama-statefulset.yaml +0 -0
  421. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/open-webui.yaml +0 -0
  422. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/webui-deployment.yaml +0 -0
  423. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/webui-ingress.yaml +0 -0
  424. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/webui-pvc.yaml +0 -0
  425. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/base/webui-service.yaml +0 -0
  426. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/gpu/kustomization.yaml +0 -0
  427. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/kubernetes/manifest/gpu/ollama-statefulset-gpu.yaml +0 -0
  428. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/postcss.config.js +0 -0
  429. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/run-compose.sh +0 -0
  430. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/run-ollama-docker.sh +0 -0
  431. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/run.sh +0 -0
  432. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/scripts/prepare-pyodide.js +0 -0
  433. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/app.d.ts +0 -0
  434. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/app.html +0 -0
  435. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/audio/index.ts +0 -0
  436. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/auths/index.ts +0 -0
  437. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/configs/index.ts +0 -0
  438. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/files/index.ts +0 -0
  439. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/functions/index.ts +0 -0
  440. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/images/index.ts +0 -0
  441. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/knowledge/index.ts +0 -0
  442. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/memories/index.ts +0 -0
  443. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/models/index.ts +0 -0
  444. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/ollama/index.ts +0 -0
  445. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/openai/index.ts +0 -0
  446. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/prompts/index.ts +0 -0
  447. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/tools/index.ts +0 -0
  448. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/users/index.ts +0 -0
  449. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/apis/utils/index.ts +0 -0
  450. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/EditUserModal.svelte +0 -0
  451. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/Settings/Database.svelte +0 -0
  452. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/admin/UserChatsModal.svelte +0 -0
  453. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Controls/Valves.svelte +0 -0
  454. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/CallOverlay/VideoInputMenu.svelte +0 -0
  455. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/CallOverlay.svelte +0 -0
  456. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/MessageInput/FilesOverlay.svelte +0 -0
  457. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Error.svelte +0 -0
  458. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Markdown/KatexRenderer.svelte +0 -0
  459. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte +0 -0
  460. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte +0 -0
  461. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Markdown.svelte +0 -0
  462. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Name.svelte +0 -0
  463. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/ProfileImage.svelte +0 -0
  464. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/ProfileImageBase.svelte +0 -0
  465. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/ResponseMessage/WebSearchResults.svelte +0 -0
  466. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Messages/Skeleton.svelte +0 -0
  467. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Overview/Flow.svelte +0 -0
  468. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Overview/Node.svelte +0 -0
  469. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/About.svelte +0 -0
  470. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Account/UpdatePassword.svelte +0 -0
  471. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Advanced/AdvancedParams.svelte +0 -0
  472. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Chats.svelte +0 -0
  473. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Models.svelte +0 -0
  474. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Personalization/AddMemoryModal.svelte +0 -0
  475. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Personalization/EditMemoryModal.svelte +0 -0
  476. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Settings/Personalization/ManageModal.svelte +0 -0
  477. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/ShareChatModal.svelte +0 -0
  478. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/chat/Suggestions.svelte +0 -0
  479. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Banner.svelte +0 -0
  480. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Checkbox.svelte +0 -0
  481. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/CodeEditor.svelte +0 -0
  482. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/FileItem.svelte +0 -0
  483. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/FileItemModal.svelte +0 -0
  484. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Image.svelte +0 -0
  485. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/ImagePreview.svelte +0 -0
  486. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Loader.svelte +0 -0
  487. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Overlay.svelte +0 -0
  488. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Selector.svelte +0 -0
  489. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/SensitiveInput.svelte +0 -0
  490. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Spinner.svelte +0 -0
  491. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Tags/TagInput.svelte +0 -0
  492. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Tooltip.svelte +0 -0
  493. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/common/Valves.svelte +0 -0
  494. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/AdjustmentsHorizontal.svelte +0 -0
  495. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ArchiveBox.svelte +0 -0
  496. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ArrowDownTray.svelte +0 -0
  497. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ArrowPath.svelte +0 -0
  498. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ArrowUpCircle.svelte +0 -0
  499. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ArrowsPointingOut.svelte +0 -0
  500. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/BarsArrowUp.svelte +0 -0
  501. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Bolt.svelte +0 -0
  502. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/BookOpen.svelte +0 -0
  503. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Bookmark.svelte +0 -0
  504. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/BookmarkSlash.svelte +0 -0
  505. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChatBubble.svelte +0 -0
  506. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChatBubbleOval.svelte +0 -0
  507. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChatBubbles.svelte +0 -0
  508. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Check.svelte +0 -0
  509. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChevronDown.svelte +0 -0
  510. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChevronLeft.svelte +0 -0
  511. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChevronRight.svelte +0 -0
  512. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChevronUp.svelte +0 -0
  513. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/ChevronUpDown.svelte +0 -0
  514. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Clipboard.svelte +0 -0
  515. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Cube.svelte +0 -0
  516. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/DocumentArrowUpSolid.svelte +0 -0
  517. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/DocumentDuplicate.svelte +0 -0
  518. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/EllipsisHorizontal.svelte +0 -0
  519. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/EllipsisVertical.svelte +0 -0
  520. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/EyeSlash.svelte +0 -0
  521. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/FloppyDisk.svelte +0 -0
  522. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/FolderOpen.svelte +0 -0
  523. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/GarbageBin.svelte +0 -0
  524. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/GlobeAlt.svelte +0 -0
  525. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/GlobeAltSolid.svelte +0 -0
  526. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Headphone.svelte +0 -0
  527. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Heart.svelte +0 -0
  528. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Info.svelte +0 -0
  529. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Keyboard.svelte +0 -0
  530. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Lifebuoy.svelte +0 -0
  531. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/LightBlub.svelte +0 -0
  532. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Link.svelte +0 -0
  533. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/MagnifyingGlass.svelte +0 -0
  534. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Map.svelte +0 -0
  535. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/MenuLines.svelte +0 -0
  536. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Merge.svelte +0 -0
  537. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Pencil.svelte +0 -0
  538. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Plus.svelte +0 -0
  539. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/QuestionMarkCircle.svelte +0 -0
  540. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Search.svelte +0 -0
  541. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Share.svelte +0 -0
  542. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Sparkles.svelte +0 -0
  543. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/Star.svelte +0 -0
  544. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/User.svelte +0 -0
  545. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/WrenchSolid.svelte +0 -0
  546. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/icons/XMark.svelte +0 -0
  547. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Help/HelpMenu.svelte +0 -0
  548. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Help.svelte +0 -0
  549. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/layout/Overlay/AccountPending.svelte +0 -0
  550. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Functions/FunctionMenu.svelte +0 -0
  551. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge/CreateCollection.svelte +0 -0
  552. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Knowledge/ItemMenu.svelte +0 -0
  553. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/ActionsSelector.svelte +0 -0
  554. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/Capabilities.svelte +0 -0
  555. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/FiltersSelector.svelte +0 -0
  556. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/Knowledge/Selector.svelte +0 -0
  557. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/Knowledge.svelte +0 -0
  558. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/ModelMenu.svelte +0 -0
  559. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Models/ToolsSelector.svelte +0 -0
  560. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Prompts/PromptMenu.svelte +0 -0
  561. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/Tools/ToolMenu.svelte +0 -0
  562. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/common/ManifestModal.svelte +0 -0
  563. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/components/workspace/common/ValvesModal.svelte +0 -0
  564. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/constants.ts +0 -0
  565. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/i18n/index.ts +0 -0
  566. /open_webui-0.3.31.dev1/src/lib/i18n/locales/tk-TM/transaltion.json → /open_webui-0.3.33.dev1/src/lib/i18n/locales/tk-TM/translation.json +0 -0
  567. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/index.ts +0 -0
  568. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/types/index.ts +0 -0
  569. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/_template_old.ts +0 -0
  570. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/characters/index.ts +0 -0
  571. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/marked/extension.ts +0 -0
  572. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/rag/index.ts +0 -0
  573. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/utils/transitions/index.ts +0 -0
  574. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/lib/workers/pyodide.worker.ts +0 -0
  575. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/+page.svelte +0 -0
  576. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/admin/settings/+page.svelte +0 -0
  577. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/c/[id]/+page.svelte +0 -0
  578. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/+page.svelte +0 -0
  579. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/functions/+page.svelte +0 -0
  580. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/functions/create/+page.svelte +0 -0
  581. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/functions/edit/+page.svelte +0 -0
  582. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/knowledge/+page.svelte +0 -0
  583. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/knowledge/[id]/+page.svelte +0 -0
  584. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/knowledge/create/+page.svelte +0 -0
  585. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/models/+page.svelte +0 -0
  586. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/prompts/+page.svelte +0 -0
  587. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/tools/+page.svelte +0 -0
  588. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/tools/create/+page.svelte +0 -0
  589. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/(app)/workspace/tools/edit/+page.svelte +0 -0
  590. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/+error.svelte +0 -0
  591. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/+layout.js +0 -0
  592. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/+layout.svelte +0 -0
  593. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/auth/+page.svelte +0 -0
  594. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/error/+page.svelte +0 -0
  595. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/routes/s/[id]/+page.svelte +0 -0
  596. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/src/tailwind.css +0 -0
  597. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/assets/fonts/Archivo-Variable.ttf +0 -0
  598. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/assets/fonts/Inter-Variable.ttf +0 -0
  599. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/assets/fonts/Mona-Sans.woff2 +0 -0
  600. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/audio/greeting.mp3 +0 -0
  601. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/doge.png +0 -0
  602. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/favicon.png +0 -0
  603. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/manifest.json +0 -0
  604. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/opensearch.xml +0 -0
  605. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/pyodide/pyodide-lock.json +0 -0
  606. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/robots.txt +0 -0
  607. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/static/favicon.png +0 -0
  608. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/static/splash-dark.png +0 -0
  609. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/static/splash.png +0 -0
  610. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/static/user.png +0 -0
  611. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/svelte.config.js +0 -0
  612. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/tailwind.config.js +0 -0
  613. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/test/test_files/image_gen/sd-empty.pt +0 -0
  614. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/tsconfig.json +0 -0
  615. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/update_ollama_models.sh +0 -0
  616. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/uv.lock +0 -0
  617. {open_webui-0.3.31.dev1 → open_webui-0.3.33.dev1}/vite.config.ts +0 -0
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.32] - 2024-10-06
9
+
10
+ ### Added
11
+
12
+ - **🔢 Workspace Enhancements**: Added a display count for models, prompts, tools, and functions in the workspace, providing a clear overview and easier management.
13
+
14
+ ### Fixed
15
+
16
+ - **🖥️ Web and YouTube Attachment Fix**: Resolved an issue where attaching web links and YouTube videos was malfunctioning, ensuring seamless integration and display within chats.
17
+ - **📞 Call Mode Activation on Landing Page**: Fixed a bug where call mode was not operational from the landing page.
18
+
19
+ ### Changed
20
+
21
+ - **🔄 URL Parameter Refinement**: Updated the 'tool_ids' URL parameter to 'tools' or 'tool-ids' for more intuitive and consistent user experience.
22
+ - **🎨 Floating Buttons Styling Update**: Refactored the styling of floating buttons to intelligently adjust to the left side when there isn't enough room on the right, improving interface usability and aesthetic.
23
+ - **🔧 Enhanced Accessibility for Floating Buttons**: Implemented the ability to close floating buttons with the 'Esc' key, making workflow smoother and more efficient for users navigating via keyboard.
24
+ - **🖇️ Updated Information URL**: Information URLs now direct users to a general release page rather than a version-specific URL, ensuring access to the latest and relevant details all in one place.
25
+ - **📦 Library Dependencies Update**: Upgraded dependencies to ensure compatibility and performance optimization for pip installs.
26
+
8
27
  ## [0.3.31] - 2024-10-06
9
28
 
10
29
  ### Added
@@ -23,6 +42,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
23
42
  - **🔍 Query Embedding**: Adjusted embedding behavior to enhance system performance by not repeating query embedding.
24
43
  - **💾 Lazy Load Optimizations**: Implemented lazy loading of large dependencies to minimize initial memory usage, boosting performance.
25
44
  - **🍏 Apple Touch Icon Support**: Optimizes the display of icons for web bookmarks on Apple mobile devices.
45
+ - **🔽 Expandable Content Markdown Support**: Introducing 'details', 'summary' tag support for creating expandable content sections in markdown, facilitating cleaner, organized documentation and interactive content display.
26
46
 
27
47
  ### Fixed
28
48
 
@@ -1,6 +1,6 @@
1
1
  # syntax=docker/dockerfile:1
2
2
  # Initialize device type args
3
- # use build args in the docker build commmand with --build-arg="BUILDARG=true"
3
+ # use build args in the docker build command with --build-arg="BUILDARG=true"
4
4
  ARG USE_CUDA=false
5
5
  ARG USE_OLLAMA=false
6
6
  # Tested with cu117 for CUDA 11 and cu121 for CUDA 12 (default)
@@ -11,6 +11,10 @@ ARG USE_CUDA_VER=cu121
11
11
  # IMPORTANT: If you change the embedding model (sentence-transformers/all-MiniLM-L6-v2) and vice versa, you aren't able to use RAG Chat with your previous documents loaded in the WebUI! You need to re-embed them.
12
12
  ARG USE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
13
13
  ARG USE_RERANKING_MODEL=""
14
+
15
+ # Tiktoken encoding name; models to use can be found at https://huggingface.co/models?library=tiktoken
16
+ ARG USE_TIKTOKEN_ENCODING_NAME="cl100k_base"
17
+
14
18
  ARG BUILD_HASH=dev-build
15
19
  # Override at your own risk - non-root configurations are untested
16
20
  ARG UID=0
@@ -72,6 +76,10 @@ ENV RAG_EMBEDDING_MODEL="$USE_EMBEDDING_MODEL_DOCKER" \
72
76
  RAG_RERANKING_MODEL="$USE_RERANKING_MODEL_DOCKER" \
73
77
  SENTENCE_TRANSFORMERS_HOME="/app/backend/data/cache/embedding/models"
74
78
 
79
+ ## Tiktoken model settings ##
80
+ ENV TIKTOKEN_ENCODING_NAME="$USE_TIKTOKEN_ENCODING_NAME" \
81
+ TIKTOKEN_CACHE_DIR="/app/backend/data/cache/tiktoken"
82
+
75
83
  ## Hugging Face download cache ##
76
84
  ENV HF_HOME="/app/backend/data/cache/embedding/models"
77
85
 
@@ -131,11 +139,13 @@ RUN pip3 install uv && \
131
139
  uv pip install --system -r requirements.txt --no-cache-dir && \
132
140
  python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && \
133
141
  python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; \
142
+ python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; \
134
143
  else \
135
144
  pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir && \
136
145
  uv pip install --system -r requirements.txt --no-cache-dir && \
137
146
  python -c "import os; from sentence_transformers import SentenceTransformer; SentenceTransformer(os.environ['RAG_EMBEDDING_MODEL'], device='cpu')" && \
138
147
  python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_MODEL_DIR'])"; \
148
+ python -c "import os; import tiktoken; tiktoken.get_encoding(os.environ['TIKTOKEN_ENCODING_NAME'])"; \
139
149
  fi; \
140
150
  chown -R $UID:$GID /app/backend/data/
141
151
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: open-webui
3
- Version: 0.3.31.dev1
3
+ Version: 0.3.33.dev1
4
4
  Summary: Open WebUI
5
5
  Author-email: Timothy Jaeryang Baek <tim@openwebui.com>
6
6
  License: MIT License
@@ -32,11 +32,12 @@ Classifier: Programming Language :: Python :: 3.11
32
32
  Classifier: Topic :: Communications :: Chat
33
33
  Classifier: Topic :: Multimedia
34
34
  Requires-Python: <3.12.0a1,>=3.11
35
- Requires-Dist: aiohttp==3.10.5
35
+ Requires-Dist: aiohttp==3.10.8
36
36
  Requires-Dist: alembic==1.13.2
37
37
  Requires-Dist: anthropic
38
38
  Requires-Dist: apscheduler==3.10.4
39
39
  Requires-Dist: argon2-cffi==23.1.0
40
+ Requires-Dist: async-timeout
40
41
  Requires-Dist: authlib==1.3.2
41
42
  Requires-Dist: bcrypt==4.2.0
42
43
  Requires-Dist: black==24.8.0
@@ -45,7 +46,7 @@ Requires-Dist: chromadb==0.5.9
45
46
  Requires-Dist: colbert-ai==0.2.21
46
47
  Requires-Dist: docker~=7.1.0
47
48
  Requires-Dist: docx2txt==0.8
48
- Requires-Dist: duckduckgo-search~=6.2.11
49
+ Requires-Dist: duckduckgo-search~=6.2.13
49
50
  Requires-Dist: einops==0.8.0
50
51
  Requires-Dist: extract-msg
51
52
  Requires-Dist: fake-useragent==1.5.1
@@ -56,7 +57,8 @@ Requires-Dist: flask==3.0.3
56
57
  Requires-Dist: fpdf2==2.7.9
57
58
  Requires-Dist: ftfy==6.2.3
58
59
  Requires-Dist: google-generativeai==0.7.2
59
- Requires-Dist: langchain-chroma==0.1.2
60
+ Requires-Dist: googleapis-common-protos==1.63.2
61
+ Requires-Dist: langchain-chroma==0.1.4
60
62
  Requires-Dist: langchain-community==0.2.12
61
63
  Requires-Dist: langchain==0.2.15
62
64
  Requires-Dist: langfuse==2.44.0
@@ -65,22 +67,23 @@ Requires-Dist: nltk==3.9.1
65
67
  Requires-Dist: openai
66
68
  Requires-Dist: opencv-python-headless==4.10.0.84
67
69
  Requires-Dist: openpyxl==3.1.5
68
- Requires-Dist: pandas==2.2.2
70
+ Requires-Dist: pandas==2.2.3
69
71
  Requires-Dist: passlib[bcrypt]==1.7.4
70
72
  Requires-Dist: peewee-migrate==1.12.2
71
73
  Requires-Dist: peewee==3.17.6
72
74
  Requires-Dist: psutil
73
75
  Requires-Dist: psycopg2-binary==2.9.9
74
- Requires-Dist: pydantic==2.8.2
76
+ Requires-Dist: pydantic==2.9.2
75
77
  Requires-Dist: pydub
76
78
  Requires-Dist: pyjwt[crypto]==2.9.0
79
+ Requires-Dist: pymdown-extensions==10.11.2
77
80
  Requires-Dist: pymilvus==2.4.7
78
81
  Requires-Dist: pymongo
79
82
  Requires-Dist: pymysql==1.1.1
80
83
  Requires-Dist: pypandoc==1.13
81
84
  Requires-Dist: pypdf==4.3.1
82
85
  Requires-Dist: pytest-docker~=3.1.1
83
- Requires-Dist: pytest~=8.2.2
86
+ Requires-Dist: pytest~=8.3.2
84
87
  Requires-Dist: python-jose==3.3.0
85
88
  Requires-Dist: python-multipart==0.0.9
86
89
  Requires-Dist: python-pptx==1.0.0
@@ -91,12 +94,13 @@ Requires-Dist: rank-bm25==0.2.2
91
94
  Requires-Dist: rapidocr-onnxruntime==1.3.24
92
95
  Requires-Dist: redis
93
96
  Requires-Dist: requests==2.32.3
94
- Requires-Dist: sentence-transformers==3.0.1
97
+ Requires-Dist: sentence-transformers==3.2.0
95
98
  Requires-Dist: sqlalchemy==2.0.32
96
99
  Requires-Dist: tiktoken
97
100
  Requires-Dist: unstructured==0.15.9
98
101
  Requires-Dist: uvicorn[standard]==0.30.6
99
102
  Requires-Dist: validators==0.33.0
103
+ Requires-Dist: xhtml2pdf==0.2.16
100
104
  Requires-Dist: xlrd==2.0.1
101
105
  Requires-Dist: youtube-transcript-api==0.6.2
102
106
  Description-Content-Type: text/markdown
@@ -18,7 +18,7 @@ If you're experiencing connection issues, it’s often due to the WebUI docker c
18
18
  docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
19
19
  ```
20
20
 
21
- ### Error on Slow Reponses for Ollama
21
+ ### Error on Slow Responses for Ollama
22
22
 
23
23
  Open WebUI has a default timeout of 5 minutes for Ollama to finish generating the response. If needed, this can be adjusted via the environment variable AIOHTTP_CLIENT_TIMEOUT, which sets the timeout in seconds.
24
24
 
@@ -63,6 +63,9 @@ app.state.config.STT_OPENAI_API_KEY = AUDIO_STT_OPENAI_API_KEY
63
63
  app.state.config.STT_ENGINE = AUDIO_STT_ENGINE
64
64
  app.state.config.STT_MODEL = AUDIO_STT_MODEL
65
65
 
66
+ app.state.config.WHISPER_MODEL = WHISPER_MODEL
67
+ app.state.faster_whisper_model = None
68
+
66
69
  app.state.config.TTS_OPENAI_API_BASE_URL = AUDIO_TTS_OPENAI_API_BASE_URL
67
70
  app.state.config.TTS_OPENAI_API_KEY = AUDIO_TTS_OPENAI_API_KEY
68
71
  app.state.config.TTS_ENGINE = AUDIO_TTS_ENGINE
@@ -82,6 +85,31 @@ SPEECH_CACHE_DIR = Path(CACHE_DIR).joinpath("./audio/speech/")
82
85
  SPEECH_CACHE_DIR.mkdir(parents=True, exist_ok=True)
83
86
 
84
87
 
88
+ def set_faster_whisper_model(model: str, auto_update: bool = False):
89
+ if model and app.state.config.STT_ENGINE == "":
90
+ from faster_whisper import WhisperModel
91
+
92
+ faster_whisper_kwargs = {
93
+ "model_size_or_path": model,
94
+ "device": whisper_device_type,
95
+ "compute_type": "int8",
96
+ "download_root": WHISPER_MODEL_DIR,
97
+ "local_files_only": not auto_update,
98
+ }
99
+
100
+ try:
101
+ app.state.faster_whisper_model = WhisperModel(**faster_whisper_kwargs)
102
+ except Exception:
103
+ log.warning(
104
+ "WhisperModel initialization failed, attempting download with local_files_only=False"
105
+ )
106
+ faster_whisper_kwargs["local_files_only"] = False
107
+ app.state.faster_whisper_model = WhisperModel(**faster_whisper_kwargs)
108
+
109
+ else:
110
+ app.state.faster_whisper_model = None
111
+
112
+
85
113
  class TTSConfigForm(BaseModel):
86
114
  OPENAI_API_BASE_URL: str
87
115
  OPENAI_API_KEY: str
@@ -99,6 +127,7 @@ class STTConfigForm(BaseModel):
99
127
  OPENAI_API_KEY: str
100
128
  ENGINE: str
101
129
  MODEL: str
130
+ WHISPER_MODEL: str
102
131
 
103
132
 
104
133
  class AudioConfigUpdateForm(BaseModel):
@@ -152,6 +181,7 @@ async def get_audio_config(user=Depends(get_admin_user)):
152
181
  "OPENAI_API_KEY": app.state.config.STT_OPENAI_API_KEY,
153
182
  "ENGINE": app.state.config.STT_ENGINE,
154
183
  "MODEL": app.state.config.STT_MODEL,
184
+ "WHISPER_MODEL": app.state.config.WHISPER_MODEL,
155
185
  },
156
186
  }
157
187
 
@@ -176,6 +206,8 @@ async def update_audio_config(
176
206
  app.state.config.STT_OPENAI_API_KEY = form_data.stt.OPENAI_API_KEY
177
207
  app.state.config.STT_ENGINE = form_data.stt.ENGINE
178
208
  app.state.config.STT_MODEL = form_data.stt.MODEL
209
+ app.state.config.WHISPER_MODEL = form_data.stt.WHISPER_MODEL
210
+ set_faster_whisper_model(form_data.stt.WHISPER_MODEL, WHISPER_MODEL_AUTO_UPDATE)
179
211
 
180
212
  return {
181
213
  "tts": {
@@ -194,6 +226,7 @@ async def update_audio_config(
194
226
  "OPENAI_API_KEY": app.state.config.STT_OPENAI_API_KEY,
195
227
  "ENGINE": app.state.config.STT_ENGINE,
196
228
  "MODEL": app.state.config.STT_MODEL,
229
+ "WHISPER_MODEL": app.state.config.WHISPER_MODEL,
197
230
  },
198
231
  }
199
232
 
@@ -367,27 +400,10 @@ def transcribe(file_path):
367
400
  id = filename.split(".")[0]
368
401
 
369
402
  if app.state.config.STT_ENGINE == "":
370
- from faster_whisper import WhisperModel
371
-
372
- whisper_kwargs = {
373
- "model_size_or_path": WHISPER_MODEL,
374
- "device": whisper_device_type,
375
- "compute_type": "int8",
376
- "download_root": WHISPER_MODEL_DIR,
377
- "local_files_only": not WHISPER_MODEL_AUTO_UPDATE,
378
- }
379
-
380
- log.debug(f"whisper_kwargs: {whisper_kwargs}")
381
-
382
- try:
383
- model = WhisperModel(**whisper_kwargs)
384
- except Exception:
385
- log.warning(
386
- "WhisperModel initialization failed, attempting download with local_files_only=False"
387
- )
388
- whisper_kwargs["local_files_only"] = False
389
- model = WhisperModel(**whisper_kwargs)
403
+ if app.state.faster_whisper_model is None:
404
+ set_faster_whisper_model(app.state.config.WHISPER_MODEL)
390
405
 
406
+ model = app.state.faster_whisper_model
391
407
  segments, info = model.transcribe(file_path, beam_size=5)
392
408
  log.info(
393
409
  "Detected language '%s' with probability %f"
@@ -395,7 +411,6 @@ def transcribe(file_path):
395
411
  )
396
412
 
397
413
  transcript = "".join([segment.text for segment in list(segments)])
398
-
399
414
  data = {"text": transcript.strip()}
400
415
 
401
416
  # save the transcript to a json file
@@ -403,7 +418,7 @@ def transcribe(file_path):
403
418
  with open(transcript_file, "w") as f:
404
419
  json.dump(data, f)
405
420
 
406
- print(data)
421
+ log.debug(data)
407
422
  return data
408
423
  elif app.state.config.STT_ENGINE == "openai":
409
424
  if is_mp4_audio(file_path):
@@ -417,7 +432,7 @@ def transcribe(file_path):
417
432
  files = {"file": (filename, open(file_path, "rb"))}
418
433
  data = {"model": app.state.config.STT_MODEL}
419
434
 
420
- print(files, data)
435
+ log.debug(files, data)
421
436
 
422
437
  r = None
423
438
  try:
@@ -450,7 +465,7 @@ def transcribe(file_path):
450
465
  except Exception:
451
466
  error_detail = f"External: {e}"
452
467
 
453
- raise error_detail
468
+ raise Exception(error_detail)
454
469
 
455
470
 
456
471
  @app.post("/transcriptions")
@@ -125,22 +125,34 @@ async def comfyui_generate_image(
125
125
  workflow[node_id]["inputs"][node.key] = model
126
126
  elif node.type == "prompt":
127
127
  for node_id in node.node_ids:
128
- workflow[node_id]["inputs"]["text"] = payload.prompt
128
+ workflow[node_id]["inputs"][
129
+ node.key if node.key else "text"
130
+ ] = payload.prompt
129
131
  elif node.type == "negative_prompt":
130
132
  for node_id in node.node_ids:
131
- workflow[node_id]["inputs"]["text"] = payload.negative_prompt
133
+ workflow[node_id]["inputs"][
134
+ node.key if node.key else "text"
135
+ ] = payload.negative_prompt
132
136
  elif node.type == "width":
133
137
  for node_id in node.node_ids:
134
- workflow[node_id]["inputs"]["width"] = payload.width
138
+ workflow[node_id]["inputs"][
139
+ node.key if node.key else "width"
140
+ ] = payload.width
135
141
  elif node.type == "height":
136
142
  for node_id in node.node_ids:
137
- workflow[node_id]["inputs"]["height"] = payload.height
143
+ workflow[node_id]["inputs"][
144
+ node.key if node.key else "height"
145
+ ] = payload.height
138
146
  elif node.type == "n":
139
147
  for node_id in node.node_ids:
140
- workflow[node_id]["inputs"]["batch_size"] = payload.n
148
+ workflow[node_id]["inputs"][
149
+ node.key if node.key else "batch_size"
150
+ ] = payload.n
141
151
  elif node.type == "steps":
142
152
  for node_id in node.node_ids:
143
- workflow[node_id]["inputs"]["steps"] = payload.steps
153
+ workflow[node_id]["inputs"][
154
+ node.key if node.key else "steps"
155
+ ] = payload.steps
144
156
  elif node.type == "seed":
145
157
  seed = (
146
158
  payload.seed
@@ -547,8 +547,8 @@ class GenerateEmbeddingsForm(BaseModel):
547
547
 
548
548
  class GenerateEmbedForm(BaseModel):
549
549
  model: str
550
- input: str
551
- truncate: Optional[bool]
550
+ input: list[str] | str
551
+ truncate: Optional[bool] = None
552
552
  options: Optional[dict] = None
553
553
  keep_alive: Optional[Union[int, str]] = None
554
554
 
@@ -560,48 +560,7 @@ async def generate_embeddings(
560
560
  url_idx: Optional[int] = None,
561
561
  user=Depends(get_verified_user),
562
562
  ):
563
- if url_idx is None:
564
- model = form_data.model
565
-
566
- if ":" not in model:
567
- model = f"{model}:latest"
568
-
569
- if model in app.state.MODELS:
570
- url_idx = random.choice(app.state.MODELS[model]["urls"])
571
- else:
572
- raise HTTPException(
573
- status_code=400,
574
- detail=ERROR_MESSAGES.MODEL_NOT_FOUND(form_data.model),
575
- )
576
-
577
- url = app.state.config.OLLAMA_BASE_URLS[url_idx]
578
- log.info(f"url: {url}")
579
-
580
- r = requests.request(
581
- method="POST",
582
- url=f"{url}/api/embed",
583
- headers={"Content-Type": "application/json"},
584
- data=form_data.model_dump_json(exclude_none=True).encode(),
585
- )
586
- try:
587
- r.raise_for_status()
588
-
589
- return r.json()
590
- except Exception as e:
591
- log.exception(e)
592
- error_detail = "Open WebUI: Server Connection Error"
593
- if r is not None:
594
- try:
595
- res = r.json()
596
- if "error" in res:
597
- error_detail = f"Ollama: {res['error']}"
598
- except Exception:
599
- error_detail = f"Ollama: {e}"
600
-
601
- raise HTTPException(
602
- status_code=r.status_code if r else 500,
603
- detail=error_detail,
604
- )
563
+ return generate_ollama_batch_embeddings(form_data, url_idx)
605
564
 
606
565
 
607
566
  @app.post("/api/embeddings")
@@ -611,6 +570,15 @@ async def generate_embeddings(
611
570
  url_idx: Optional[int] = None,
612
571
  user=Depends(get_verified_user),
613
572
  ):
573
+ return generate_ollama_embeddings(form_data=form_data, url_idx=url_idx)
574
+
575
+
576
+ def generate_ollama_embeddings(
577
+ form_data: GenerateEmbeddingsForm,
578
+ url_idx: Optional[int] = None,
579
+ ):
580
+ log.info(f"generate_ollama_embeddings {form_data}")
581
+
614
582
  if url_idx is None:
615
583
  model = form_data.model
616
584
 
@@ -637,7 +605,14 @@ async def generate_embeddings(
637
605
  try:
638
606
  r.raise_for_status()
639
607
 
640
- return r.json()
608
+ data = r.json()
609
+
610
+ log.info(f"generate_ollama_embeddings {data}")
611
+
612
+ if "embedding" in data:
613
+ return data
614
+ else:
615
+ raise Exception("Something went wrong :/")
641
616
  except Exception as e:
642
617
  log.exception(e)
643
618
  error_detail = "Open WebUI: Server Connection Error"
@@ -655,11 +630,11 @@ async def generate_embeddings(
655
630
  )
656
631
 
657
632
 
658
- def generate_ollama_embeddings(
659
- form_data: GenerateEmbeddingsForm,
633
+ def generate_ollama_batch_embeddings(
634
+ form_data: GenerateEmbedForm,
660
635
  url_idx: Optional[int] = None,
661
636
  ):
662
- log.info(f"generate_ollama_embeddings {form_data}")
637
+ log.info(f"generate_ollama_batch_embeddings {form_data}")
663
638
 
664
639
  if url_idx is None:
665
640
  model = form_data.model
@@ -680,7 +655,7 @@ def generate_ollama_embeddings(
680
655
 
681
656
  r = requests.request(
682
657
  method="POST",
683
- url=f"{url}/api/embeddings",
658
+ url=f"{url}/api/embed",
684
659
  headers={"Content-Type": "application/json"},
685
660
  data=form_data.model_dump_json(exclude_none=True).encode(),
686
661
  )
@@ -689,10 +664,10 @@ def generate_ollama_embeddings(
689
664
 
690
665
  data = r.json()
691
666
 
692
- log.info(f"generate_ollama_embeddings {data}")
667
+ log.info(f"generate_ollama_batch_embeddings {data}")
693
668
 
694
- if "embedding" in data:
695
- return data["embedding"]
669
+ if "embeddings" in data:
670
+ return data
696
671
  else:
697
672
  raise Exception("Something went wrong :/")
698
673
  except Exception as e:
@@ -788,8 +763,7 @@ async def generate_chat_completion(
788
763
  user=Depends(get_verified_user),
789
764
  ):
790
765
  payload = {**form_data.model_dump(exclude_none=True)}
791
- log.debug(f"{payload = }")
792
-
766
+ log.debug(f"generate_chat_completion() - 1.payload = {payload}")
793
767
  if "metadata" in payload:
794
768
  del payload["metadata"]
795
769
 
@@ -824,7 +798,7 @@ async def generate_chat_completion(
824
798
 
825
799
  url = get_ollama_url(url_idx, payload["model"])
826
800
  log.info(f"url: {url}")
827
- log.debug(payload)
801
+ log.debug(f"generate_chat_completion() - 2.payload = {payload}")
828
802
 
829
803
  return await post_streaming_url(
830
804
  f"{url}/api/chat",
@@ -18,7 +18,10 @@ from open_webui.config import (
18
18
  OPENAI_API_KEYS,
19
19
  AppConfig,
20
20
  )
21
- from open_webui.env import AIOHTTP_CLIENT_TIMEOUT
21
+ from open_webui.env import (
22
+ AIOHTTP_CLIENT_TIMEOUT,
23
+ AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST,
24
+ )
22
25
 
23
26
  from open_webui.constants import ERROR_MESSAGES
24
27
  from open_webui.env import SRC_LOG_LEVELS
@@ -179,7 +182,7 @@ async def speech(request: Request, user=Depends(get_verified_user)):
179
182
 
180
183
 
181
184
  async def fetch_url(url, key):
182
- timeout = aiohttp.ClientTimeout(total=3)
185
+ timeout = aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST)
183
186
  try:
184
187
  headers = {"Authorization": f"Bearer {key}"}
185
188
  async with aiohttp.ClientSession(timeout=timeout, trust_env=True) as session:
@@ -237,9 +240,7 @@ def merge_models_lists(model_lists):
237
240
 
238
241
 
239
242
  def is_openai_api_disabled():
240
- api_keys = app.state.config.OPENAI_API_KEYS
241
- no_keys = len(api_keys) == 1 and api_keys[0] == ""
242
- return no_keys or not app.state.config.ENABLE_OPENAI_API
243
+ return not app.state.config.ENABLE_OPENAI_API
243
244
 
244
245
 
245
246
  async def get_all_models_raw() -> list: