From 9cdd0c0284556670f1c5bc6215de9fec6e87e136 Mon Sep 17 00:00:00 2001 From: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Thu, 26 Dec 2024 14:57:54 -0500 Subject: [PATCH] Squashed commit of the following: commit af900c88030922e779b45c808f83e7618c4465ac Author: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Thu Dec 26 14:56:03 2024 -0500 Update env-configuration.md update for v0.4.8 list of env vars commit 622cd3d6cb8fd7a366521ba40cc8ffe492cf8c52 Merge: ce3429a 41f918c Author: Timothy Jaeryang Baek Date: Wed Dec 25 13:31:27 2024 -0800 Merge pull request #339 from jtslear/main Details model default for ComfyUI commit ce3429a9073991508177c6321a2f3248f78e8392 Author: Timothy Jaeryang Baek Date: Tue Dec 24 20:37:54 2024 -0700 refac commit 7c221579ad5da37fa812808e14d2ef5366e87723 Author: Timothy Jaeryang Baek Date: Mon Dec 23 13:06:36 2024 -0700 refac commit 41f918c4081158f57c3325750a7e6e8b2004356c Author: John T Skarbek Date: Mon Dec 23 08:45:24 2024 -0500 Details model default for ComfyUI Adds concise detail for the Set Default Model option in the Image configuration pane for ComfyUI commit 6b2523cf35d5d82e0a115a342b590f57304a8f41 Author: Timothy Jaeryang Baek Date: Mon Dec 23 01:59:26 2024 -0700 Update roadmap.mdx commit 15df6c51c1ebb58ee350fe5258c3fb6143b23c65 Author: Timothy Jaeryang Baek Date: Sun Dec 22 16:58:14 2024 -0700 refac commit dbe6a7261dc42c6ce52aa2573b1f641f2ebe40b6 Merge: 13aec58 142e75b Author: silentoplayz <50341825+silentoplayz@users.noreply.github.com> Date: Sat Dec 21 20:43:20 2024 -0500 Merge pull request #337 from silentoplayz/main Updated DockerUpdating.md page commit 13aec580d316823497f0b6edf7b3e7b41d0465a1 Author: Timothy Jaeryang Baek Date: Sat Dec 21 18:21:30 2024 -0700 Update roadmap.mdx commit b286d6cb42ad99e55e94da47fc8cdc6e9e5bb2f1 Merge: 6d8b6d9 0bdca8c Author: silentoplayz <50341825+silentoplayz@users.noreply.github.com> Date: Sat Dec 21 12:53:14 2024 -0500 Merge pull request #336 from silentoplayz/main New Apache Tika & Artifacts Docs Pages commit 6d8b6d97ca2aade1c373a7baaa8fab98b60fb078 Merge: a2bc93d 1c83f95 Author: silentoplayz <50341825+silentoplayz@users.noreply.github.com> Date: Sat Dec 21 10:45:40 2024 -0500 Merge pull request #335 from silentoplayz/main New "Redis Websockets" Docs Page commit a2bc93d074b0a6bc86faae31d7add15b5c0e66fd Merge: 283df1a 62c4ca3 Author: silentoplayz <50341825+silentoplayz@users.noreply.github.com> Date: Fri Dec 20 17:49:40 2024 -0500 Merge pull request #330 from xiaowuap/patch-1 Add BingAPI in web_search.md commit 62c4ca375f6d772cf98aac3d7a1115b2eea6f701 Author: Enzo Wu Date: Sat Dec 21 01:09:45 2024 +0800 Add BingAPI in web_search.md First time to contribute~ --- .../{playgroundbeta => playground}/chat.md | 0 .../completions.md | 0 .../{playgroundbeta => playground}/index.mdx | 0 .../assign-user.md | 0 .../default-perms.md | 0 .../{usergroups => user-groups}/index.mdx | 0 .../providing-access.md | 0 .../usergroup-perms.md | 0 docs/features/whitelist.md | 25 - .../advanced-topics/env-configuration.md | 1215 ++++++++++------- .../getting-started/advanced-topics/index.mdx | 3 +- docs/getting-started/index.md | 6 - docs/getting-started/quick-start/index.mdx | 2 +- .../quick-start/tab-docker/DockerUpdating.md | 104 +- docs/getting-started/updating.mdx | 111 ++ .../getting-started/using-openwebui/index.mdx | 23 - .../using-openwebui/resources.mdx | 39 - docs/roadmap.mdx | 6 +- docs/tutorials/integrations/images.md | 1 + docs/tutorials/integrations/web_search.md | 10 +- 20 files changed, 892 insertions(+), 653 deletions(-) rename docs/features/{playgroundbeta => playground}/chat.md (100%) rename docs/features/{playgroundbeta => playground}/completions.md (100%) rename docs/features/{playgroundbeta => playground}/index.mdx (100%) rename docs/features/{usergroups => user-groups}/assign-user.md (100%) rename docs/features/{usergroups => user-groups}/default-perms.md (100%) rename docs/features/{usergroups => user-groups}/index.mdx (100%) rename docs/features/{usergroups => user-groups}/providing-access.md (100%) rename docs/features/{usergroups => user-groups}/usergroup-perms.md (100%) delete mode 100644 docs/features/whitelist.md create mode 100644 docs/getting-started/updating.mdx delete mode 100644 docs/getting-started/using-openwebui/index.mdx delete mode 100644 docs/getting-started/using-openwebui/resources.mdx diff --git a/docs/features/playgroundbeta/chat.md b/docs/features/playground/chat.md similarity index 100% rename from docs/features/playgroundbeta/chat.md rename to docs/features/playground/chat.md diff --git a/docs/features/playgroundbeta/completions.md b/docs/features/playground/completions.md similarity index 100% rename from docs/features/playgroundbeta/completions.md rename to docs/features/playground/completions.md diff --git a/docs/features/playgroundbeta/index.mdx b/docs/features/playground/index.mdx similarity index 100% rename from docs/features/playgroundbeta/index.mdx rename to docs/features/playground/index.mdx diff --git a/docs/features/usergroups/assign-user.md b/docs/features/user-groups/assign-user.md similarity index 100% rename from docs/features/usergroups/assign-user.md rename to docs/features/user-groups/assign-user.md diff --git a/docs/features/usergroups/default-perms.md b/docs/features/user-groups/default-perms.md similarity index 100% rename from docs/features/usergroups/default-perms.md rename to docs/features/user-groups/default-perms.md diff --git a/docs/features/usergroups/index.mdx b/docs/features/user-groups/index.mdx similarity index 100% rename from docs/features/usergroups/index.mdx rename to docs/features/user-groups/index.mdx diff --git a/docs/features/usergroups/providing-access.md b/docs/features/user-groups/providing-access.md similarity index 100% rename from docs/features/usergroups/providing-access.md rename to docs/features/user-groups/providing-access.md diff --git a/docs/features/usergroups/usergroup-perms.md b/docs/features/user-groups/usergroup-perms.md similarity index 100% rename from docs/features/usergroups/usergroup-perms.md rename to docs/features/user-groups/usergroup-perms.md diff --git a/docs/features/whitelist.md b/docs/features/whitelist.md deleted file mode 100644 index 343f2b1..0000000 --- a/docs/features/whitelist.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 12 -title: "📝 Model Whitelisting" ---- - -Open WebUI allows you to filter specific models for use in your instance. This feature is especially useful for administrators who want to control which models are available to users. Filtering can be done through the WebUI or by adding environment variables to the backend. - -## Filtering via WebUI - -![Model Filter Configuration](/img/tutorial_model_filter.png) - -1. Go to **Admin Panel > Settings > Users**. -2. In the **Manage Models** section, you can enable or disable the model whitelisting feature, and add or remove models from the whitelist. -3. Click **Save** to apply your changes. - -## Filtering via Environment Variables - -You can also whitelist models by adding environment variables to the backend. This method is useful for automated deployments and can be done by adding the following environment variables to your `docker run` command: - -```bash --e ENABLE_MODEL_FILTER=True \ --e MODEL_FILTER_LIST="llama2:13b;mistral:latest;gpt-3.5-turbo" \ -``` - -In this example, the `ENABLE_MODEL_FILTER` variable is set to `True` to enable the feature, and the `MODEL_FILTER_LIST` variable lists the models to be whitelisted. The format for the `MODEL_FILTER_LIST` variable is `model_name:version;model_name:version;...`. diff --git a/docs/getting-started/advanced-topics/env-configuration.md b/docs/getting-started/advanced-topics/env-configuration.md index e4c3550..b3729ef 100644 --- a/docs/getting-started/advanced-topics/env-configuration.md +++ b/docs/getting-started/advanced-topics/env-configuration.md @@ -6,12 +6,13 @@ title: "🌍 Environment Variable Configuration" ## Overview -Open WebUI provides a range of environment variables that allow you to customize and configure +Open WebUI provides a large range of environment variables that allow you to customize and configure various aspects of the application. This page serves as a comprehensive reference for all available -environment variables, including their types, default values, and descriptions. +environment variables, providing their types, default values, and descriptions. +As new variables are introduced, this page will be updated to reflect the growing configuration options. :::info -Last updated: v0.3.20 +This page is up to date with Open Web UI release version [v0.4.8](https://github.com/open-webui/open-webui/releases/tag/v0.4.8), but is still a work in progress to later include more accurate descriptions, listing out options available for environment variables, defaults, and improving descriptions. ::: ## App/Backend @@ -37,7 +38,7 @@ environment variables, see our [logging documentation](https://docs.openwebui.co #### `WEBUI_AUTH` - Type: `bool` -- Default Setting: `True` +- Default: `True` - Description: This setting enables or disables authentication. :::danger @@ -63,7 +64,8 @@ directly. Ensure that no users are present in the database, if you intend to tur - Type: `int` - Default: `300` -- Description: Specifies the timeout duration in seconds for the aiohttp client. +- Description: Specifies the timeout duration in seconds for the aiohttp client. This impacts things +such as connections to Ollama and OpenAI endpoints. :::info This is the maximum amount of time the client will wait for a response before timing out. @@ -71,24 +73,6 @@ If set to an empty string (' '), the timeout will be set to `None`, effectively allowing the client to wait indefinitely. ::: -#### `DATA_DIR` - -- Type: `str` -- Default: `./data` -- Description: Specifies the base directory for data storage, including uploads, cache, vector database, etc. - -#### `FRONTEND_BUILD_DIR` - -- Type: `str` -- Default: `../build` -- Description: Specifies the location of the built frontend files. - -#### `STATIC_DIR` - -- Type: `str` -- Default: `./static` -- Description: Specifies the directory for static files, such as the favicon. - #### `CUSTOM_NAME` - Type: `str` @@ -111,62 +95,6 @@ This should **only** ever be set to `False` when [ENABLE_OAUTH_SIGNUP](https://d is also being used and set to `True`. Failure to do so will result in the inability to login. ::: -#### `ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION` - -- Type: `bool` -- Default: `True` -- Description: Bypass SSL Verification for RAG on Websites. - -#### `DEFAULT_MODELS` - -- Type: `str` -- Description: Sets a default Language Model. - -#### `DEFAULT_USER_ROLE` - -- Type: `str` (enum: `pending`, `user`, `admin`) -- Options: - - `pending` - New users are pending until their accounts are manually activated by an admin. - - `user` - New users are automatically activated with regular user permissions. - - `admin` - New users are automatically activated with administrator permissions. -- Default: `pending` -- Description: Sets the default role assigned to new users. - -#### `USER_PERMISSIONS_CHAT_DELETION` - -- Type: `bool` -- Default: `True` -- Description: Toggles user permission to delete chats. - -#### `USER_PERMISSIONS_CHAT_EDITING` - -- Type: `bool` -- Default: `True` -- Description: Toggles user permission to edit chats. - -#### `USER_PERMISSIONS_CHAT_TEMPORARY` - -- Type: `bool` -- Default: `True` -- Description: Toggles user permission to create temporary chats. - -#### `ENABLE_MODEL_FILTER` - -- Type: `bool` -- Default: `False` -- Description: Toggles Language Model filtering. - -#### `MODEL_FILTER_LIST` - -- Type: `str` -- Description: Sets the Language Model filter list, semicolon-separated -- Example: `llama3.1:instruct;gemma2:latest` - -#### `WEBHOOK_URL` - -- Type: `str` -- Description: Sets a webhook for integration with Slack/Microsoft Teams. - #### `ENABLE_ADMIN_EXPORT` - Type: `bool` @@ -191,6 +119,36 @@ is also being used and set to `True`. Failure to do so will result in the inabil - Default: `True` - Description: Enables message rating feature. +#### `OFFLINE_MODE` + +- Type: `bool` +- Description: Enables or disables offline mode. + +#### `DEFAULT_MODELS` + +- Type: `str` +- Description: Sets a default Language Model. + +#### `BYPASS_MODEL_ACCESS_CONTROL` + +- Type: `bool` +- Description: Bypasses model access control. + +#### `DEFAULT_USER_ROLE` + +- Type: `str` (enum: `pending`, `user`, `admin`) +- Options: + - `pending` - New users are pending until their accounts are manually activated by an admin. + - `user` - New users are automatically activated with regular user permissions. + - `admin` - New users are automatically activated with administrator permissions. +- Default: `pending` +- Description: Sets the default role assigned to new users. + +#### `WEBHOOK_URL` + +- Type: `str` +- Description: Sets a webhook for integration with Slack/Microsoft Teams. + #### `WEBUI_BUILD_HASH` - Type: `str` @@ -238,53 +196,6 @@ is also being used and set to `True`. Failure to do so will result in the inabil - Description: Builds the Docker image with NVIDIA CUDA support. Enables GPU acceleration for local Whisper and embeddings. -#### `DATABASE_URL` - -- Type: `str` -- Default: `sqlite:///${DATA_DIR}/webui.db` -- Description: Specifies the database URL to connect to. - -:::info -Supports SQLite and Postgres. Changing the URL does not migrate data between databases. -Documentation on URL scheme available [here](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls). -::: - -#### `DATABASE_POOL_SIZE` - -- Type: `int` -- Default: `0` -- Description: Specifies the size of the database pool. A value of `0` disables pooling. - -#### `DATABASE_POOL_MAX_OVERFLOW` - -- Type: `int` -- Default: `0` -- Description: Specifies the database pool max overflow. - -:::info -More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow). -::: - -#### `DATABASE_POOL_TIMEOUT` - -- Type: `int` -- Default: `30` -- Description: Specifies the database pool timeout in seconds to get a connection. - -:::info -More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout). -::: - -#### `DATABASE_POOL_RECYCLE` - -- Type: `int` -- Default: `3600` -- Description: Specifies the database pool recycle time in seconds. - -:::info -More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#setting-pool-recycle). -::: - #### `PORT` - Type: `int` @@ -295,24 +206,12 @@ More information about this setting can be found [here](https://docs.sqlalchemy. If installed via Python, you must instead pass `--port` as a command line argument. ::: -#### `RESET_CONFIG_ON_START` - -- Type: `bool` -- Default: `False` -- Description: Resets the `config.json` file on startup. - #### `DEFAULT_LOCALE` - Type: `str` - Default: `en` - Description: Sets the default locale for the application. -#### `FUNCTIONS_DIR` - -- Type: `str` -- Default: `./functions` -- Description: Specifies the directory for custom functions. - #### `SHOW_ADMIN_DETAILS` - Type: `bool` @@ -324,64 +223,36 @@ If installed via Python, you must instead pass `--port` as a command line argume - Type: `str` - Description: Sets the admin email shown by `SHOW_ADMIN_DETAILS` -#### `SAFE_MODE` - -- Type: `bool` -- Default: `False` -- Description: Enables safe mode, which disables potentially unsafe features, deactivating all functions. - -#### `ENABLE_FORWARD_USER_INFO_HEADERS` - -- type: `bool` -- Default: `False` -- Description: Forwards user information (name, id, email, and role) as X-headers to OpenAI API. -If enabled, the following headers are forwarded: - - `X-OpenWebUI-User-Name` - - `X-OpenWebUI-User-Id` - - `X-OpenWebUI-User-Email` - - `X-OpenWebUI-User-Role` - -#### `WEBUI_SESSION_COOKIE_SAME_SITE` - -- Type: `str` (enum: `lax`, `strict`, `none`) -- Options: - - `lax` - Sets the `SameSite` attribute to lax, allowing session cookies to be sent with -requests initiated by third-party websites. - - `strict` - Sets the `SameSite` attribute to strict, blocking session cookies from being sent -with requests initiated by third-party websites. - - `none` - Sets the `SameSite` attribute to none, allowing session cookies to be sent with -requests initiated by third-party websites, but only over HTTPS. -- Default: `lax` -- Description: Sets the `SameSite` attribute for session cookies. - -#### `WEBUI_SESSION_COOKIE_SECURE` - -- Type: `bool` -- Default: `False` -- Description: Sets the `Secure` attribute for session cookies if set to `True`. - -#### `CONTENT_SECURITY_POLICY` - -- Type: `str` -- Description: Sets the `content-security-policy` HTTP header -- Example: `default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' https://* data:; child-src 'none'; font-src 'self' data:; worker-src 'self';` - -#### `AIOHTTP_CLIENT_TIMEOUT` - -- Type: `int` -- Description: Sets the timeout in seconds for internal aiohttp connections. This impacts things -such as connections to Ollama and OpenAI endpoints. - #### `AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST` - Type: `int` - Description: Sets the timeout in seconds for fetching the OpenAI model list. This can be useful in cases where network latency requires a longer timeout duration to successfully retrieve the model list. +### Directories + +#### `DATA_DIR` + +- Type: `str` +- Default: `./data` +- Description: Specifies the base directory for data storage, including uploads, cache, vector database, etc. + #### `FONTS_DIR` - Type: `str` - Description: Specifies the directory for fonts. +#### `FRONTEND_BUILD_DIR` + +- Type: `str` +- Default: `../build` +- Description: Specifies the location of the built frontend files. + +#### `STATIC_DIR` + +- Type: `str` +- Default: `./static` +- Description: Specifies the directory for static files, such as the favicon. + ### Ollama #### `ENABLE_OLLAMA_API` @@ -482,22 +353,6 @@ Artificial Intelligence in Healthcare Prompt: {{prompt:middletruncate:8000}} ``` -#### `SEARCH_QUERY_GENERATION_PROMPT_TEMPLATE` - -- Type: `str` -- Description: Prompt to use when generating search queries. -- Default: - -``` -Assess the need for a web search based on the current question and prior interactions, but lean towards suggesting a Google search query if uncertain. Generate a Google search query even when the answer might be straightforward, as additional information may enhance comprehension or provide updated data. If absolutely certain that no further information is required, return an empty string. Default to a search query if unsure or in doubt. Today's date is {{CURRENT_DATE}}. - -Current Question: -{{prompt:end:4000}} - -Interaction History: -{{MESSAGES:END:6}} -``` - #### `TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE` - Type: `str` @@ -508,13 +363,137 @@ Interaction History: Available Tools: {{TOOLS}}\nReturn an empty string if no tools match the query. If a function tool matches, construct and return a JSON object in the format {\"name\": \"functionName\", \"parameters\": {\"requiredFunctionParamKey\": \"requiredFunctionParamValue\"}} using the appropriate tool and its parameters. Only return the object and limit the response to the JSON object without additional text. ``` +### Autocomplete + +#### `ENABLE_AUTOCOMPLETE_GENERATION` + +- Type: `bool` +- Description: Enables or disables autocomplete generation. + +#### `AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH` + +- Type: `int` +- Description: Sets the maximum input length for autocomplete generation. + +#### `AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE` + +- Type: `str` +- Description: Sets the prompt template for autocomplete generation. + +### Evaluation Arena Model + +#### `ENABLE_EVALUATION_ARENA_MODELS` + +- Type: `bool` +- Description: Enables or disables evaluation arena models. + +### Tags Generation + +#### `ENABLE_TAGS_GENERATION` + +- Type: `bool` +- Description: Enables or disables tags generation. + +#### `TAGS_GENERATION_PROMPT_TEMPLATE` + +- Type: `str` +- Description: Sets the prompt template for tags generation. + +## Security Variables + +#### `ENABLE_FORWARD_USER_INFO_HEADERS` + +- type: `bool` +- Default: `False` +- Description: Forwards user information (name, id, email, and role) as X-headers to OpenAI API. +If enabled, the following headers are forwarded: + - `X-OpenWebUI-User-Name` + - `X-OpenWebUI-User-Id` + - `X-OpenWebUI-User-Email` + - `X-OpenWebUI-User-Role` + +#### `ENABLE_RAG_LOCAL_WEB_FETCH` + +- Type: `bool` +- Default: `False` +- Description: Enables local web fetching for RAG. Enabling this allows Server Side Request +Forgery attacks against local network resources. + +#### `ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION` + +- Type: `bool` +- Default: `True` +- Description: Bypass SSL Verification for RAG on Websites. + +#### `WEBUI_SESSION_COOKIE_SAME_SITE` + +- Type: `str` (enum: `lax`, `strict`, `none`) +- Options: + - `lax` - Sets the `SameSite` attribute to lax, allowing session cookies to be sent with +requests initiated by third-party websites. + - `strict` - Sets the `SameSite` attribute to strict, blocking session cookies from being sent +with requests initiated by third-party websites. + - `none` - Sets the `SameSite` attribute to none, allowing session cookies to be sent with +requests initiated by third-party websites, but only over HTTPS. +- Default: `lax` +- Description: Sets the `SameSite` attribute for session cookies. + +#### `WEBUI_SESSION_COOKIE_SECURE` + +- Type: `bool` +- Default: `False` +- Description: Sets the `Secure` attribute for session cookies if set to `True`. + +#### `RESET_CONFIG_ON_START` + +- Type: `bool` +- Default: `False` +- Description: Resets the `config.json` file on startup. + +#### `SAFE_MODE` + +- Type: `bool` +- Default: `False` +- Description: Enables safe mode, which disables potentially unsafe features, deactivating all functions. + #### `CORS_ALLOW_ORIGIN` - Type: `str` - Default: `*` - Description: Sets the allowed origins for Cross-Origin Resource Sharing (CORS). -### RAG +#### `RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE` + +- Type: `bool` +- Default: `False` +- Description: Determines whether or not to allow custom models defined on the Hub in their own modeling files. + +#### `RAG_RERANKING_MODEL_TRUST_REMOTE_CODE` + +- Type: `bool` +- Default: `False` +- Description: Determines whether or not to allow custom models defined on the Hub in their own +modeling files for reranking. + +#### `RAG_EMBEDDING_MODEL_AUTO_UPDATE` + +- Type: `bool` +- Default: `False` +- Description: Toggles automatic update of the Sentence-Transformer model. + +#### `RAG_RERANKING_MODEL_AUTO_UPDATE` + +- Type: `bool` +- Default: `False` +- Description: Toggles automatic update of the reranking model. + +#### `WHISPER_MODEL_AUTO_UPDATE` + +- Type: `bool` +- Default: `False` +- Description: Toggles automatic update of the Whisper model. + +## Retrieval Augmented Generation (RAG) #### `VECTOR_DB` @@ -522,6 +501,177 @@ Available Tools: {{TOOLS}}\nReturn an empty string if no tools match the query. - Default: `chroma` - Description: Specifies which vector database system to use, either 'chroma' for ChromaDB or 'milvus' for Milvus. This setting determines which vector storage system will be used for managing embeddings. +#### `RAG_EMBEDDING_ENGINE` + +- Type: `str` (enum: `ollama`, `openai`) +- Options: + - Leave empty for `Default (SentenceTransformers)` - Uses SentenceTransformers for embeddings. + - `ollama` - Uses the Ollama API for embeddings. + - `openai` - Uses the OpenAI API for embeddings. +- Description: Selects an embedding engine to use for RAG. + +#### `RAG_EMBEDDING_MODEL` + +- Type: `str` +- Default: `sentence-transformers/all-MiniLM-L6-v2` +- Description: Sets a model for embeddings. Locally, a Sentence-Transformer model is used. + +#### `ENABLE_RAG_HYBRID_SEARCH` + +- Type: `bool` +- Default: `False` +- Description: Enables the use of ensemble search with `BM25` + `ChromaDB`, with reranking using +`sentence_transformers` models. + +#### `CONTENT_EXTRACTION_ENGINE` + +- Type: `str` (`tika`) +- Options: + - Leave empty to use default + - `tika` - Use a local Apache Tika server +- Description: Sets the content extraction engine to use for document ingestion. + +#### `TIKA_SERVER_URL` + +- Type: `str` +- Default: `http://localhost:9998` +- Description: Sets the URL for the Apache Tika server. + +#### `RAG_TOP_K` + +- Type: `int` +- Default: `5` +- Description: Sets the default number of results to consider when using RAG. + +#### `RAG_RELEVANCE_THRESHOLD` + +- Type: `float` +- Default: `0.0` +- Description: Sets the relevance threshold to consider for documents when used with reranking. + +#### `RAG_TEMPLATE` + +- Type: `str` +- Default: + +``` +You are given a user query, some textual context and rules, all inside xml tags. You have to answer the query based on the context while respecting the rules. + + +[context] + + + +- If you don't know, just say so. +- If you are not sure, ask for clarification. +- Answer in the same language as the user query. +- If the context appears unreadable or of poor quality, tell the user then answer as best as you can. +- If the answer is not in the context but you think you know the answer, explain that to the user then answer with your own knowledge. +- Answer directly and without using xml tags. + + + +[query] + +``` + +- Description: Template to use when injecting RAG documents into chat completion + +#### `RAG_TEXT_SPLITTER` + +- Type: `str` +- Description: Sets the text splitter for RAG models. + +#### `TIKTOKEN_CACHE_DIR` + +- Type: `str` +- Description: Sets the directory for TikiToken cache. + +#### `TIKTOKEN_ENCODING_NAME` + +- Type: `str` +- Description: Sets the encoding name for TikiToken. + +#### `CHUNK_SIZE` + +- Type: `int` +- Default: `1500` +- Description: Sets the document chunk size for embeddings. + +#### `CHUNK_OVERLAP` + +- Type: `int` +- Default: `100` +- Description: Specifies how much overlap there should be between chunks. + +#### `PDF_EXTRACT_IMAGES` + +- Type: `bool` +- Default: `False` +- Description: Extracts images from PDFs using OCR when loading documents. + +#### `RAG_FILE_MAX_SIZE` + +- Type: `int` +- Default: `100` (100MB) +- Description: Sets the maximum size of a file that can be uploaded for document ingestion. + +#### `RAG_FILE_MAX_COUNT` + +- Type: `int` +- Default: `10` +- Description: Sets the maximum number of files that can be uploaded at once for document ingestion. + +#### `RAG_RERANKING_MODEL` + +- Type: `str` +- Description: Sets a model for reranking results. Locally, a Sentence-Transformer model is used. + +#### `RAG_OPENAI_API_BASE_URL` + +- Type: `str` +- Default: `${OPENAI_API_BASE_URL}` +- Description: Sets the OpenAI base API URL to use for RAG embeddings. + +#### `RAG_OPENAI_API_KEY` + +- Type: `str` +- Default: `${OPENAI_API_KEY}` +- Description: Sets the OpenAI API key to use for RAG embeddings. + +#### `RAG_EMBEDDING_OPENAI_BATCH_SIZE` + +- Type: `int` +- Default: `1` +- Description: Sets the batch size for OpenAI embeddings. + +#### `RAG_EMBEDDING_BATCH_SIZE` + +- Type: `int` +- Description: Sets the batch size for embedding in RAG (Retrieval-Augmented Generator) models. + +#### `RAG_OLLAMA_API_KEY` + +- Type: `str` +- Description: Sets the API key for Ollama API used in RAG models. + +#### `RAG_OLLAMA_BASE_URL` + +- Type: `str` +- Description: Sets the base URL for Ollama API used in RAG models. + +#### `ENABLE_RETRIEVAL_QUERY_GENERATION` + +- Type: `bool` +- Description: Enables or disables retrieval query generation. + +#### `QUERY_GENERATION_PROMPT_TEMPLATE` + +- Type: `str` +- Description: Sets the prompt template for query generation. + +### ChromaDB + #### `CHROMA_TENANT` - Type: `str` @@ -569,186 +719,62 @@ Available Tools: {{TOOLS}}\nReturn an empty string if no tools match the query. - Description: Specifies auth credentials for remote ChromaDB Server. - Example: `username:password` +### Milvus + #### `MILVUS_URI` - Type: `str` - Default: `${DATA_DIR}/vector_db/milvus.db` - Description: Specifies the URI for connecting to the Milvus vector database. This can point to a local or remote Milvus server based on the deployment configuration. -#### `RAG_TOP_K` +### OpenSearch -- Type: `int` -- Default: `5` -- Description: Sets the default number of results to consider when using RAG. - -#### `RAG_RELEVANCE_THRESHOLD` - -- Type: `float` -- Default: `0.0` -- Description: Sets the relevance threshold to consider for documents when used with reranking. - -#### `ENABLE_RAG_HYBRID_SEARCH` +#### `OPENSEARCH_CERT_VERIFY` - Type: `bool` - Default: `False` -- Description: Enables the use of ensemble search with `BM25` + `ChromaDB`, with reranking using -`sentence_transformers` models. +- Description: Enables or disables OpenSearch certificate verification. -#### `ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION` - -- Type: `bool` -- Default: `True` -- Description: Enables TLS certification verification when browsing web pages for RAG. - -#### `RAG_EMBEDDING_ENGINE` - -- Type: `str` (enum: `ollama`, `openai`) -- Options: - - Leave empty for `Default (SentenceTransformers)` - Uses SentenceTransformers for embeddings. - - `ollama` - Uses the Ollama API for embeddings. - - `openai` - Uses the OpenAI API for embeddings. -- Description: Selects an embedding engine to use for RAG. - -#### `PDF_EXTRACT_IMAGES` - -- Type: `bool` -- Default: `False` -- Description: Extracts images from PDFs using OCR when loading documents. - -#### `RAG_EMBEDDING_MODEL` +#### `OPENSEARCH_PASSWORD` - Type: `str` -- Default: `sentence-transformers/all-MiniLM-L6-v2` -- Description: Sets a model for embeddings. Locally, a Sentence-Transformer model is used. +- Description: Sets the password for OpenSearch. -#### `RAG_EMBEDDING_MODEL_AUTO_UPDATE` +#### `OPENSEARCH_SSL` - Type: `bool` -- Default: `False` -- Description: Toggles automatic update of the Sentence-Transformer model. +- Description: Enables or disables SSL for OpenSearch. -#### `RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE` - -- Type: `bool` -- Default: `False` -- Description: Determines whether or not to allow custom models defined on the Hub in their own modeling files. - -#### `RAG_TEMPLATE` +#### `OPENSEARCH_URI` - Type: `str` -- Default: +- Description: Sets the URI for OpenSearch. -``` -You are given a user query, some textual context and rules, all inside xml tags. You have to answer the query based on the context while respecting the rules. - - -[context] - - - -- If you don't know, just say so. -- If you are not sure, ask for clarification. -- Answer in the same language as the user query. -- If the context appears unreadable or of poor quality, tell the user then answer as best as you can. -- If the answer is not in the context but you think you know the answer, explain that to the user then answer with your own knowledge. -- Answer directly and without using xml tags. - - - -[query] - -``` - -- Description: Template to use when injecting RAG documents into chat completion - -#### `RAG_RERANKING_MODEL` +#### `OPENSEARCH_USERNAME` - Type: `str` -- Description: Sets a model for reranking results. Locally, a Sentence-Transformer model is used. +- Description: Sets the username for OpenSearch. -#### `RAG_RERANKING_MODEL_AUTO_UPDATE` +### PGVector -- Type: `bool` -- Default: `False` -- Description: Toggles automatic update of the reranking model. - -#### `RAG_RERANKING_MODEL_TRUST_REMOTE_CODE` - -- Type: `bool` -- Default: `False` -- Description: Determines whether or not to allow custom models defined on the Hub in their own -modeling files for reranking. - -#### `RAG_OPENAI_API_BASE_URL` +#### `PGVECTOR_DB_URL` - Type: `str` -- Default: `${OPENAI_API_BASE_URL}` -- Description: Sets the OpenAI base API URL to use for RAG embeddings. +- Description: Sets the database URL for model storage. -#### `RAG_OPENAI_API_KEY` +### Qdrant + +#### `QDRANT_API_KEY` - Type: `str` -- Default: `${OPENAI_API_KEY}` -- Description: Sets the OpenAI API key to use for RAG embeddings. +- Description: Sets the API key for Qdrant. -#### `RAG_EMBEDDING_OPENAI_BATCH_SIZE` - -- Type: `int` -- Default: `1` -- Description: Sets the batch size for OpenAI embeddings. - -#### `ENABLE_RAG_LOCAL_WEB_FETCH` - -- Type: `bool` -- Default: `False` -- Description: Enables local web fetching for RAG. Enabling this allows Server Side Request -Forgery attacks against local network resources. - -#### `YOUTUBE_LOADER_LANGUAGE` +#### `QDRANT_URI` - Type: `str` -- Default: `en` -- Description: Sets the language to use for YouTube video loading. +- Description: Sets the URI for Qdrant. -#### `CHUNK_SIZE` - -- Type: `int` -- Default: `1500` -- Description: Sets the document chunk size for embeddings. - -#### `CHUNK_OVERLAP` - -- Type: `int` -- Default: `100` -- Description: Specifies how much overlap there should be between chunks. - -#### `CONTENT_EXTRACTION_ENGINE` - -- Type: `str` (`tika`) -- Options: - - Leave empty to use default - - `tika` - Use a local Apache Tika server -- Description: Sets the content extraction engine to use for document ingestion. - -#### `TIKA_SERVER_URL` - -- Type: `str` -- Default: `http://localhost:9998` -- Description: Sets the URL for the Apache Tika server. - -#### `RAG_FILE_MAX_COUNT` - -- Type: `int` -- Default: `10` -- Description: Sets the maximum number of files that can be uploaded at once for document ingestion. - -#### `RAG_FILE_MAX_SIZE` - -- Type: `int` -- Default: `100` (100MB) -- Description: Sets the maximum size of a file that can be uploaded for document ingestion. - -### Web Search +## Web Search #### `ENABLE_RAG_WEB_SEARCH` @@ -756,27 +782,28 @@ Forgery attacks against local network resources. - Default: `False` - Description: Enable web search toggle -#### `ENABLE_SEARCH_QUERY` +#### `ENABLE_SEARCH_QUERY_GENERATION` - Type: `bool` -- Default: `False` -- Description: Enables the generation of search queries from prompts +- Description: Enables or disables search query generation. #### `RAG_WEB_SEARCH_ENGINE` -- Type: `str` (enum: `searxng`, `google_pse`, `brave`, `serpstack`, `serper`, `serply`, `searchapi`, `duckduckgo`, `tavily`, `jina`) +- Type: `str` (enum: `searxng`, `google_pse`, `brave`, `kagi`, `mojeek`, `serpstack`, `serper`, `serply`, `searchapi`, `duckduckgo`, `tavily`, `jina`, `bing`) - Options: - `searxng` - Uses the [SearXNG](https://github.com/searxng/searxng) search engine. - `google_pse` - Uses the [Google Programmable Search Engine](https://programmablesearchengine.google.com/about/). - `brave` - Uses the [Brave search engine](https://brave.com/search/api/). - - `serpstack` - Uses the [Serpstack search engine](https://serpstack.com/). - - `serper` - Uses the [Serper search engine](https://serper.dev/). - - `serply` - Uses the [Serply search engine](https://serply.io/). - - `searchapi` - Uses the [SearchAPI search engine](https://www.searchapi.io/). - - `duckduckgo` - Uses the [DuckDuckGo search engine](https://duckduckgo.com/). - - `tavily` - Uses the [Tavily search engine](https://tavily.com/). - - `jina` - Uses the [Jina search engine](https://jina.ai/). -- Description: Select engine for performing searches + - `kagi` - Uses the [Kagi](https://www.kagi.com/) search engine. + - `mojeek` - Uses the [Mojeek](https://www.mojeek.com/) search engine. + - `serpstack` - Uses the [Serpstack](https://serpstack.com/) search engine. + - `serper` - Uses the [Serper](https://serper.dev/) search engine. + - `serply` - Uses the [Serply](https://serply.io/) search engine. + - `searchapi` - Uses the [SearchAPI](https://www.searchapi.io/) search engine. + - `duckduckgo` - Uses the [DuckDuckGo](https://duckduckgo.com/) search engine. + - `tavily` - Uses the [Tavily](https://tavily.com/) search engine. + - `jina` - Uses the [Jina](https://jina.ai/) search engine. + - `bing` - Uses the [Bing](https://www.bing.com/) search engine. #### `SEARXNG_QUERY_URL` @@ -799,6 +826,11 @@ the search query. Example: `http://searxng.local/search?q=` - Type: `str` - Description: The API key for the Brave Search API. +#### `MOJEEK_SEARCH_API_KEY` + +- Type: `str` +- Description: Sets the API key for Mojiek Search API. + #### `SERPSTACK_API_KEY` - Type: `str` @@ -820,11 +852,36 @@ the search query. Example: `http://searxng.local/search?q=` - Type: `str` - Description: The API key for the Serply search API. +#### `SEARCHAPI_API_KEY` + +- Type: `str` +- Description: Sets the SearchAPI API key. + +#### `SEARCHAPI_ENGINE` + +- Type: `str` +- Description: Sets the SearchAPI engine. + #### `TAVILY_API_KEY` - Type: `str` - Description: The API key for the Tavily search API. +#### `JINA_API_KEY` + +- Type: `str` +- Description: Sets the API key for Jina. + +#### `BING_SEARCH_V7_ENDPOINT` + +- Type: `str` +- Description: Sets the endpoint for Bing Search API. + +#### `BING_SEARCH_V7_SUBSCRIPTION_KEY` + +- Type: `str` +- Description: Sets the subscription key for Bing Search API. + #### `RAG_WEB_SEARCH_RESULT_COUNT` - Type: `int` @@ -837,43 +894,22 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `10` - Description: Number of concurrent requests to crawl web pages returned from search results. -#### `SEARCHAPI_API_KEY` +### YouTube Loader + +#### `YOUTUBE_LOADER_PROXY_URL` - Type: `str` -- Description: Sets the SearchAPI API key. +- Description: Sets the proxy URL for YouTube loader. -#### `SEARCHAPI_ENGINE` +#### `YOUTUBE_LOADER_LANGUAGE` - Type: `str` -- Description: Sets the SearchAPI engine. +- Default: `en` +- Description: Sets the language to use for YouTube video loading. -### Speech to Text +## Audio -#### `AUDIO_STT_ENGINE` - -- Type: `str` (enum: `openai`) -- Options: - - Leave empty to use local Whisper engine for Speech-to-Text. - - `openai` - Uses OpenAI engine for Speech-to-Text. -- Description: Specifies the Speech-to-Text engine to use. - -#### `AUDIO_STT_OPENAI_API_BASE_URL` - -- Type: `str` -- Default: `${OPENAI_API_BASE_URL}` -- Description: Sets the OpenAI-compatible base URL to use for Speech-to-Text. - -#### `AUDIO_STT_OPENAI_API_KEY` - -- Type: `str` -- Default: `${OPENAI_API_KEY}` -- Description: Sets the OpenAI API key to use for Speech-to-Text. - -#### `AUDIO_STT_MODEL` - -- Type: `str` -- Default: `whisper-1` -- Description: Specifies the Speech-to-Text model to use for OpenAI-compatible endpoints. +### Whisper Speech-to-Text (Local) #### `WHISPER_MODEL` @@ -887,13 +923,40 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `${DATA_DIR}/cache/whisper/models` - Description: Specifies the directory to store Whisper model files. -#### `WHISPER_MODEL_AUTO_UPDATE` +### Speech-to-Text (OpenAI) -- Type: `bool` -- Default: `False` -- Description: Toggles automatic update of the Whisper model. +#### `AUDIO_STT_ENGINE` -### Text to Speech +- Type: `str` (enum: `openai`) +- Options: + - Leave empty to use local Whisper engine for Speech-to-Text. + - `openai` - Uses OpenAI engine for Speech-to-Text. +- Description: Specifies the Speech-to-Text engine to use. + +#### `AUDIO_STT_MODEL` + +- Type: `str` +- Default: `whisper-1` +- Description: Specifies the Speech-to-Text model to use for OpenAI-compatible endpoints. + +#### `AUDIO_STT_OPENAI_API_BASE_URL` + +- Type: `str` +- Default: `${OPENAI_API_BASE_URL}` +- Description: Sets the OpenAI-compatible base URL to use for Speech-to-Text. + +#### `AUDIO_STT_OPENAI_API_KEY` + +- Type: `str` +- Default: `${OPENAI_API_KEY}` +- Description: Sets the OpenAI API key to use for Speech-to-Text. + +### Text-to-Speech + +#### `AUDIO_TTS_API_KEY` + +- Type: `str` +- Description: Sets the API key for Text-to-Speech. #### `AUDIO_TTS_ENGINE` @@ -904,10 +967,25 @@ the search query. Example: `http://searxng.local/search?q=` - `openai` - Uses OpenAI engine for Text-to-Speech. - Description: Specifies the Text-to-Speech engine to use. -#### `AUDIO_TTS_API_KEY` +#### `AUDIO_TTS_MODEL` - Type: `str` -- Description: Sets the API key for Text-to-Speech. +- Default: `tts-1` +- Description: Specifies the OpenAI text-to-speech model to use. + +### Azure Text-to-Speech + +#### `AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT` + +- Type: `str` +- Description: Sets the output format for Azure Text to Speech. + +#### `AUDIO_TTS_AZURE_SPEECH_REGION` + +- Type: `str` +- Description: Sets the region for Azure Text to Speech. + +### OpenAI Text-to-Speech #### `AUDIO_TTS_OPENAI_API_BASE_URL` @@ -921,11 +999,11 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `${OPENAI_API_KEY}` - Description: Sets the API key to use for text-to-speech. -#### `AUDIO_TTS_MODEL` +#### `AUDIO_TTS_SPLIT_ON` - Type: `str` -- Default: `tts-1` -- Description: Specifies the OpenAI text-to-speech model to use. +- Default: `punctuation` +- Description: Sets the OpenAI text-to-speech split on to use. #### `AUDIO_TTS_VOICE` @@ -933,13 +1011,7 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `alloy` - Description: Sets the OpenAI text-to-speech voice to use. -#### `AUDIO_TTS_SPLIT_ON` - -- Type: `str` -- Default: `punctuation` -- Description: Sets the OpenAI text-to-speech split on to use. - -### Image Generation +## Image Generation #### `ENABLE_IMAGE_GENERATION` @@ -957,38 +1029,6 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `automatic1111` - Description: Specifies the engine to use for image generation. -#### `AUTOMATIC1111_BASE_URL` - -- Type: `str` -- Description: Specifies the URL to Automatic1111's Stable Diffusion API. - -#### `AUTOMATIC1111_API_AUTH` - -- Type: `str` -- Description: Sets the Automatic1111 API authentication. - -#### `COMFYUI_BASE_URL` - -- Type: `str` -- Description: Specifies the URL to the ComfyUI image generation API. - -#### `COMFYUI_WORKFLOW` - -- Type: `str` -- Description: Sets the ComfyUI workflow. - -#### `IMAGES_OPENAI_API_BASE_URL` - -- Type: `str` -- Default: `${OPENAI_API_BASE_URL}` -- Description: Sets the OpenAI-compatible base URL to use for DALL-E image generation. - -#### `IMAGES_OPENAI_API_KEY` - -- Type: `str` -- Default: `${OPENAI_API_KEY}` -- Description: Sets the API key to use for DALL-E image generation. - #### `IMAGE_GENERATION_MODEL` - Type: `str` @@ -1006,21 +1046,135 @@ the search query. Example: `http://searxng.local/search?q=` - Default: `50` - Description: Sets the default iteration steps for image generation. Used for ComfyUI and AUTOMATIC1111. -### OAuth +### AUTOMATIC1111 + +#### `AUTOMATIC1111_API_AUTH` + +- Type: `str` +- Description: Sets the Automatic1111 API authentication. + +#### `AUTOMATIC1111_BASE_URL` + +- Type: `str` +- Description: Specifies the URL to Automatic1111's Stable Diffusion API. + +#### `AUTOMATIC1111_CFG_SCALE` + +- Type: `float` +- Description: Sets the scale for Automatic1111 inference. + +#### `AUTOMATIC1111_SAMPLER` + +- Type: `str` +- Description: Sets the sampler for Automatic1111 inference. + +#### `AUTOMATIC1111_SCHEDULER` + +- Type: `str` +- Description: Sets the scheduler for Automatic1111 inference. + +### ComfyUI + +#### `COMFYUI_BASE_URL` + +- Type: `str` +- Description: Specifies the URL to the ComfyUI image generation API. + +#### `COMFYUI_WORKFLOW` + +- Type: `str` +- Description: Sets the ComfyUI workflow. + +### OpenAI DALL-E + +#### `IMAGES_OPENAI_API_BASE_URL` + +- Type: `str` +- Default: `${OPENAI_API_BASE_URL}` +- Description: Sets the OpenAI-compatible base URL to use for DALL-E image generation. + +#### `IMAGES_OPENAI_API_KEY` + +- Type: `str` +- Default: `${OPENAI_API_KEY}` +- Description: Sets the API key to use for DALL-E image generation. + +## Database Pool + +#### `DATABASE_URL` + +- Type: `str` +- Default: `sqlite:///${DATA_DIR}/webui.db` +- Description: Specifies the database URL to connect to. + +:::info +Supports SQLite and Postgres. Changing the URL does not migrate data between databases. +Documentation on URL scheme available [here](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls). +::: + +#### `DATABASE_POOL_SIZE` + +- Type: `int` +- Default: `0` +- Description: Specifies the size of the database pool. A value of `0` disables pooling. + +#### `DATABASE_POOL_MAX_OVERFLOW` + +- Type: `int` +- Default: `0` +- Description: Specifies the database pool max overflow. + +:::info +More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow). +::: + +#### `DATABASE_POOL_TIMEOUT` + +- Type: `int` +- Default: `30` +- Description: Specifies the database pool timeout in seconds to get a connection. + +:::info +More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout). +::: + +#### `DATABASE_POOL_RECYCLE` + +- Type: `int` +- Default: `3600` +- Description: Specifies the database pool recycle time in seconds. + +:::info +More information about this setting can be found [here](https://docs.sqlalchemy.org/en/20/core/pooling.html#setting-pool-recycle). +::: + +## OAuth #### `ENABLE_OAUTH_SIGNUP` - Type: `bool` - Default: `False` -- Description: Enables user account creation via OAuth. +- Description: Enables user account creation via OAuth. Distinct from `ENABLE_SIGNUP`. + +#### `ENABLE_API_KEY` + +- Type: `bool` +- Default: `False` +- Description: Enables API key authentication. + +#### `ENABLE_OAUTH_ROLE_MANAGEMENT` + +- Type: `bool` +- Default: `False` +- Description: Enables role management to oauth delegation. #### `OAUTH_MERGE_ACCOUNTS_BY_EMAIL` - Type: `bool` - Default: `False` - Description: If enabled, merges OAuth accounts with existing accounts using the same email -address. This is considered unsafe as providers may not verify email addresses and can lead to -account takeovers. +address. This is considered unsafe as not all OAuth providers will verify email addresses and can lead to +potential account takeovers. #### `OAUTH_USERNAME_CLAIM` @@ -1062,12 +1216,6 @@ account takeovers. - Default: `SSO` - Description: Sets the name for the OIDC provider. -#### `ENABLE_OAUTH_ROLE_MANAGEMENT` - -- Type: `bool` -- Default: `False` -- Description: Enables role management to oauth delegation. - #### `OAUTH_ROLES_CLAIM` - Type: `str` @@ -1143,33 +1291,110 @@ account takeovers. - Type: `str` - Description: Sets the redirect URI for OIDC -### Tools +## LDAP -#### `TOOLS_DIR` - -- Type: `str` -- Default: `${DATA_DIR}/tools` -- Description: Specifies the directory for custom tools. - -### Redis - -#### `ENABLE_WEBSOCKET_SUPPORT` +#### `ENABLE_LDAP` - Type: `bool` -- Default: `False` -- Description: Enables websocket support in Open WebUI (used with Redis). +- Description: Enables or disables LDAP authentication. -#### `WEBSOCKET_MANAGER` +#### `LDAP_APP_DN` - Type: `str` -- Default: `redis` -- Description: Specifies the websocket manager to use (in this case, Redis). +- Description: Sets the distinguished name for LDAP application. -#### `WEBSOCKET_REDIS_URL` +#### `LDAP_APP_PASSWORD` - Type: `str` -- Default: `redis://localhost:6379/0` -- Description: Specifies the URL of the Redis instance for websocket communication. +- Description: Sets the password for LDAP application. + +#### `LDAP_ATTRIBUTE_FOR_USERNAME` + +- Type: `str` +- Description: Sets the attribute to use as username for LDAP authentication. + +#### `LDAP_CA_CERT_FILE` + +- Type: `str` +- Description: Sets the path to LDAP CA certificate file. + +#### `LDAP_CIPHERS` + +- Type: `str` +- Description: Sets the ciphers to use for LDAP connection. + +#### `LDAP_SEARCH_BASE` + +- Type: `str` +- Description: Sets the base to search for LDAP authentication. + +#### `LDAP_SEARCH_FILTER` + +- Type: `str` +- Description: Sets the filter to use for LDAP search. + +#### `LDAP_SERVER_HOST` + +- Type: `str` +- Description: Sets the hostname of LDAP server. + +#### `LDAP_SERVER_LABEL` + +- Type: `str` +- Description: Sets the label of LDAP server. + +#### `LDAP_SERVER_PORT` + +- Type: `int` +- Description: Sets the port number of LDAP server. + +#### `LDAP_USE_TLS` + +- Type: `bool` +- Description: Enables or disables TLS for LDAP connection. + +## User Permissions + +#### `USER_PERMISSIONS_CHAT_TEMPORARY` + +- Type: `bool` +- Default: `True` +- Description: Enables or disables user permission to create temporary chats. + +#### `USER_PERMISSIONS_CHAT_DELETE` + +- Type: `bool` +- Description: Enables or disables user permission to delete chats. + +#### `USER_PERMISSIONS_CHAT_EDIT` + +- Type: `bool` +- Description: Enables or disables user permission to edit chats. + +#### `USER_PERMISSIONS_CHAT_FILE_UPLOAD` + +- Type: `bool` +- Description: Enables or disables user permission to upload files to chats. + +#### `USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ACCESS` + +- Type: `bool` +- Description: Enables or disables user permission to access workspace knowledge. + +#### `USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS` + +- Type: `bool` +- Description: Enables or disables user permission to access workspace models. + +#### `USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS` + +- Type: `bool` +- Description: Enables or disables user permission to access workspace prompts. + +#### `USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS` + +- Type: `bool` +- Description: Enables or disables user permission to access workspace tools. ## Misc Environment Variables @@ -1196,3 +1421,55 @@ Open WebUI uses the following environment variables: - Description: Lists domain extensions (or IP addresses) for which the proxy should not be used, separated by commas. For example, setting no_proxy to '.mit.edu' ensures that the proxy is bypassed when accessing documents from MIT. + +### Redis + +#### `ENABLE_WEBSOCKET_SUPPORT` + +- Type: `bool` +- Default: `False` +- Description: Enables websocket support in Open WebUI (used with Redis). + +#### `WEBSOCKET_MANAGER` + +- Type: `str` +- Default: `redis` +- Description: Specifies the websocket manager to use (in this case, Redis). + +#### `WEBSOCKET_REDIS_URL` + +- Type: `str` +- Default: `redis://localhost:6379/0` +- Description: Specifies the URL of the Redis instance for websocket communication. + +### S3 Storage Provider + +#### `STORAGE_PROVIDER` + +- Type: `str` +- Description: Sets the storage provider. + +#### `S3_ACCESS_KEY_ID` + +- Type: `str` +- Description: Sets the access key ID for S3 storage. + +#### `S3_BUCKET_NAME` + +- Type: `str` +- Description: Sets the bucket name for S3 storage. + +#### `S3_ENDPOINT_URL` + +- Type: `str` +- Description: Sets the endpoint URL for S3 storage. + +#### `S3_REGION_NAME` + +- Type: `str` +- Description: Sets the region name for S3 storage. + +#### `S3_SECRET_ACCESS_KEY` + +- Type: `str` +- Description: Sets the secret access key for S3 storage. diff --git a/docs/getting-started/advanced-topics/index.mdx b/docs/getting-started/advanced-topics/index.mdx index 08fda03..0a93b25 100644 --- a/docs/getting-started/advanced-topics/index.mdx +++ b/docs/getting-started/advanced-topics/index.mdx @@ -39,5 +39,4 @@ Get essential information for API integration and automation using our models. --- -Looking for installation instructions? Head over to our [Quick Start Guide](/getting-started/quick-start). -Need to explore core features? Check out [Using OpenWebUI](/getting-started/using-openwebui). +Looking for installation instructions? Head over to our [Quick Start Guide](/getting-started/quick-start). \ No newline at end of file diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 45aa01e..32b06ad 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -15,12 +15,6 @@ Get up and running quickly with our [Quick Start Guide](./quick-start). --- -## 📚 Using OpenWebUI - -Learn the basics and explore key concepts in our [Using OpenWebUI Guide](./using-openwebui). - ---- - ## 🛠️ Advanced Topics Take a deeper dive into configurations and development tips in our [Advanced Topics Guide](./advanced-topics). diff --git a/docs/getting-started/quick-start/index.mdx b/docs/getting-started/quick-start/index.mdx index bc37704..3454497 100644 --- a/docs/getting-started/quick-start/index.mdx +++ b/docs/getting-started/quick-start/index.mdx @@ -140,7 +140,7 @@ After installing, visit: - [http://localhost:3000](http://localhost:3000) to access OpenWebUI. - or [http://localhost:8080/](http://localhost:8080/) when using a Python deployment. -You are now ready to start **[Using OpenWebUI](../using-openwebui/index.mdx)**! +You are now ready to start using OpenWebUI! ## Join the Community diff --git a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md index 459540d..4abc595 100644 --- a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md +++ b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md @@ -1,101 +1,35 @@ -## Why isn't my Open WebUI updating? +## Updating -To update your local Docker installation of Open WebUI to the latest version available, you can either use **Watchtower** or manually update the container. Follow either of the steps provided below to be guided through updating your existing Open WebUI image. +To update your local Docker installation to the latest version, you can either use **Watchtower** or manually update the container. -### Manual Update +### Option 1: Using Watchtower -1. **Stop and remove the current container**: - - This will stop the running container and remove it, but it won't delete the data stored in the Docker volume. (Replace `open-webui` with your container's name throughout the updating process if it's different for you.) - -```bash -docker rm -f open-webui -``` - -2. **Pull the latest Docker image**: - - This will update the Docker image, but it won't update the running container or its data. - -```bash -docker pull ghcr.io/open-webui/open-webui:main -``` - -3. **Remove any existing data in the Docker volume (NOT RECOMMENDED UNLESS ABSOLUTELY NECCESSARY!)**. Skip this step entirely if not needed and move on to the last step: - - If you want to start with a clean slate, you can remove the existing data in the Docker volume. Be careful, as this will delete all your chat histories and other data. - - The data is stored in a Docker volume named `open-webui`. You can remove it with the following command: - -```bash -docker volume rm open-webui -``` - -4. **Start the container again with the updated image and existing volume attached**: - - If you didn't remove the existing data, this will start the container with the updated image and the existing data. If you removed the existing data, this will start the container with the updated image and a new, empty volume. **For Nvidia GPU support, add `--gpus all` to the docker run command** - -```bash -docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main -``` - -## Automatically Updating Open WebUI with Watchtower - -You can use [Watchtower](https://containrrr.dev/watchtower/) to automate the update process for Open WebUI. Here are three options: - -### Option 1: One-time Update - -You can run Watchtower as a one-time update to stop the current container, pull the latest image, and start a new container with the updated image and existing volume attached (**For Nvidia GPU support, add `--gpus all` to the docker run command**): +With [Watchtower](https://containrrr.dev/watchtower/), you can automate the update process: ```bash docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui ``` -### Option 2: Running Watchtower as a Separate Container +_(Replace `open-webui` with your container's name if it's different.)_ -You can run Watchtower as a separate container that watches and updates your Open WebUI container: +### Option 2: Manual Update -```bash -docker run -d --name watchtower \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - containrrr/watchtower -i 300 open-webui -``` +1. Stop and remove the current container: -This will start Watchtower in detached mode, watching your Open WebUI container for updates every 5 minutes. + ```bash + docker rm -f open-webui + ``` -### Option 3: Integrating Watchtower with a `docker-compose.yml` File +2. Pull the latest version: -You can also integrate Watchtower with your `docker-compose.yml` file to automate updates for Open WebUI (**For Nvidia GPU support, add `--gpus all` to the docker run command**): + ```bash + docker pull ghcr.io/open-webui/open-webui:main + ``` -```yml -version: '3' -services: - open-webui: - image: ghcr.io/open-webui/open-webui:main - ports: - - "3000:8080" - volumes: - - open-webui:/app/backend/data +3. Start the container again: - watchtower: - image: containrrr/watchtower - volumes: - - /var/run/docker.sock:/var/run/docker.sock - command: --interval 300 open-webui - depends_on: - - open-webui + ```bash + docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main + ``` -volumes: - open-webui: -``` - -In this example, Watchtower is integrated with the `docker-compose.yml` file and watches the Open WebUI container for updates every 5 minutes. - -## Persistent Data in Docker Volumes - -The data is stored in a Docker volume named `open-webui`. The path to the volume is not directly accessible, but you can inspect the volume with the following command: - -```bash -docker volume inspect open-webui -``` - -This will show you the details of the volume, including the mountpoint, which is usually located in `/var/lib/docker/volumes/open-webui/_data`. +Both methods will get your Docker instance updated and running with the latest build. diff --git a/docs/getting-started/updating.mdx b/docs/getting-started/updating.mdx new file mode 100644 index 0000000..07c92a7 --- /dev/null +++ b/docs/getting-started/updating.mdx @@ -0,0 +1,111 @@ +--- +sidebar_position: 300 +title: "🔄 Updating Open WebUI" +--- + + + +## Why isn't my Open WebUI updating? + +To update your local Docker installation of Open WebUI to the latest version available, you can either use **Watchtower** or manually update the container. Follow either of the steps provided below to be guided through updating your existing Open WebUI image. + +### Manual Update + +1. **Stop and remove the current container**: + + This will stop the running container and remove it, but it won't delete the data stored in the Docker volume. (Replace `open-webui` with your container's name throughout the updating process if it's different for you.) + +```bash +docker rm -f open-webui +``` + +2. **Pull the latest Docker image**: + + This will update the Docker image, but it won't update the running container or its data. + +```bash +docker pull ghcr.io/open-webui/open-webui:main +``` + + +:::info +**Remove any existing data in the Docker volume (NOT RECOMMENDED UNLESS ABSOLUTELY NECCESSARY!)**. Skip this step entirely if not needed and move on to the last step: + + If you want to start with a clean slate, you can remove the existing data in the Docker volume. Be careful, as this will delete all your chat histories and other data. + + The data is stored in a Docker volume named `open-webui`. You can remove it with the following command: + +```bash +docker volume rm open-webui +``` +::: + +3. **Start the container again with the updated image and existing volume attached**: + + If you didn't remove the existing data, this will start the container with the updated image and the existing data. If you removed the existing data, this will start the container with the updated image and a new, empty volume. **For Nvidia GPU support, add `--gpus all` to the docker run command** + +```bash +docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main +``` + +## Automatically Updating Open WebUI with Watchtower + +You can use [Watchtower](https://containrrr.dev/watchtower/) to automate the update process for Open WebUI. Here are three options: + +### Option 1: One-time Update + +You can run Watchtower as a one-time update to stop the current container, pull the latest image, and start a new container with the updated image and existing volume attached (**For Nvidia GPU support, add `--gpus all` to the docker run command**): + +```bash +docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui +``` + +### Option 2: Running Watchtower as a Separate Container + +You can run Watchtower as a separate container that watches and updates your Open WebUI container: + +```bash +docker run -d --name watchtower \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + containrrr/watchtower -i 300 open-webui +``` + +This will start Watchtower in detached mode, watching your Open WebUI container for updates every 5 minutes. + +### Option 3: Integrating Watchtower with a `docker-compose.yml` File + +You can also integrate Watchtower with your `docker-compose.yml` file to automate updates for Open WebUI (**For Nvidia GPU support, add `--gpus all` to the docker run command**): + +```yml +version: '3' +services: + open-webui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "3000:8080" + volumes: + - open-webui:/app/backend/data + + watchtower: + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --interval 300 open-webui + depends_on: + - open-webui + +volumes: + open-webui: +``` + +In this example, Watchtower is integrated with the `docker-compose.yml` file and watches the Open WebUI container for updates every 5 minutes. + +## Persistent Data in Docker Volumes + +The data is stored in a Docker volume named `open-webui`. The path to the volume is not directly accessible, but you can inspect the volume with the following command: + +```bash +docker volume inspect open-webui +``` + +This will show you the details of the volume, including the mountpoint, which is usually located in `/var/lib/docker/volumes/open-webui/_data`. diff --git a/docs/getting-started/using-openwebui/index.mdx b/docs/getting-started/using-openwebui/index.mdx deleted file mode 100644 index 5ce08f6..0000000 --- a/docs/getting-started/using-openwebui/index.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 3 -title: "🧑‍💻 Using OpenWebUI" ---- - -# Using OpenWebUI - -Explore the essential concepts and features of Open WebUI, including models, knowledge, prompts, pipes, actions, and more. - ---- - -## 🌐 Additional Resources and Integrations -Find community tools, integrations, and official resources. -[Additional Resources Guide](./resources) - -## 📖 Community Tutorials -If you like the documentation you are reading right now, then check out this tutorial on [Configuring RAG with OpenWebUI Documentation](../../tutorials/tips/rag-tutorial.md). -Then go on to explore other community-submitted tutorials to enhance your OpenWebUI experience. -[Explore Community Tutorials](/category/-tutorials) - ---- - -Stay tuned for more updates as we continue to expand these sections! \ No newline at end of file diff --git a/docs/getting-started/using-openwebui/resources.mdx b/docs/getting-started/using-openwebui/resources.mdx deleted file mode 100644 index 2bf1a3f..0000000 --- a/docs/getting-started/using-openwebui/resources.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -sidebar_position: 4 -title: "🌐 Additional Resources" ---- - -# 🌐 Additional Resources - -Explore more resources, community tools, and integration options to make the most out of Open WebUI. - ---- - -## 🔥 Open WebUI Website -Visit [Open WebUI](https://openwebui.com/) for official documentation, tools, and resources: -- **Leaderboard**: Check out the latest high-ranking models, tools, and integrations. -- **Featured Models and Tools**: Discover models and tools created by community members. -- **New Integrations**: Find newly released integrations, plugins, and models to expand your setup. - ---- - -## 🌍 Community Platforms -Connect with the Open WebUI community for support, tips, and discussions. - -- **Discord**: Join our community on Discord to chat with other users, ask questions, and stay updated. - [Join the Discord Server](https://discord.com/invite/5rJgQTnV4s) -- **Reddit**: Follow the Open WebUI subreddit for announcements, discussions, and user-submitted content. - [Visit Reddit Community](https://www.reddit.com/r/OpenWebUI/) -- **GitHub Community**: Participate in discussions, propose feature requests, and report issues specific to the Open WebUI Community Platform website. - [Explore the GitHub Community](https://github.com/open-webui/community) - ---- - -## 📖 Tutorials and User Guides -Explore community-created tutorials to enhance your Open WebUI experience: -- [Explore Community Tutorials](/category/-tutorials) -- Learn how to configure RAG and advanced integrations with the [RAG Configuration Guide](../../tutorials/tips/rag-tutorial.md). - ---- - -Stay connected and make the most out of Open WebUI through these community resources and integrations! diff --git a/docs/roadmap.mdx b/docs/roadmap.mdx index a2a0b97..f1236b2 100644 --- a/docs/roadmap.mdx +++ b/docs/roadmap.mdx @@ -20,7 +20,11 @@ Our roadmap for interface innovations aims to create a highly intuitive and acce - 📈 **Advanced User Tracking and Cost Management Tools**: Users will gain access to comprehensive tools designed for tracking application performance and user activities, as well as managing costs effectively. These tools will empower users with the data they need to make informed decisions, improve user experiences, and maintain budget control, optimizing the use of resources across their AI applications. -- 💬 **"Channels" Feature**: Integrating a built-in chat solution for Open WebUI users that includes AI moderation and assistance capabilities can significantly enhance user engagement and provide timely assistance, improving overall user satisfaction and retention. +- 💬 **"Channels" Feature**: Channels will function like Discord/Slack chat rooms, facilitating real-time collaboration among users and AIs. These dedicated communication spaces can host human-to-human interactions or AI-assisted discussions, fostering dynamic and context-driven collaboration. As we transition towards multi-agent and proactive agent workflows, true asynchronous communication will be essential, and Open WebUI will provide a Bot SDK tutorial to empower users in building proactive AI agents that can initiate conversations and integrate seamlessly into the platform. + +- 👤 **User Page**: A personal User Page feature where users can create posts. The functionality will also include features like followers, likes, and comments. This allows users to effectively share their model configurations, prompts, and files with a broader community, creating a richer, more connected ecosystem around the platform. + +- 📝 **AI Powered Notes**: Inspired by tools like Notion and Obsidian, we plan to introduce a robust note-taking feature that includes AI integration. From simple note-taking to full-fledged document creation, this tool will offer a seamless experience, all locally integrated within the platform. - 🧠 **AI Workflow Tool**: A node-based tool to orchestrate and compose multiple aspects of AI systems. This tool will allow users to visually connect different AI modules and services, creating complex workflows with ease. It's designed to empower users to harness the full potential of AI without needing deep technical knowledge in AI programming. diff --git a/docs/tutorials/integrations/images.md b/docs/tutorials/integrations/images.md index 15f44e3..b9721e3 100644 --- a/docs/tutorials/integrations/images.md +++ b/docs/tutorials/integrations/images.md @@ -114,6 +114,7 @@ To integrate ComfyUI into Open WebUI, follow these steps: 3. Return to Open WebUI and click the **Click here to upload a workflow.json file** button. 4. Select the `workflow_api.json` file to import the exported workflow from ComfyUI into Open WebUI. 5. After importing the workflow, you must map the `ComfyUI Workflow Nodes` according to the imported workflow node IDs. +6. Set `Set Default Model` to the name of the model file being used, such as `flux1-dev.safetensors` :::info You may need to adjust an `Input Key` or two within Open WebUI's `ComfyUI Workflow Nodes` section to match a node within your workflow. diff --git a/docs/tutorials/integrations/web_search.md b/docs/tutorials/integrations/web_search.md index 69bcb8f..37592cb 100644 --- a/docs/tutorials/integrations/web_search.md +++ b/docs/tutorials/integrations/web_search.md @@ -500,6 +500,12 @@ Coming Soon ## Bing API -Coming Soon - ### Setup + +1. Navigate to the [AzurePortal](https://portal.azure.com/#create/Microsoft.BingSearch) and create a new resource. After creation, you’ll be redirected to the resource overview page. From there, select "Click here to manage keys." ![click here to manage keys](https://github.com/user-attachments/assets/dd2a3c67-d6a7-4198-ba54-67a3c8acff6d) +2. On the key management page, locate Key1 or Key2 and copy your desired key. +3. Open the Open WebUI Admin Panel, switch to the Settings tab, and then select Web Search. +4. Enable the Web search option and set the Web Search Engine to bing. +5. Fill `SearchApi API Key` with the `API key` that you copied in step 2 from [AzurePortal](https://portal.azure.com/#create/Microsoft.BingSearch) dashboard. +6. Click `Save`. +