diff --git a/docs/features/chat-params.md b/docs/features/chat-params.md index 46bb508..58b3840 100644 --- a/docs/features/chat-params.md +++ b/docs/features/chat-params.md @@ -1,6 +1,6 @@ --- sidebar_position: 3 -title: "Chat Parameters" +title: "βš™οΈ Chat Parameters" --- Within Open WebUI, there are three levels to setting a **System Prompt** and **Advanced Parameters**: per-chat basis, per-model basis, and per-account basis. This hierarchical system allows for flexibility while maintaining structured administration and control. diff --git a/docs/features/conversation-organization.md b/docs/features/conversation-organization.md new file mode 100644 index 0000000..8d646ea --- /dev/null +++ b/docs/features/conversation-organization.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 4 +title: "πŸ—‚οΈ Organizing Conversations" +--- + +Open WebUI provides powerful organization features that help users manage their conversations. You can easily categorize and tag conversations, making it easier to find and retrieve them later. The two primary ways to organize conversations are through **Folders** and **Tags**. + +## Organizing Conversations with Folders + +Folders allow you to group related conversations together for quick access and better organization. + +- **Creating a Folder**: You can create a new folder to store specific conversations. This is useful if you want to keep conversations of a similar topic or purpose together. +- **Moving Conversations into Folders**: Conversations can be moved into folders by dragging and dropping them. This allows you to structure your workspace in a way that suits your workflow. + +![Folder Demo](/img/folder-demo.gif) + +### Example Use Case + +:::tip **Organizing by Project** +If you are managing multiple projects, you can create separate folders for each project and move relevant conversations into these folders. This helps keep all project-related discussions in one place. +::: + +## Tagging Conversations + +Tags provide an additional layer of organization by allowing you to label conversations with keywords or phrases. + +- **Adding Tags to Conversations**: Tags can be applied to conversations based on their content or purpose. Tags are flexible and can be added or removed as needed. +![Tag Demo](/img/tag-demo.gif) +- **Using Tags for Searching**: Tags make it easy to locate specific conversations by using the search feature. You can filter conversations by tags to quickly find those related to specific topics. + +### Example Use Case + +:::tip **Tagging by Topic** +If you frequently discuss certain topics, such as "marketing" or "development," you can tag conversations with these terms. Later, when you search for a specific tag, all relevant conversations will be quickly accessible. +::: diff --git a/docs/features/images.md b/docs/features/images.md index 4d9fbbb..725d821 100644 --- a/docs/features/images.md +++ b/docs/features/images.md @@ -1,6 +1,6 @@ --- sidebar_position: 6 -title: "Image Generation" +title: "🎨 Image Generation" --- # Image Generation diff --git a/docs/features/ollama.md b/docs/features/ollama.md index 4218361..90ea021 100644 --- a/docs/features/ollama.md +++ b/docs/features/ollama.md @@ -1,6 +1,6 @@ --- sidebar_position: 3 -title: "Ollama Load Balancing" +title: "βš–οΈ Ollama Load Balancing" --- # Ollama Load Balancing Setup diff --git a/docs/features/url-params.md b/docs/features/url-params.md new file mode 100644 index 0000000..34b1a04 --- /dev/null +++ b/docs/features/url-params.md @@ -0,0 +1,94 @@ +--- +sidebar_position: 3 +title: "URL Parameters" +--- + +In Open WebUI, chat sessions can be customized through various URL parameters. These parameters allow you to set specific configurations, enable features, and define model settings on a per-chat basis. This approach provides flexibility and control over individual chat sessions directly from the URL. + +## URL Parameter Overview + +The following table lists the available URL parameters, their function, and example usage. + +| **Parameter** | **Description** | **Example** | +|-----------------------|----------------------------------------------------------------------------------|--------------------------------------------------------| +| `models` | Specifies the models to be used, as a comma-separated list. | `/?models=model1,model2` | +| `model` | Specifies a single model to be used for the chat session. | `/?model=model1` | +| `youtube` | Specifies a YouTube video ID to be transcribed within the chat. | `/?youtube=VIDEO_ID` | +| `web-search` | Enables web search functionality if set to `true`. | `/?web-search=true` | +| `tools` or `tool-ids` | Specifies a comma-separated list of tool IDs to activate in the chat. | `/?tools=tool1,tool2` | +| `call` | Enables a call overlay if set to `true`. | `/?call=true` | +| `q` | Sets an initial query or prompt for the chat. | `/?q=Hello%20there` | +| `temporary-chat` | Marks the chat as temporary if set to `true`, for one-time sessions. | `/?temporary-chat=true` | + +### 1. **Models and Model Selection** + +- **Description**: The `models` and `model` parameters allow you to specify which [language models](/features/workspace/models.md) should be used for a particular chat session. +- **How to Set**: You can use either `models` for multiple models or `model` for a single model. +- **Example**: + - `/?models=model1,model2` – This initializes the chat with `model1` and `model2`. + - `/?model=model1` – This sets `model1` as the sole model for the chat. + +### 2. **YouTube Transcription** + +- **Description**: The `youtube` parameter takes a YouTube video ID, enabling the chat to transcribe the specified video. +- **How to Set**: Use the YouTube video ID as the value for this parameter. +- **Example**: `/?youtube=VIDEO_ID` +- **Behavior**: This triggers transcription functionality within the chat for the provided YouTube video. + +### 3. **Web Search** + +- **Description**: Enabling `web-search` allows the chat session to access [web search](/features/web_search) functionality. +- **How to Set**: Set this parameter to `true` to enable web search. +- **Example**: `/?web-search=true` +- **Behavior**: If enabled, the chat can retrieve web search results as part of its responses. + +### 4. **Tool Selection** + +- **Description**: The `tools` or `tool-ids` parameters specify which [tools](/features/plugin/tools) to activate within the chat. +- **How to Set**: Provide a comma-separated list of tool IDs as the parameter’s value. +- **Example**: `/?tools=tool1,tool2` or `/?tool-ids=tool1,tool2` +- **Behavior**: Each tool ID is matched and activated within the session for user interaction. + +### 5. **Call Overlay** + +- **Description**: The `call` parameter enables a video or call overlay in the chat interface. +- **How to Set**: Set the parameter to `true` to enable the call overlay. +- **Example**: `/?call=true` +- **Behavior**: Activates a call interface overlay, allowing features such as live transcription and video input. + +### 6. **Initial Query Prompt** + +- **Description**: The `q` parameter allows setting an initial query or prompt for the chat. +- **How to Set**: Specify the query or prompt text as the parameter value. +- **Example**: `/?q=Hello%20there` +- **Behavior**: The chat starts with the specified prompt, automatically submitting it as the first message. + +### 7. **Temporary Chat Sessions** + +- **Description**: The `temporary-chat` parameter marks the chat as a temporary session. This may limit features such as saving chat history or applying persistent settings. +- **How to Set**: Set this parameter to `true` for a temporary chat session. +- **Example**: `/?temporary-chat=true` +- **Behavior**: This initiates a disposable chat session without saving history or applying advanced configurations. + +
+Example Use Case +:::tip **Temporary Chat Session** +Suppose a user wants to initiate a quick chat session without saving the history. They can do so by setting `temporary-chat=true` in the URL. This provides a disposable chat environment ideal for one-time interactions. +::: +
+ +## Using Multiple Parameters Together + +These URL parameters can be combined to create highly customized chat sessions. For example: +```bash +/chat?models=model1,model2&youtube=VIDEO_ID&web-search=true&tools=tool1,tool2&call=true&q=Hello%20there&temporary-chat=true +``` + +This URL will: +- Initialize the chat with `model1` and `model2`. +- Enable YouTube transcription, web search, and specified tools. +- Display a call overlay. +- Set an initial prompt of "Hello there." +- Mark the chat as temporary, avoiding any history saving. + + diff --git a/docs/getting-started/advanced-topics/env-configuration.md b/docs/getting-started/advanced-topics/env-configuration.md index 783df58..ac5b59d 100644 --- a/docs/getting-started/advanced-topics/env-configuration.md +++ b/docs/getting-started/advanced-topics/env-configuration.md @@ -351,6 +351,11 @@ requests initiated by third-party websites, but only over HTTPS. - 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. + #### `FONTS_DIR` - Type: `str` diff --git a/docs/getting-started/advanced-topics/index.mdx b/docs/getting-started/advanced-topics/index.mdx index f826d89..08fda03 100644 --- a/docs/getting-started/advanced-topics/index.mdx +++ b/docs/getting-started/advanced-topics/index.mdx @@ -11,33 +11,33 @@ Explore deeper concepts and advanced configurations of Open WebUI to enhance you ## πŸ”§ Environment Configuration Understand how to set environment variables to customize your Open WebUI setup. -[Environment Configuration Guide](./env-configuration) +[Environment Configuration Guide](/getting-started/advanced-topics/env-configuration) --- ## πŸ“Š Logging and Monitoring Learn how to monitor, log, and troubleshoot your system effectively. -[Logging and Monitoring Guide](./logging) +[Logging and Monitoring Guide](/getting-started/advanced-topics/logging) --- ## πŸ› οΈ Development Guide Dive into the development process and learn how to contribute to Open WebUI. -[Development Guide](./development) +[Development Guide](/getting-started/advanced-topics/development) --- ## πŸ”’ HTTPS Encryption Ensure secure communication by implementing HTTPS encryption in your deployment. -[HTTPS Encryption Guide](./https-encryption) +[HTTPS Encryption Guide](/getting-started/advanced-topics/https-encryption) --- ## πŸ”— API Endpoints Get essential information for API integration and automation using our models. -[API Endpoints Guide](./api-endpoints) +[API Endpoints Guide](/getting-started/advanced-topics/api-endpoints) --- -Looking for installation instructions? Head over to our [Quick Start Guide](../quick-start). -Need to explore core features? Check out [Using OpenWebUI](../using-openwebui). +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). diff --git a/docs/getting-started/quick-start/index.mdx b/docs/getting-started/quick-start/index.mdx index 1ba1bf1..eb588f3 100644 --- a/docs/getting-started/quick-start/index.mdx +++ b/docs/getting-started/quick-start/index.mdx @@ -21,7 +21,7 @@ import CondaWindows from './tab-python/CondaWindows.md'; -## How to Install ⏱️ +# How to Install ⏱️ :::info **Important Note on User Roles and Privacy:** @@ -33,42 +33,79 @@ import CondaWindows from './tab-python/CondaWindows.md'; Choose your preferred installation method below: -- **Docker:** Recommended for most users due to ease of setup and flexibility. -- **Kubernetes:** Ideal for enterprise deployments that require scaling and orchestration. -- **Python:** Suitable for low-resource environments or those wanting a manual setup. +- **Docker:** **Officially supported and recommended for most users** +- **Python:** Suitable for low-resource environments or those wanting a manual setup +- **Kubernetes:** Ideal for enterprise deployments that require scaling and orchestration + - - - - - + +
+ + + +
+
+ + +
+ +
- - - - - - - +
+ +
- +
+ +
-
+ + + +
+
Choose Your Platform
+ + + + + + + + + +
+
+ + +
+ +
+
+ + + +
+

Development Setup

+

+ For developers who want to contribute, check the Development Guide in Advanced Topics. +

+
+
+
+
- - @@ -76,41 +113,10 @@ Choose your preferred installation method below: - - - - - - - - - - - - - - -

Choose Your Platform

- - - - - - - - - -
- - -

Development Setup

-

- For developers who want to contribute, check the Development Guide in Advanced Topics. -

-
+ @@ -148,8 +154,3 @@ Need help? Have questions? Join our community: Stay updated with the latest features, troubleshooting tips, and announcements! -## Conclusion - -Thank you for choosing Open WebUI! We are committed to providing a powerful, privacy-focused interface for your LLM needs. If you encounter any issues, refer to the [Troubleshooting Guide](../../troubleshooting/index.mdx). - -Happy exploring! πŸŽ‰ diff --git a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md index 5af6ba1..f3c6ef3 100644 --- a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md +++ b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md @@ -1,42 +1,26 @@ +## Updating +To update your local Docker installation to the latest version, you can either use **Watchtower** or manually update the container. -# Docker Compose Setup - -Using Docker Compose simplifies the management of multi-container Docker applications. - -## Example `docker-compose.yml` - -```yaml -version: '3' -services: - openwebui: - image: ghcr.io/open-webui/open-webui:main - ports: - - "3000:8080" - volumes: - - open-webui:/app/backend/data -volumes: - open-webui: -``` - -## Starting the Services - -To start your services, run: - +### Option 1: Using Watchtower +With [Watchtower](https://containrrr.dev/watchtower/), you can automate the update process: ```bash -docker compose up -d +docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui ``` +_(Replace `open-webui` with your container's name if it's different.)_ ---- +### Option 2: Manual Update +1. Stop and remove the current container: + ```bash + docker rm -f open-webui + ``` +2. Pull the latest version: + ```bash + docker pull ghcr.io/open-webui/open-webui:main + ``` +3. Start the container again: + ```bash + docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main + ``` -**Note:** For Nvidia GPU support, add the following to your service definition: - -```yaml -deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all - capabilities: [gpu] -``` +Both methods will get your Docker instance updated and running with the latest build. \ No newline at end of file diff --git a/docs/getting-started/quick-start/tab-docker/ManualDocker.md b/docs/getting-started/quick-start/tab-docker/ManualDocker.md index d6702fc..9454a23 100644 --- a/docs/getting-started/quick-start/tab-docker/ManualDocker.md +++ b/docs/getting-started/quick-start/tab-docker/ManualDocker.md @@ -1,24 +1,12 @@ - -# Manual Docker Setup - -If you prefer to set up Docker manually, follow these steps. - -## Step 1: Pull the Open WebUI Image - -```bash -docker pull ghcr.io/open-webui/open-webui:main -``` - -## Step 2: Run the Container - +# Docker Setup ```bash docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main ``` +**Note:** For Nvidia GPU support, add `--gpus all`. You can also use the `:cuda` tag for CUDA or `:ollama` for the bundled Ollama variant. -**Note:** For Nvidia GPU support, add `--gpus all` to the `docker run` command. +For the latest bleeding-edge features, with potential bugs or occasional instability, use the `:dev` tag: +```bash +docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:dev +``` -## Access the WebUI - -After the container is running, access Open WebUI at: - -[http://localhost:3000](http://localhost:3000) +Access Open WebUI at: [http://localhost:3000](http://localhost:3000) \ No newline at end of file diff --git a/docs/tutorials/integrations/langfuse b/docs/tutorials/integrations/langfuse new file mode 100644 index 0000000..9d388fd --- /dev/null +++ b/docs/tutorials/integrations/langfuse @@ -0,0 +1,72 @@ +--- +sidebar_position: 20 +title: "Monitoring and debugging with Langfuse" +--- + +# Langfuse Integration with OpenWebUI + +[Langfuse](https://langfuse.com/) ([GitHub](https://github.com/langfuse/langfuse)) offers open source observability and evaluations for OpenWebUI. By enabling the Langfuse integration, you can trace your application data with Langfuse to develop, monitor, and improve the use of OpenWebUI, including: + +- Application [traces](https://langfuse.com/docs/tracing) +- Usage patterns +- Cost data by user and model +- Replay sessions to debug issues +- [Evaluations](https://langfuse.com/docs/scores/overview) + +## How to integrate Langfuse with OpenWebUI: + +![Langfuse Integration](https://langfuse.com/images/docs/openwebui-integration.gif) +_Langfuse integration steps_ + +[Pipelines](https://github.com/open-webui/pipelines/) in OpenWebUi is an UI-agnostic framework for OpenAI API plugins. It enables the injection of plugins that intercept, process, and forward user prompts to the final LLM, allowing for enhanced control and customization of prompt handling. + +To trace your application data with Langfuse, you can use the [Langfuse pipeline](https://github.com/open-webui/pipelines/blob/d4fca4c37c4b8603be7797245e749e9086f35130/examples/filters/langfuse_filter_pipeline.py), which enables real-time monitoring and analysis of message interactions. + +## Quick Start Guide + +### Step 1: Setup OpenWebUI + +Make sure to have OpenWebUI running. To do so, have a look at the [OpenWebUI documentation](https://docs.openwebui.com/). + +### Step 2: Set Up Pipelines + +Launch [Pipelines](https://github.com/open-webui/pipelines/) by using Docker. Use the following command to start Pipelines: + +```bash +docker run -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main +``` + +### Step 3: Connecting OpenWebUI with Pipelines + +In the _Admin Settings_, create and save a new connection of type OpenAI API with the following details: + +- **URL:** http://host.docker.internal:9099 (this is where the previously launched Docker container is running). +- **Password:** 0p3n-w3bu! (standard password) + +![OpenWebUI Settings](https://langfuse.com/images/docs/openwebui-setup-settings.png) + +### Step 4: Adding the Langfuse Filter Pipeline + +Next, navigate to _Admin Settings_ -> _Pipelines_ and add the Langfuse Filter Pipeline. Specify that Pipelines is listening on http://host.docker.internal:9099 (as configured earlier) and install the [Langfuse Filter Pipeline](https://github.com/open-webui/pipelines/blob/main/examples/filters/langfuse_filter_pipeline.py) by using the _Install from Github URL_ option with the following URL: + +``` +https://github.com/open-webui/pipelines/blob/main/examples/filters/langfuse_filter_pipeline.py +``` + +Now, add your Langfuse API keys below. If you haven't signed up to Langfuse yet, you can get your API keys by creating an account [here](https://cloud.langfuse.com). + +![OpenWebUI add Langfuse Pipeline](https://langfuse.com//images/docs/openwebui-add-pipeline.png) + +_**Note:** Capture usage (token counts) for OpenAi models while streaming is enabled, you have to navigate to the model settings in OpenWebUI and check the "Usage" [box](https://github.com/open-webui/open-webui/discussions/5770#discussioncomment-10778586) below *Capabilities*._ + +### Step 5: See your traces in Langfuse + +You can now interact with your OpenWebUI application and see the traces in Langfuse. + +[Example trace](https://cloud.langfuse.com/project/cloramnkj0002jz088vzn1ja4/traces/904a8c1f-4974-4f8f-8a2f-129ae78d99c5?observation=fe5b127b-e71c-45ab-8ee5-439d4c0edc28) in the Langfuse UI: + +![OpenWebUI Example Trace in Langfuse](https://langfuse.com/images/docs/openwebui-example-trace.png) + +## Learn more + +For a comprehensive guide on OpenWebUI Pipelines, visit [this post](https://ikasten.io/2024/06/03/getting-started-with-openwebui-pipelines/). diff --git a/static/img/folder-demo.gif b/static/img/folder-demo.gif new file mode 100644 index 0000000..9623d46 Binary files /dev/null and b/static/img/folder-demo.gif differ diff --git a/static/img/tag-demo.gif b/static/img/tag-demo.gif new file mode 100644 index 0000000..56b4a09 Binary files /dev/null and b/static/img/tag-demo.gif differ