Merge branch 'main' into update-web-search-to-cats

This commit is contained in:
silentoplayz 2025-02-12 09:13:01 -05:00 committed by GitHub
commit 11e081eb56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 802 additions and 30 deletions

76
docs/enterprise.mdx Normal file
View File

@ -0,0 +1,76 @@
---
sidebar_position: 2000
title: "🏢 Open WebUI for Enterprises"
---
## The AI Platform Powering the Worlds Leading Organizations
In the rapidly advancing AI landscape, staying ahead isn't just a competitive advantage—its a necessity. Open WebUI is the **fastest-growing AI platform** designed for **seamless enterprise deployment**, helping organizations leverage cutting-edge AI capabilities with **unmatched efficiency**.
**NASA, the Canadian Government, the Dutch Government, xAI, Alibaba (Qwen), IBM, LG, and top academic institutions** trust Open WebUI to power their AI-driven initiatives. With its **modular architecture, continuous innovation, and enterprise-grade features**, its the **rational choice** for businesses that refuse to fall behind.
![users](/images/enterprise/users.png)
<sub className=" text-xs">*Open WebUI is used by developers from the mentioned organizations and institutions.*</sub>
## **Lets Talk**
Transform the way your organization leverages AI. **Contact our enterprise team today** for customized pricing, expert consulting, and tailored deployment strategies.
📧 **sales@openwebui.com**
---
## Why Enterprises Choose Open WebUI
### 🚀 **Faster AI Innovation, No Vendor Lock-In**
Unlike proprietary AI platforms that dictate your roadmap, **Open WebUI puts you in control**. Deploy **on-premise, in a private cloud, or hybrid environments**—without restrictive contracts.
### 🔒 **Enterprise-Grade Security & Compliance**
Security is a business-critical requirement. Open WebUI is built to support **SOC 2, HIPAA, GDPR, FedRAMP, and ISO 27001 compliance**, ensuring enterprise security best practices with **on-premise and air-gapped deployments**.
### ⚡ **Reliable, Scalable, and Performance-Optimized**
Built for large-scale enterprise deployments with **multi-node high availability**, Open WebUI ensures **99.99% uptime**, optimized workloads, and **scalability across regions and business units**.
### 💡 **Fully Customizable & Modular**
Customize every aspect of Open WebUI to fit your enterprises needs. **White-label, extend, and integrate** seamlessly with **your existing systems**, including **LDAP, Active Directory, and custom AI models**.
### 🌍 **Thriving Ecosystem with Continuous Innovation**
With one of the **fastest iteration cycles in AI**, Open WebUI ensures your organization stays ahead with **cutting-edge features** and **continuous updates**—no waiting for long release cycles.
---
## **Exclusive Enterprise Features & Services**
Open WebUIs enterprise solutions provide mission-critical businesses with **a suite of advanced capabilities and dedicated support**, including:
### ⚙ **Customization & AI Model Optimization**
✅ **Custom Theming & Branding** White-label Open WebUI to **reflect your enterprise identity**.
✅ **Custom AI Model Integration & Fine-Tuning** Integrate **proprietary** or **third-party** AI models tailored for your workflows.
✅ **Private Feature Development** Work directly with our team to **build custom features** specific to your organizations needs.
### 🛡️ **Advanced Security & Compliance**
✅ **On-Premise & Air-Gapped Deployments** Full control over data, hosted in **your infrastructure**.
✅ **Security Hardening & Compliance Audits** Receive **customized compliance assessments** and configurations.
✅ **Role-Based Access Control (RBAC)** Enterprise-ready **SSO, LDAP, and IAM** integration.
### 🔧 **Enterprise-Grade Support & SLAs**
✅ **Priority SLA Support** **24/7 support** with dedicated response times for mission-critical issues.
✅ **Dedicated Account Manager** A **single point of contact** for guidance, onboarding, and strategy.
✅ **Exclusive Office Hours with Core Engineers** Directly work with the engineers evolving Open WebUI.
### 🏗️ **Operational Reliability & Deployment Services**
✅ **Managed Deployments** Our team helps you **deploy Open WebUI effortlessly**, whether **on-premise, hybrid, or cloud**.
✅ **Version Stability & Long-Term Maintenance** Enterprise customers receive **LTS (Long-Term Support) versions** for managed **stability and security** over time.
✅ **Enterprise Backups & Disaster Recovery** High availability with structured backup plans and rapid recovery strategies.
### 📚 **Enterprise Training, Workshops & Consulting**
✅ **AI Training & Enablement** Expert-led **workshops for your engineering and data science teams**.
✅ **Operational AI Consulting** On-demand **architecture, optimization, and deployment consulting**.
✅ **Strategic AI Roadmap Planning** Work with our experts to **define your AI transformation strategy**.
### 🔄 **Lifecycle & Ecosystem Benefits**
✅ **Multi-Tenant & Enterprise-Scale Deployments** Support for **large-scale organizations**, distributed teams, and divisions.
✅ **Access to Private Beta & Enterprise-Only Features** Stay ahead with access to upcoming, high-priority capabilities.
✅ **Software Bill of Materials (SBOM) & Security Transparency** Enterprise customers receive **full security reports and compliance packages**.

View File

@ -9,22 +9,29 @@ import { TopBanners } from "@site/src/components/TopBanners";
## Key Features of Open WebUI ⭐
- 🚀 **Effortless Setup**: Install seamlessly using Docker or Kubernetes (`kubectl`, `kustomize` or `helm`) for a hassle-free experience with support for both `:ollama` image with bundled Ollama and `:cuda` with CUDA support.
- 🚀 **Effortless Setup**: Install seamlessly using Docker, Kubernetes, Podman, Helm Charts (`kubectl`, `kustomize`, `podman`, or `helm`) for a hassle-free experience with support for both `:ollama` image with bundled Ollama and `:cuda` with CUDA support.
- 🤝 **OpenAI API Integration**: Effortlessly integrate OpenAI-compatible APIs for versatile conversations alongside Ollama models. The OpenAI API URL can be customized to link with various third-party applications.
- 🛠️ **Guided Initial Setup**: Complete the setup process with clarity, including an explicit indication of creating an admin account during the first-time setup.
- 🛡️ **Granular Permissions and User Groups**: By allowing administrators to create detailed user roles and permissions, we ensure a secure user environment. This granularity not only enhances security but also allows for customized user experiences, fostering a sense of ownership and responsibility amongst users.
- 🤝 **OpenAI API Integration**: Effortlessly integrate OpenAI-compatible APIs for versatile conversations alongside Ollama models. The OpenAI API URL can be customized to integrate Open WebUI seamlessly with various third-party applications.
- 🛡️ **Granular Permissions and User Groups**: By allowing administrators to create detailed user roles, user groups, and permissions across the workspace, we ensure a secure user environment for all users involved. This granularity not only enhances security, but also allows for customized user experiences, fostering a sense of ownership and responsibility amongst users.
- 📱 **Responsive Design**: Enjoy a seamless experience across desktop PCs, laptops, and mobile devices.
- 📱 **Progressive Web App for Mobile**: Enjoy a native progressive web application experience on your mobile device with offline access on `localhost` or a personal domain, and a smooth user interface. In order for our PWA to be installable on your device, it must be delivered in a secure context. This usually means that it must be served over HTTPS.
:::info
- To set up a PWA, you'll need some understanding of technologies like Linux, Docker, and reverse proxies such as `Nginx`, `Caddy`, or `Traefik`. Using these tools can help streamline the process of building and deploying a PWA tailored to your needs. While there's no "one-click install" option available, and your available option to securely deploy your Open WebUI instance over HTTPS requires user experience, using these resources can make it easier to create and deploy a PWA tailored to your needs.
- ✒️🔢 **Full Markdown and LaTeX Support**: Elevate your LLM experience with comprehensive Markdown and LaTeX capabilities for enriched interaction.
:::
- 🧩 **Model Builder**: Easily create Ollama models directly from Open WebUI. Create and add custom characters and agents, customize chat elements, and import models effortlessly through [Open WebUI Community](https://openwebui.com/) integration.
- ✒️🔢 **Full Markdown and LaTeX Support**: Elevate your LLM experience with comprehensive Markdown, LaTex, and Rich Text capabilities for enriched interaction.
- 📚 **Local and Remote RAG Integration**: Dive into the future of chat interactions and explore your documents with our cutting-edge Retrieval Augmented Generation (RAG) technology within your chats. Documents can be loaded into the workspace area, after which they can be accessed using the `#` symbol before a query, or by starting the prompt with `#`, followed by a URL for web content integration.
- 🧩 **Model Builder**: Easily create custom models from base Ollama models directly from Open WebUI. Create and add custom characters and agents, customize model elements, and import models effortlessly through [Open WebUI Community](https://openwebui.com/) integration.
- 📚 **Local and Remote RAG Integration**: Dive into the future of chat interactions and explore your documents with our cutting-edge Retrieval Augmented Generation (RAG) technology within your chats. Documents can be loaded into the `Documents` tab of the Workspace, after which they can be accessed using the pound key [`#`] before a query, or by starting the prompt with the pound key [`#`], followed by a URL for webpage content integration.
- 🔍 **Web Search for RAG**: You can perform web searches using a selection of various search providers and inject the results directly into your local Retrieval Augmented Generation (RAG) experience.
@ -85,19 +92,47 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🎨 **Splash Screen**: A simple loading splash screen for a smoother user experience.
- 🌐 **Personalized Interface**: Choose between a freshly designed search landing page and the classic chat UI from Settings > Interface, allowing for a tailored experience.
- 📦 **Pip Install Method**: Installation of Open WebUI can be accomplished via the command `pip install open-webui`, which streamlines the process and makes it more accessible to new users. For further information, please visit: https://pypi.org/project/open-webui/.
- 🌈 **Theme Customization**: Personalize your Open WebUI experience with a range of options, including a variety of solid, yet sleek themes, customizable chat background images, and three mode options: Light, Dark, or OLED Dark mode - or let *Her* choose for you! ;)
- 🖼️ **Custom Background Support**: Set a custom background from Settings > Interface to personalize your experience.
- 📝 **Rich Banners with Markdown**: Create visually engaging announcements with markdown support in banners, enabling richer and more dynamic content.
- 💻 **Code Syntax Highlighting**: Our syntax highlighting feature enhances code readability, providing a clear and concise view of your code.
- 🗨️ **Markdown Rendering in User Messages**: User messages are now rendered in Markdown, enhancing readability and interaction.
- 🎨 **Flexible Text Input Options**: Switch between rich text input and legacy text area input for chat, catering to user preferences and providing a choice between advanced formatting and simpler text input.
- 👆 Effortless Code Sharing : Streamline the sharing and collaboration process with convenient code copying options, including a floating copy button in code blocks and click-to-copy functionality from code spans, saving time and reducing frustration.
- 🎨 **Interactive Artifacts**: Render web content and SVGs directly in the interface, supporting quick iterations and live changes for enhanced creativity and productivity.
- 🖊️ **Live Code Editing**: Supercharged code blocks allow live editing directly in the LLM response, with live reloads supported by artifacts, streamlining coding and testing.
- 🔍 **Enhanced SVG Interaction**: Pan and zoom capabilities for SVG images, including Mermaid diagrams, enable deeper exploration and understanding of complex concepts.
- 🔍 **Text Select Quick Actions**: Floating buttons appear when text is highlighted in LLM responses, offering deeper interactions like "Ask a Question" or "Explain", and enhancing overall user experience.
- ↕️ **Bi-Directional Chat Support**: You can easily switch between left-to-right and right-to-left chat directions to accommodate various language preferences.
- 📱 **Mobile Accessibility**: The sidebar can be opened and closed on mobile devices with a simple swipe gesture.
- 📂 **Unified Workspace**: A unified workspace section provides access to all your model files, prompts, documents, tools, and functions in one convenient location, streamlining your workflow.
- 🤳 **Haptic Feedback on Supported Devices**: Android devices support haptic feedback for an immersive tactile experience during certain interactions.
- 💾 **Persistent Settings**: Benefit from the convenience of saved and persistent settings within Open WebUI, stored in a config.json file for easy access and reuse.
- 🔍 **User Settings Search**: Quickly search for settings fields, improving ease of use and navigation.
- 📜 **Offline Swagger Documentation**: Access developer-friendly Swagger API documentation offline, ensuring full accessibility wherever you are.
- 💾 **Performance Optimizations**: Lazy loading of large dependencies minimizes initial memory usage, boosting performance and reducing loading times.
- 🚀 **Persistent and Scalable Configuration**: Open WebUI configurations are stored in a database (webui.db), allowing for seamless load balancing, high-availability setups, and persistent settings across multiple instances, making it easy to access and reuse your configurations.
- 🔄 **Portable Import/Export**: Easily import and export Open WebUI configurations, simplifying the process of replicating settings across multiple systems.
- ❓ **Quick Access to Documentation & Shortcuts**: The question mark button located at the bottom right-hand corner of the main UI screen (available on larger screens like desktop PCs and laptops) provides users with easy access to the Open WebUI documentation page and available keyboard shortcuts.
@ -107,6 +142,24 @@ import { TopBanners } from "@site/src/components/TopBanners";
### 💬 Conversations
- 💬 **True Asynchronous Chat**: Enjoy uninterrupted multitasking with true asynchronous chat support, allowing you to create chats, navigate away, and return anytime with responses ready.
- 🔔 **Chat Completion Notifications**: Stay updated with instant in-UI notifications when a chat finishes in a non-active tab, ensuring you never miss a completed response.
- 🌐 **Notification Webhook Integration**: Receive timely updates for long-running chats or external integration needs with configurable webhook notifications, even when your tab is closed.
- 📚 **Channels (Beta)**: Explore real-time collaboration between users and AIs with Discord/Slack-style chat rooms, build bots for channels, and unlock asynchronous communication for proactive multi-agent workflows.
- 🖊️ **Typing Indicators in Channels**: Enhance collaboration with real-time typing indicators in channels, keeping everyone engaged and informed.
- 👤 **User Status Indicators**: Quickly view a user's status by clicking their profile image in channels, providing better coordination and availability insights.
- 💬 **Chat Controls**: Easily adjust parameters for each chat session, offering more precise control over your interactions.
- 💖 **Favorite Response Management**: Easily mark and organize favorite responses directly from the chat overview, enhancing ease of retrieval and access to preferred responses.
- 📌 **Pinned Chats**: Support for pinned chats, allowing you to keep important conversations easily accessible.
- 🔍 **RAG Embedding Support**: Change the Retrieval Augmented Generation (RAG) embedding model directly in the `Admin Panel` > `Settings` > `Documents` menu, enhancing document processing. This feature supports Ollama and OpenAI models.
- 📜 **Citations in RAG Feature**: The Retrieval Augmented Generation (RAG) feature allows users to easily track the context of documents fed to LLMs with added citations for reference points.
@ -115,16 +168,46 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 📹 **YouTube RAG Pipeline**: The dedicated Retrieval Augmented Generation (RAG) pipeline for summarizing YouTube videos via video URLs enables smooth interaction with video transcriptions directly.
- 📁 **Comprehensive Document Retrieval**: Toggle between full document retrieval and traditional snippets, enabling comprehensive tasks like summarization and supporting enhanced document capabilities.
- 🌟 **RAG Citation Relevance**: Easily assess citation accuracy with the addition of relevance percentages in RAG results.
- 🗂️ **Advanced RAG**: Improve RAG accuracy with smart pre-processing of chat history to determine the best queries before retrieval.
- 📚 **Inline Citations for RAG**: Benefit from seamless inline citations for Retrieval-Augmented Generation (RAG) responses, improving traceability and providing source clarity for newly uploaded files.
- 📁 **Large Text Handling**: Optionally convert large pasted text into a file upload to be used directly with RAG, keeping the chat interface cleaner.
- 🔄 **Multi-Modal Support**: Effortlessly engage with models that support multi-modal interactions, including images (`e.g., LLaVA`).
- 🤖 **Multiple Model Support**: Quickly switch between different models for diverse chat interactions.
- 🔀 **Merge Responses in Many Model Chat**: Enhances the dialogue by merging responses from multiple models into a single, coherent reply.
- ✅ **Multiple Instances of Same Model in Chats**: Enhanced many model chat to support adding multiple instances of the same model.
- 💬 **Temporary Chat Feature**: Introduced a temporary chat feature, deprecating the old chat history setting to enhance user interaction flexibility.
- 🖋️ **User Message Editing**: Enhanced the user chat editing feature to allow saving changes without sending.
- 💬 **Efficient Conversation Editing**: Create new message pairs quickly and intuitively using the Cmd/Ctrl+Shift+Enter shortcut, streamlining conversation length tests.
- 🖼️ **Client-Side Image Compression**: Save bandwidth and improve performance with client-side image compression, allowing you to compress images before upload from Settings > Interface.
- 👥 **'@' Model Integration**: By seamlessly switching to any accessible local or external model during conversations, users can harness the collective intelligence of multiple models in a single chat. This can done by using the `@` command to specify the model by name within a chat.
- 🏷️ **Conversation Tagging**: Effortlessly categorize and locate tagged chats for quick reference and streamlined data collection.
- 🏷️ Conversation Tagging : Effortlessly categorize and locate tagged chats for quick reference and streamlined data collection using our efficient 'tag:' query system, allowing you to manage, search, and organize your conversations without cluttering the interface.
- 🧠 **Auto-Tagging**: Conversations can optionally be automatically tagged for improved organization, mirroring the efficiency of auto-generated titles.
- 👶 **Chat Cloning**: Easily clone and save a snapshot of any chat for future reference or continuation. This feature makes it easy to pick up where you left off or share your session with others. To create a copy of your chat, simply click on the `Clone` button in the chat's dropdown options. Can you keep up with your clones?
- ⭐ **Visualized Conversation Flows**: Interactive messages diagram for improved visualization of conversation flows, enhancing understanding and navigation of complex discussions.
- 📁 **Chat Folders**: Organize your chats into folders, drag and drop them for easy management, and export them seamlessly for sharing or analysis.
- 📤 **Easy Chat Import**: Import chats into your workspace by simply dragging and dropping chat exports (JSON) onto the sidebar.
- 📜 **Prompt Preset Support**: Instantly access custom preset prompts using the `/` command in the chat input. Load predefined conversation starters effortlessly and expedite your interactions. Import prompts with ease through [Open WebUI Community](https://openwebui.com/) integration or create your own!
- 📅 **Prompt Variables Support**: Prompt variables such as `{{CLIPBOARD}}`, `{{CURRENT_DATE}}`, `{{CURRENT_DATETIME}}`, `{{CURRENT_TIME}}`, `{{CURRENT_TIMEZONE}}`, `{{CURRENT_WEEKDAY}}`, `{{USER_NAME}}`, `{{USER_LANGUAGE}}`, and `{{USER_LOCATION}}` can be utilized in the system prompt or by using a slash command to select a prompt directly within a chat.
@ -138,9 +221,9 @@ import { TopBanners } from "@site/src/components/TopBanners";
### 💻 Model Management
- 🛠️ **Model Builder**: All models can be built and edited with a persistent model builder mode within the models workspace.
- 🛠️ **Model Builder**: All models can be built and edited with a persistent model builder mode within the models edit page.
- 📚 **Knowledge Support for Models**: The ability to attach functions and documents directly to models from the models workspace enhances the information available to each model.
- 📚 **Knowledge Support for Models**: The ability to attach tools, functions, and knowledge collections directly to models from a model's edit page, enhancing the information available to each model.
- 🗂️ **Model Presets**: Create and manage model presets for both the Ollama and OpenAI API.
@ -148,7 +231,13 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 📋 **Model Selector Dropdown Ordering**: Models can be effortlessly organized by dragging and dropping them into desired positions within the model workspace, which will then reflect the changes in the model dropdown menu.
- 🔍 **Model Selector Dropdown**: Easily find and select your models with an included search filter and detailed model information with model tags and model descriptions.
- 🔍 **Model Selector Dropdown**: Easily find and select your models with fuzzy search and detailed model information with model tags and model descriptions.
- ⌨️ **Arrow Keys Model Selection**: Use arrow keys for quicker model selection, enhancing accessibility.
- 🔧 **Quick Actions in Model Workspace**: Enhanced Shift key quick actions for hiding/displaying and deleting models in the model workspace.
- 😄 **Transparent Model Usage**: Stay informed about the system's state during queries with knowledge-augmented models, thanks to visible status displays.
- ⚙️ **Fine-Tuned Control with Advanced Parameters**: Gain a deeper level of control by adjusting model parameters such as `seed`, `temperature`, `frequency penalty`, `context length`, `seed`, and more.
@ -162,6 +251,8 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 💡 **LLM Response Insights**: Details of every generated response can be viewed, including external model API insights and comprehensive local model info.
- 🕒 **Model Details at a Glance**: View critical model details, including model hash and last modified timestamp, directly in the Models workspace for enhanced tracking and management.
- 📥🗑️ **Download/Delete Models**: Models can be downloaded or deleted directly from Open WebUI with ease.
- 🔄 **Update All Ollama Models**: A convenient button allows users to update all their locally installed models in one operation, streamlining model management.
@ -176,11 +267,21 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🗨️ **Local Chat Sharing**: Generate and share chat links between users in an efficient and seamless manner, thereby enhancing collaboration and communication.
- 👍👎 **RLHF Annotation**: Enhance the impact of your messages by rating them with either a thumbs up or thumbs down, followed by the option to provide textual feedback, facilitating the creation of datasets for Reinforcement Learning from Human Feedback (`RLHF`). Utilize your messages to train or fine-tune models, all while ensuring the confidentiality of locally saved data.
- 👍👎 **RLHF Annotation**: Enhance the impact of your messages by rating them with either a thumbs up or thumbs down AMD provide a rating for the response on a scale of 1-10, followed by the option to provide textual feedback, facilitating the creation of datasets for Reinforcement Learning from Human Feedback (`RLHF`). Utilize your messages to train or fine-tune models, all while ensuring the confidentiality of locally saved data.
- 🔧 **Comprehensive Feedback Export**: Export feedback history data to JSON for seamless integration with RLHF processing and further analysis, providing valuable insights for improvement.
- 🤝 **Community Sharing**: Share your chat sessions with the [Open WebUI Community](https://openwebui.com/) by clicking the `Share to Open WebUI Community` button. This feature allows you to engage with other users and collaborate on the platform.
- To utilize this feature, please sign-in to your Open WebUI Community account. Sharing your chats fosters a vibrant community, encourages knowledge sharing, and facilitates joint problem-solving. Please note that community sharing of chat sessions is an optional feature. Only Admins can toggle this feature on or off in the `Admin Settings` > `Settings` > `General` menu.
- 🏆 **Community Leaderboard**: Compete and track your performance in real-time with our leaderboard system, which utilizes the ELO rating system and allows for optional sharing of feedback history.
- ⚔️ **Model Evaluation Arena**: Conduct blind A/B testing of models directly from the Admin Settings for a true side-by-side comparison, making it easier to find the best model for your needs.
- 🎯 **Topic-Based Rankings**: Discover more accurate rankings with our experimental topic-based re-ranking system, which adjusts leaderboard standings based on tag similarity in feedback.
- 📂 Unified and Collaborative Workspace : Access and manage all your model files, prompts, documents, tools, and functions in one convenient location, while also enabling multiple users to collaborate and contribute to models, knowledge, prompts, or tools, streamlining your workflow and enhancing teamwork.
---
### 📚 History & Archive
@ -203,7 +304,7 @@ import { TopBanners } from "@site/src/components/TopBanners";
---
### 🎙️ Voice & Accessibility
### 🎙️ Audio, Voice, & Accessibility
- 🗣️ **Voice Input Support**: Engage with your model through voice interactions; enjoy the convenience of talking to your model directly. Additionally, explore the option for sending voice input automatically after 3 seconds of silence for a streamlined experience.
- Microphone access requires manually setting up a secure connection over HTTPS to work, or [manually whitelisting your URL at your own risk](https://docs.openwebui.com/troubleshooting/microphone-error).
@ -219,8 +320,24 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 👆 **Tap to Interrupt**: Stop the AIs speech during voice conversations with a simple tap on mobile devices, ensuring seamless control over the interaction.
- 🎙️ **Voice Interrupt**: Stop the AIs speech during voice conversations with your voice on mobile devices, ensuring seamless control over the interaction.
- 🔊 **Configurable Text-to-Speech Endpoint**: Customize your Text-to-Speech experience with configurable OpenAI-compatible endpoints for reading aloud LLM responses.
- 🔗 **Direct Call Mode Access**: Activate call mode directly from a URL, providing a convenient shortcut for mobile device users.
- ✨ **Customizable Text-to-Speech**: Control how message content is segmented for Text-to-Speech (TTS) generation requests, allowing for flexible speech output options.
- 🔊 **Azure Speech Services Integration**: Supports Azure Speech services for Text-to-Speech (TTS), providing users with a wider range of speech synthesis options.
- 🎚️ **Customizable Audio Playback**: Allows users to adjust audio playback speed to their preferences in Call mode settings, enhancing accessibility and usability.
- 🎵 **Broad Audio Compatibility**: Enjoy support for a wide range of audio file format transcriptions with RAG, including 'audio/x-m4a', to broaden compatibility with audio content within the platform.
- 🔊 **Audio Compression**: Experimental audio compression allows navigating around the 25MB limit for OpenAI's speech-to-text processing, expanding the possibilities for audio-based interactions.
- 🗣️ **Experimental SpeechT5 TTS**: Enjoy local SpeechT5 support for improved text-to-speech capabilities.
---
### 🐍 Code Execution
@ -233,6 +350,8 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🌊 **Mermaid Rendering**: Create visually appealing diagrams and flowcharts directly within Open WebUI using the [Mermaid Diagramming and charting tool](https://mermaid.js.org/intro/), which supports Mermaid syntax rendering.
- 🔗 **Iframe Support**: Enables rendering HTML directly into your chat interface using functions and tools.
---
### 🔒 Integration & Security
@ -245,7 +364,7 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🌐🔗 **External Ollama Server Connectivity**: Seamlessly link to an external Ollama server hosted on a different address by configuring the environment variable.
- 🛢️ **External Database Support**: Seamlessly connect to custom SQLite or Postgres databases using the `DATABASE_URL` environment variable.
- 🛢️ **Flexible Database Integration**: Seamlessly connect to custom databases, including SQLite, Postgres, and multiple vector databases like Milvus, using environment variables for flexible and scalable data management.
- 🌐🗣️ **External Speech-to-Text Support**: The addition of external speech-to-text (`STT`) services provides enhanced flexibility, allowing users to choose their preferred provider for seamless interaction.
@ -253,6 +372,12 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🔀 **Multiple Ollama Instance Load Balancing**: Effortlessly distribute chat requests across multiple Ollama instances for enhanced performance and reliability.
- 🚀 **Advanced Load Balancing and Reliability**: Utilize enhanced load balancing capabilities, stateless instances with full Redis support, and automatic web socket re-connection to promote better performance, reliability, and scalability in WebUI, ensuring seamless and uninterrupted interactions across multiple instances.
- ☁️ **Experimental S3 Support**: Enable stateless WebUI instances with S3 support for enhanced scalability and balancing heavy workloads.
- 🛠️ **OAuth Management for User Groups**: Enhance control and scalability in collaborative environments with group-level management via OAuth integration.
---
### 👑 Administration
@ -289,4 +414,32 @@ import { TopBanners } from "@site/src/components/TopBanners";
- 🔓 **Optional Authentication**: Enjoy the flexibility of disabling authentication by setting `WEBUI_AUTH` to `False`. This is an ideal solution for fresh installations without existing users or can be useful for demonstration purposes.
- 🚫 **Advanced API Security**: Block API users based on customized model filters, enhancing security and control over API access.
- ❗ **Administrator Updates**: Ensure administrators stay informed with immediate update notifications upon login, keeping them up-to-date on the latest changes and system statuses.
- 👥 **User Group Management**: Create and manage user groups for seamless organization and control.
- 🔐 **Group-Based Access Control**: Set granular access to models, knowledge, prompts, and tools based on user groups, allowing for more controlled and secure environments.
- 🛠️ **Granular User Permissions**: Easily manage workspace permissions, including file uploads, deletions, edits, and temporary chats, as well as model, knowledge, prompt, and tool creation.
- 🔑 **LDAP Authentication**: Enhance security and scalability with LDAP support for user management.
- 🌐 **Customizable OpenAI Connections**: Enjoy smooth operation with custom OpenAI setups, including prefix ID support and explicit model ID support for APIs.
- 🔐 **Ollama API Key Management**: Manage Ollama credentials, including prefix ID support, for secure and efficient operation.
- 🔄 **Connection Management**: Easily enable or disable individual OpenAI and Ollama connections as needed.
- 🎨 **Intuitive Model Workspace**: Manage models across users and groups with a redesigned and user-friendly interface.
- 🔑 **API Key Authentication**: Tighten security by easily enabling or disabling API key authentication.
- 🔄 **Unified Model Reset**: Reset and remove all models from the Admin Settings with a one-click option.
- 🔓 **Flexible Model Access Control**: Easily bypass model access controls for user roles when not required, using the 'BYPASS_MODEL_ACCESS_CONTROL' environment variable, simplifying workflows in trusted environments.
- 🔒 **Configurable API Key Authentication Restrictions**: Flexibly configure endpoint restrictions for API key authentication, now off by default for a smoother setup in trusted environments.
---

View File

@ -241,3 +241,72 @@ async def test_function(
return f"Tell the user: {e}"
```
</details>
#### Citations
This type is used to provide citations or references in the chat. You can utilize it to specify the content, the source, and any relevant metadata. Below is an example of how to emit a citation event:
```
await __event_emitter__(
{
"type": "citation",
"data": {
"document": [content],
"metadata": [
{
"date_accessed": datetime.now().isoformat(),
"source": title,
}
],
"source": {"name": title, "url": url},
},
}
)
```
If you are sending multiple citations, you can iterate over citations and call the emitter multiple times. When implementing custom citations, ensure that you set `self.citation = False` in your `Tools` class `__init__` method. Otherwise, the built-in citations will override the ones you have pushed in. For example:
```python
def __init__(self):
self.citation = False
```
Warning: if you set `self.citation = True`, this will replace any custom citations you send with the automatically generated return citation. By disabling it, you can fully manage your own citation references.
<details>
<summary>Example</summary>
```
class Tools:
class UserValves(BaseModel):
test: bool = Field(
default=True, description="test"
)
def __init__(self):
self.citation = False
async def test_function(
self, prompt: str, __user__: dict, __event_emitter__=None
) -> str:
"""
This is a demo that just creates a citation
:param test: this is a test parameter
"""
await __event_emitter__(
{
"type": "citation",
"data": {
"document": ["This message will be appended to the chat as a citation when clicked into"],
"metadata": [
{
"date_accessed": datetime.now().isoformat(),
"source": title,
}
],
"source": {"name": "Title of the content"", "url": "http://link-to-citation"},
},
}
)
```
</details>

View File

@ -10,6 +10,7 @@ Open WebUI supports several forms of federated authentication:
1. OAuth2
1. Google
1. Microsoft
1. Github
1. OIDC
1. Trusted Header
@ -44,6 +45,16 @@ The following environment variables are required:
1. `MICROSOFT_CLIENT_SECRET` - Microsoft OAuth client secret
1. `MICROSOFT_CLIENT_TENANT_ID` - Microsoft tenant ID - use `9188040d-6c67-4c5b-b112-36a304b66dad` for personal accounts
### Github
To configure a Github OAuth Client, please refer to [Github's documentation](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps) on how to create a OAuth App or Github App for a **web application**.
The allowed redirect URI should include `<open-webui>/oauth/github/callback`.
The following environment variables are required:
1. `GITHUB_CLIENT_ID` - Github OAuth App Client ID
1. `GITHUB_CLIENT_SECRET` - Github OAuth App Client Secret
### OIDC
Any authentication provider that supports OIDC can be configured.
@ -75,6 +86,24 @@ If changing the role of a logged in user, they will need to log out and log back
:::
### OAuth Group Management
Any OAuth provider that can be configured to return groups in the access token can be used to manage user groups in Open WebUI.
To use this feature set `ENABLE_OAUTH_GROUP_MANAGEMENT` to `true`.
You can configure the following environment variables to match the groups returned by the OAuth provider:
1. `OAUTH_GROUP_CLAIM` - The claim that contains the groups. Defaults to `groups`. Can also be nested, for example `user.memberOf`.
:::warning
Admin users do not get their groups updated
:::
:::info
If changing the group of a logged in user, they will need to log out and log back in to receive the new group.
:::
## Trusted Header
Open WebUI is able to delegate authentication to an authenticating reverse proxy that passes in the user's details in HTTP headers.

View File

@ -35,7 +35,7 @@ Please note that `PersistentConfig` environment variables are clearly marked as
## App/Backend
The following environment variables are used by `backend/config.py` to provide Open WebUI startup
The following environment variables are used by `backend/open_webui/config.py` to provide Open WebUI startup
configuration. Please note that some variables may have different default values depending on
whether you're running Open WebUI directly or via Docker. For more information on logging
environment variables, see our [logging documentation](https://docs.openwebui.com/getting-started/advanced-topics/logging)).
@ -869,7 +869,7 @@ Provide a clear and direct response to the user's query, including inline citati
#### `RAG_FILE_MAX_SIZE`
- Type: `int`
- Description: Sets the maximum size of a file that can be uploaded for document ingestion.
- Description: Sets the maximum size of a file in megabytes that can be uploaded for document ingestion.
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `RAG_FILE_MAX_COUNT`
@ -1815,6 +1815,36 @@ See https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-registe
- Description: Sets the redirect URI for Microsoft OAuth
- Persistence: This environment variable is a `PersistentConfig` variable.
### Github
See https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps
#### `GITHUB_CLIENT_ID`
- Type: `str`
- Description: Sets the client ID for Github OAuth
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `GITHUB_CLIENT_SECRET`
- Type: `str`
- Description: Sets the client secret for Github OAuth
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `GITHUB_OAUTH_SCOPE`
- Type: `str`
- Default: `user:email`
- Description: Sets the scope for Github OAuth authentication.
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `GITHUB_CLIENT_REDIRECT_URI`
- Type: `str`
- Default: `<backend>/oauth/github/callback`
- Description: Sets the redirect URI for Github OAuth
- Persistence: This environment variable is a `PersistentConfig` variable.
### OpenID (OIDC)
#### `OAUTH_CLIENT_ID`
@ -1876,6 +1906,12 @@ See https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-registe
- Description: Sets the attribute to use as username for LDAP authentication.
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `LDAP_ATTRIBUTE_FOR_MAIL`
- Type: `str`
- Description: Sets the attribute to use as mail for LDAP authentication.
- Persistence: This environment variable is a `PersistentConfig` variable.
#### `LDAP_CA_CERT_FILE`
- Type: `str`
@ -2021,6 +2057,11 @@ These variables are not specific to Open WebUI but can still be valuable in cert
- Type: `str`
- Description: Sets the endpoint URL for S3 storage.
#### `S3_KEY_PREFIX`
- Type: `str`
- Description: Sets the key prefix for a S3 object.
#### `S3_REGION_NAME`
- Type: `str`

View File

@ -39,7 +39,7 @@ A useful helper script called `run-compose.sh` is included with the codebase. Th
---
**Note:** For Nvidia GPU support, add the following to your service definition in the `docker-compose.yml` file:
**Note:** For Nvidia GPU support, you change the image from `ghcr.io/open-webui/open-webui:main` to `ghcr.io/open-webui/open-webui:cuda` and add the following to your service definition in the `docker-compose.yml` file:
```yaml
deploy:

View File

@ -109,3 +109,12 @@ 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`.
On Windows 10 + WSL 2, Docker volumes are located here (type in the Windows file explorer):
- \\\wsl$\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes
For older versions of Docker (pre-Docker v26.1.4):
- \\\wsl$\docker-desktop-data\data\docker\volumes
- \\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes
_(Windows answer credit to StackOverflow user sarye-haddadi; [link to original SO post](https://stackoverflow.com/questions/43181654/locating-data-volumes-in-docker-desktop-windows))_

View File

@ -84,9 +84,51 @@ _If you have issues with the above._ I had issues chaining the `bash` commands
UPDATE auth SET password='HASH' WHERE email='admin@example.com';
-- exit sqlite: [Ctrl + d]
```
## Nuking All the Data
If you want to **completely reset** Open WebUI—including all user data, settings, and passwords—follow these steps to remove the `webui.db` file.
### Step 1: Locate `webui.db` in Your Python Environment
If youre unsure where `webui.db` is located (especially if you're using a virtual environment), you can find out by following these steps:
1. Activate your virtual environment (if applicable).
2. Open a Python shell:
python
3. Run the following code inside the Python shell:
```
import os
import open_webui
# Show where the Open WebUI package is installed
print("Open WebUI is installed at:", open_webui.__file__)
# Construct a potential path to webui.db (commonly located in 'data/webui.db')
db_path = os.path.join(os.path.dirname(open_webui.__file__), "data", "webui.db")
print("Potential path to webui.db:", db_path)
# Check if webui.db exists at that path
if os.path.exists(db_path):
print("webui.db found at:", db_path)
else:
print("webui.db not found at:", db_path)
```
4. Examine the output:
- If the file is found, youll see its exact path.
- If not, you may need to perform a broader filesystem search (e.g., using `find` on Linux or a global file search on Windows/Mac).
### Step 2: Delete `webui.db`
Once youve located the file, remove it using a command similar to:
```
rm -rf /path/to/your/python/environment/lib/pythonX.X/site-packages/open_webui/data/webui.db
```
**Warning:** Deleting `webui.db` will remove all stored data, including user accounts, settings, and passwords. Only do this if you truly want to start fresh!
---
📖 By following these straightforward steps, you'll regain access to your Open WebUI admin account in no time. If you encounter any issues during the process, please consider searching for your issue on forums or community platforms.
```

View File

@ -0,0 +1,102 @@
---
sidebar_position: 31
title: "🛌 Integrate with Amazon Bedrock"
---
:::warning
This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial.
:::
---
# Integrating Open-WebUI with Amazon Bedrock
In this tutorial, we'll explore one of the most common and popular approaches to integrate Open-WebUI with Amazon Bedrock.
## Prerequisites
In order to follow this tutorial, you must have the following:
- An active AWS account
- An active AWS Access Key and Secret Key
- IAM permissions in AWS to enable Bedrock models or already enabled models
- Docker installed on your system
## What is Amazon Bedrock
Direct from AWS' website:
"Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading AI companies like AI21 Labs, Anthropic, Cohere, Luma, Meta, Mistral AI, poolside (coming soon), Stability AI, and Amazon through a single API, along with a broad set of capabilities you need to build generative AI applications with security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and evaluate top FMs for your use case, privately customize them with your data using techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that execute tasks using your enterprise systems and data sources. Since Amazon Bedrock is serverless, you don't have to manage any infrastructure, and you can securely integrate and deploy generative AI capabilities into your applications using the AWS services you are already familiar with."
To learn more about Bedrock, visit: [Amazon Bedrock's Official Page](https://aws.amazon.com/bedrock/)
# Integration Steps
## Step 1: Verify access to Amazon Bedrock Base Models
Before we can integrate with Bedrock, you first have to verify that you have access to at least one, but preferably many, of the available Base Models. At the time of this writing (Feb 2025), there were 47 base models available. You can see in the screenshot below that I have access to multiple models. You'll know if you have access to a model if it says "✅ Access Granted" next to the model. If you don't have access to any models, you will get an error on the next step.
AWS provides good documentation for request accessing / enabling these models here: [Amazon Bedrock's Model Access Docs](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-modify.html)
![Amazon Bedrock Base Models](/images/tutorials/amazon-bedrock/amazon-bedrock-base-models.png)
## Step 2: Configure the Bedrock Access Gateway
Now that we have access to at least one Bedrock base model, we need to configure the Bedrock Access Gateway, or BAG. You can think of the BAG as kind of proxy or middleware developed by AWS that wraps around AWS native endpoints/SDK for Bedrock and, in turn, exposes endpoints that are compatible with OpenAI's schema, which is what Open-WebUI requires.
For reference, here is a simple mapping between the endpoints:
| OpenAI Endpoint | Bedrock Method |
|-----------------------|------------------------|
| `/models` | list_inference_profiles |
| `/models/{model_id}` | list_inference_profiles |
| `/chat/completions` | converse or converse_stream |
| `/embeddings` | invoke_model |
The BAG repo can be found here: [Bedrock Access Gateway Repo](https://github.com/aws-samples/bedrock-access-gateway)
To set-up the BAG, follow the below steps:
- Clone the BAG repo
- Remove the default `dockerfile`
- Change the name of the `Dockerfile_ecs` to `Dockerfile`
We're now ready to build and launch the docker container using:
```bash
docker build . -f Dockerfile -t bedrock-gateway
docker run -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" -e AWS_REGION=us-east-1 -d -p 8000:80 bedrock-gateway
```
You should now be able to access the BAG's swagger page at: http://localhost:8000/docs
![Bedrock Access Gateway Swagger](/images/tutorials/amazon-bedrock/amazon-bedrock-proxy-api.png)
## Step 3: Add Connection in Open-WebUI
Now that you the BAG up-and-running, it's time to add it as a new connection in Open-WebUI.
- Under the Admin Panel, go to Settings -> Connections.
- Use the "+" (plus) button to add a new connection under the OpenAI
- For the URL, use "http://host.docker.internal:8000/api/v1"
- For the password, the default password defined in BAG is "bedrock". You can always change this password in the BAG settings (see DEFAULT_API_KEYS)
- Click the "Verify Connection" button and you should see "Server connection verified" alert in the top-right
![Add New Connection](/images/tutorials/amazon-bedrock/amazon-bedrock-proxy-connection.png)
## Step 4: Start using Bedrock Base Models
You should now see all your Bedrock models available!
![Use Bedrock Models](/images/tutorials/amazon-bedrock/amazon-bedrock-models-in-oui.png)
## Other Helpful Tutorials
These are a few other very helpful tutorials when working to integrate Open-WebUI with Amazon Bedrock.
- https://gauravve.medium.com/connecting-open-webui-to-aws-bedrock-a1f0082c8cb2
- https://jrpospos.blog/posts/2024/08/using-amazon-bedrock-with-openwebui-when-working-with-sensitive-data/

View File

@ -13,7 +13,7 @@ To fix this, you will need to add the new cert into OI's truststore.
**For pre-built Docker image**:
1. Mount the certificiate store from your host machine into the container by passing `--volume=/etc/ssl/certs/ca-certificiate.crt:/etc/ssl/certs/ca-certificiates.crt:ro` as a command-line option to `docker run`
1. Mount the certificate store from your host machine into the container by passing `--volume=/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro` as a command-line option to `docker run`
2. Force python to use the system truststore by setting `REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt` (see https://docs.docker.com/reference/cli/docker/container/run/#env)
If the environment variable `REQUESTS_CA_BUNDLE` does not work try to set `SSL_CERT_FILE` (as per the [httpx documentation](https://www.python-httpx.org/environment_variables/#ssl_cert_file)) instead with the same value.

View File

@ -0,0 +1,113 @@
---
sidebar_position: 25
title: "🔠 LibreTranslate Integration"
---
:::warning
This tutorial is a community contribution and is not supported by the OpenWebUI team. It serves only as a demonstration on how to customize OpenWebUI for your specific use case. Want to contribute? Check out the contributing tutorial.
:::
Overview
--------
LibreTranslate is a free and open-source machine translation API that supports a wide range of languages. LibreTranslate is a self hosted, offline capable, and easy to setup, and unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source [Argos Translate](https://github.com/argosopentech/argos-translate) library. You can integrate LibreTranslate with Open WebUI to leverage its machine translation capabilities. This documentation provides a step-by-step guide to setting up LibreTranslate in Docker and configuring the integration within Open WebUI.
Setting up LibreTranslate in Docker
-----------------------------------
To set up LibreTranslate in Docker, follow these steps:
### Step 1: Create a Docker Compose File
Create a new file named `docker-compose.yml` in a directory of your choice. Add the following configuration to the file:
```yml
services:
libretranslate:
container_name: libretranslate
image: libretranslate/libretranslate:v1.6.0
restart: unless-stopped
ports:
- "5000:5000"
env_file:
- stack.env
volumes:
- libretranslate_api_keys:/app/db
- libretranslate_models:/home/libretranslate/.local:rw
tty: true
stdin_open: true
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
volumes:
libretranslate_models:
libretranslate_api_keys:
```
### Step 2: Create a `stack.env` File
Create a new file named `stack.env` in the same directory as your `docker-compose.yml` file. Add the following configuration to the file:
```bash
# LibreTranslate
LT_DEBUG="false"
LT_UPDATE_MODELS="true"
LT_SSL="false"
LT_SUGGESTIONS="false"
LT_METRICS="false"
LT_HOST="0.0.0.0"
LT_API_KEYS="false"
LT_THREADS="12"
LT_FRONTEND_TIMEOUT="2000"
```
### Step 3: Run the Docker Compose File
Run the following command to start the LibreTranslate service:
```bash
docker-compose up -d
```
This will start the LibreTranslate service in detached mode.
Configuring the Integration in Open WebUI
-------------------------------------------
Once you have LibreTranslate up and running in Docker, you can configure the integration within Open WebUI. There are several community integrations available, including:
* [LibreTranslate Filter Function](https://openwebui.com/f/iamg30/libretranslate_filter)
* [LibreTranslate Action Function](https://openwebui.com/f/jthesse/libretranslate_action)
* [MultiLanguage LibreTranslate Action Function](https://openwebui.com/f/iamg30/multilanguage_libretranslate_action)
* [LibreTranslate Filter Pipeline](https://github.com/open-webui/pipelines/blob/main/examples/filters/libretranslate_filter_pipeline.py)
Choose the integration that best suits your needs and follow the instructions to configure it within Open WebUI.
Supported languages for the LibreTranslate pipeline & function:
Really just all the languages that can be found within LibreTranslate, but here is the list:
```
Albanian, Arabic, Azerbaijani, Bengali, Bulgarian, Catalan, Valencian, Chinese, Czech, Danish, Dutch, English, Flemish, Esperanto, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Irish, Italian, Japanese, Korean, Latvian, Lithuanian, Malay, Persian, Polish, Portuguese, Romanian, Moldavian, Moldovan, Russian, Slovak, Slovenian, Spanish, Castilian, Swedish, Tagalog, Thai, Turkish, Ukrainian, Urdu
```
Troubleshooting
--------------
* Make sure the LibreTranslate service is running and accessible.
* Verify that the Docker configuration is correct.
* Check the LibreTranslate logs for any errors.
Benefits of Integration
----------------------
Integrating LibreTranslate with Open WebUI provides several benefits, including:
* Machine translation capabilities for a wide range of languages.
* Improved text analysis and processing.
* Enhanced functionality for language-related tasks.
Conclusion
----------
Integrating LibreTranslate with Open WebUI is a straightforward process that can enhance the functionality of your Open WebUI instance. By following the steps outlined in this documentation, you can set up LibreTranslate in Docker and configure the integration within Open WebUI.

View File

@ -0,0 +1,100 @@
---
sidebar_position: 320
title: "🪣 Switching to S3 Storage"
---
:::warning
This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial.
:::
# 🪣 Switching to S3 Storage
This guide provides instructions on how to switch the default `local` storage in Open WebUI config to Amazon S3.
## Prerequisites
In order to follow this tutorial, you must have the following:
- An active AWS account
- An active AWS Access Key and Secret Key
- IAM permissions in AWS to create and put objects in S3
- Docker installed on your system
## What is Amazon S3
Direct from AWS' website:
"Amazon S3 is an object storage service that offers industry-leading scalability, data availability, security, and performance. Store and protect any amount of data for a range of use cases, such as data lakes, websites, cloud-native applications, backups, archive, machine learning, and analytics. Amazon S3 is designed for 99.999999999% (11 9's) of durability, and stores data for millions of customers all around the world."
To learn more about S3, visit: [Amazon S3's Official Page](https://aws.amazon.com/s3/)
# How to Set-Up
## 1. Required environment variables
In order to configure this option, you need to gather the following environment variables:
| **Open-WebUI Environment Variable** | **Example Value** |
|-------------------------------------|---------------------------------------------|
| `S3_ACCESS_KEY_ID` | ABC123 |
| `S3_SECRET_ACCESS_KEY` | SuperSecret |
| `S3_ENDPOINT_URL` | https://s3.us-east-1.amazonaws.com |
| `S3_REGION_NAME` | us-east-1 |
| `S3_BUCKET_NAME` | my-awesome-bucket-name |
- S3_ACCESS_KEY_ID: This is an identifier for your AWS account's access key. You get this from the AWS Management Console or AWS CLI when creating an access key.
- S3_SECRET_ACCESS_KEY: This is the secret part of your AWS access key pair. It's provided when you create an access key in AWS and should be stored securely.
- S3_ENDPOINT_URL: This URL directs to your S3 service endpoint and can typically be found in AWS service documentation or account settings.
- S3_REGION_NAME: This is the AWS region where your S3 bucket resides, like "us-east-1". You can identify this from the AWS Management Console under your S3 bucket details.
- S3_BUCKET_NAME: This is the unique name of your S3 bucket, which you specified when creating the bucket in AWS.
For a complete list of the available S3 endpoint URLs, see: [Amazon S3 Regular Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html)
See all the `Cloud Storage` configuration options here: [Open-WebUI Cloud Storage Config](https://docs.openwebui.com/getting-started/env-configuration#cloud-storage)
## 2. Run Open-WebUI
Before we launch our instance of Open-WebUI, there is one final environment variable called `STORAGE_PROVIDER` we need to set. This variable tells Open-WebUI which provider you want to use. By default, `STORAGE_PROVIDER` is empty which means Open-WebUI uses local storage.
| **Storage Provider** | **Type** | **Description** | **Default** |
|----------------------|----------|-------------------------------------------------------------------------------------------------|-------------|
| `local` | str | Defaults to local storage if an empty string (`' '`) is provided | Yes |
| `s3` | str | Uses S3 client library and related environment variables mentioned in Amazon S3 Storage | No |
| `gcs` | str | Uses GCS client library and related environment variables mentioned in Google Cloud Storage | No |
To use Amazon S3, we need to set `STORAGE_PROVIDER` to "S3" along with all the environment variables we gathered in Step 1 (`S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY`, `S3_ENDPOINT_URL`, `S3_REGION_NAME`, `S3_BUCKET_NAME`).
Here, I'm also setting the `ENV` to "dev", which will allow us to see the Open-WebUI Swagger docs so we can further test and confirm the S3 storage set-up is working as expected.
```sh
docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
-e STORAGE_PROVIDER="s3" \
-e S3_ACCESS_KEY_ID="ABC123" \
-e S3_SECRET_ACCESS_KEY="SuperSecret" \
-e S3_ENDPOINT_URL="https://s3.us-east-1.amazonaws.com" \
-e S3_REGION_NAME="us-east-1" \
-e S3_BUCKET_NAME="my-awesome-bucket-name" \
-e ENV="dev" \
--name open-webui \
ghcr.io/open-webui/open-webui:main
```
## 3. Test the set-up
Now that we have Open-WebUI running, let's upload a simple `Hello, World` text file and test our set-up.
![Upload a file in Open-WebUI](/images/tutorials/amazon-s3/amazon-s3-upload-file.png)
And confirm that we're getting a response from the selected LLM.
![Get a response in Open-WebUI](/images/tutorials/amazon-s3/amazon-s3-oui-response.png)
Great! Looks like everything is worked as expected in Open-WebUI. Now let's verify that the text file was indeed uploaded and stored in the specified S3 bucket. Using the AWS Management Console, we can see that there is now a file in the S3 bucket. In addition to the name of the file we uploaded (`hello.txt`) you can see the object's name was appended with a unique ID. This is how Open-WebUI tracks all the files uploaded.
![Get a response in Open-WebUI](/images/tutorials/amazon-s3/amazon-s3-object-in-bucket.png)
Using Open-WebUI's swagger docs, we can get all the information related to this file using the `/api/v1/files/{id}` endpoint and passing in the unique ID (4405fabb-603e-4919-972b-2b39d6ad7f5b).
![Inspect the file by ID](/images/tutorials/amazon-s3/amazon-s3-get-file-by-id.png)

View File

@ -7,8 +7,6 @@ title: "🗨️ Kokoro-FastAPI Using Docker"
This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial.
:::
# Integrating `Kokoro-FastAPI` 🗣️ with Open WebUI
## What is `Kokoro-FastAPI`?
[Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) is a dockerized FastAPI wrapper for the [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) text-to-speech model that implements the OpenAI API endpoint specification. It offers high-performance text-to-speech with impressive generation speeds:
@ -62,14 +60,54 @@ This tutorial is a community contribution and is not supported by the Open WebUI
### GPU Version (Requires NVIDIA GPU with CUDA 12.1)
Using docker run:
```bash
docker run -d -p 8880:8880 -p 7860:7860 remsky/kokoro-fastapi-gpu:latest
docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu
```
Or docker compose, by creating a `docker-compose.yml` file and running `docker compose up`. For example:
```yaml
name: kokoro
services:
kokoro-fastapi-gpu:
ports:
- 8880:8880
image: ghcr.io/remsky/kokoro-fastapi-gpu:v0.2.1
restart: always
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
```
:::info
You may need to install and configure [the NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
:::
### CPU Version (ONNX optimized inference)
With docker run:
```bash
docker run -d -p 8880:8880 -p 7860:7860 remsky/kokoro-fastapi-cpu:latest
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu
```
With docker compose:
```yaml
name: kokoro
services:
kokoro-fastapi-cpu:
ports:
- 8880:8880
image: ghcr.io/remsky/kokoro-fastapi-cpu
restart: always
```
## Setting up Open WebUI to use `Kokoro-FastAPI`
@ -99,4 +137,4 @@ docker compose up --build
**That's it!**
## For more information on building the Docker container, including changing ports, please refer to the [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) repository
For more information on building the Docker container, including changing ports, please refer to the [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) repository

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB