diff --git a/.github/instructions/DOCS.instructions.md b/.github/instructions/DOCS.instructions.md index f30f1da9..2d2c8651 100644 --- a/.github/instructions/DOCS.instructions.md +++ b/.github/instructions/DOCS.instructions.md @@ -22,7 +22,7 @@ Pay special attention to these guidelines when authoring and reviewing documenta ## Understandability, clarity and completeness -- Commands intended to be executed by the reader in a terminal must clearly indicate if they should be run in a local terminal, or in any kind of remote environment. +- Commands intended to be executed by the reader in a terminal must clearly indicate if they should be run in a local terminal, or in any kind of remote environment. Use the `shellsession` code type for shell commands, and prefix commands with `user@local $ ` for commands run on the local machine, or an appropriate other prefix for remote environments. - Instructions that involve starting or managing containers should document all available ways of doing so: The mStudio UI and the CLI tool using its imperative (`mw container run`) and declarative (`mw stack deploy`) commands. - When referring to specific API operations, ALWAYS look up the relevant documentation in the OpenAPI specification in `/static/specs/openapi-v2.json`. diff --git a/docs/guides/apps/openwebui.md b/docs/guides/apps/openwebui.md new file mode 100644 index 00000000..c0fbfd81 --- /dev/null +++ b/docs/guides/apps/openwebui.md @@ -0,0 +1,186 @@ +--- +sidebar_label: Open WebUI +description: Learn how to set up and run Open WebUI in a containerized environment +--- + +# Running Open WebUI + +## Introduction + +> Open WebUI is an extensible, feature-rich, and user-friendly self-hosted WebUI designed to operate entirely offline. It supports various LLM runners, including Ollama and OpenAI-compatible APIs. +> – [Open WebUI GitHub](https://github.com/open-webui/open-webui) + +Open WebUI can be used as a ChatGPT-like interface within mittwald's container hosting. It can be automatically installed and configured when an API key is created for [mittwald AI Hosting](/docs/v2/platform/aihosting/) if your hosting product supports containers. + +## Prerequisites + +- Access to a mittwald mStudio project +- A hosting plan that supports [containerized workloads](/docs/v2/platform/workloads/containers) +- (Optional) A [mittwald AI Hosting API key](/docs/v2/platform/aihosting/access-and-usage/access) for connecting to hosted AI models + +## How do I start the container? + +We use the `ghcr.io/open-webui/open-webui:main` image from [GitHub Container Registry](https://github.com/open-webui/open-webui/pkgs/container/open-webui) for the container. + +### Using the mStudio UI + +In mStudio, go to your project and select **"Create container"**. A guided dialog will open to assist you with the container setup. + +First, enter a description – this is a free text field used to identify the container. For example, enter **"Open WebUI"** and click **"Next"**. + +Next, you'll be asked for the image name. Enter `ghcr.io/open-webui/open-webui:main` and confirm with **"Next"**. + +#### Entrypoint and Command + +- **Entrypoint:** No changes required +- **Command:** No changes required + +#### Volumes + +For persistent data storage, configure the following volume: + +- `/app/backend/data` - This volume stores all Open WebUI data including conversations, configurations, and uploaded documents. + +:::note +You can add new volumes via the mStudio UI. The path above should be set as a mount point. +::: + +#### Environment Variables + +Open WebUI can be configured with various environment variables. For basic operation, no environment variables are strictly required, but you may want to configure some settings: + +``` +# Optional: Custom port (default is 8080) +PORT=8080 + +# Optional: WebUI name +WEBUI_NAME=mittwald AI Chat + +# Optional: Disable signup for new users +ENABLE_SIGNUP=false +``` + +Once you've entered all the environment variables, click **"Next"**. In the final dialog, you'll be asked for the **port** – enter `8080`. Click **"Create container"** to create and start the container. + +### Alternative: Using the `mw container run` command + +You can also use the `mw container run` command to directly create and start an Open WebUI container from the command line. This approach is similar to using the Docker CLI and allows you to specify all container parameters in a single command. + +```shellsession +user@local $ mw container run \ + --name openwebui \ + --description "Open WebUI - AI Chat Interface" \ + --publish 8080:8080 \ + --volume "openwebui-data:/app/backend/data" \ + --create-volumes \ + ghcr.io/open-webui/open-webui:main +``` + +After creating the container, you'll still need to assign a domain to it. + +### Alternative: Using the `mw stack deploy` command + +Alternatively, you can use the `mw stack deploy` command, which is compatible with Docker Compose. This approach allows you to define your container configuration in a YAML file and deploy it with a single command. + +First, create a `docker-compose.yml` file with the following content: + +```yaml +services: + openwebui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "8080:8080" + volumes: + - "openwebui-data:/app/backend/data" + environment: + PORT: "8080" + WEBUI_NAME: "mittwald AI Chat" +volumes: + openwebui-data: {} +``` + +Then, deploy the container using the `mw stack deploy` command: + +```shellsession +user@local $ mw stack deploy +``` + +This command will read the `docker-compose.yml` file from the current directory and deploy it to your default stack. + +## Connecting to mittwald AI Hosting + +If you have a [mittwald AI Hosting](/docs/v2/platform/aihosting/) API key, you can connect Open WebUI to use the hosted AI models. + +### Using Environment Variables (Recommended) + +The recommended way to connect Open WebUI to mittwald AI Hosting is by setting environment variables during container creation. Add the following environment variables: + +``` +OPENAI_API_BASE_URL=https://llm.aihosting.mittwald.de/v1 +OPENAI_API_KEY=your_api_key_here +``` + +When using the mStudio UI, add these variables in the environment variables section during container setup. For CLI deployments, include them in your `mw container run` command or `docker-compose.yml` file: + +```shellsession +user@local $ mw container run \ + --name openwebui \ + --description "Open WebUI - AI Chat Interface" \ + --publish 8080:8080 \ + --env "OPENAI_API_BASE_URL=https://llm.aihosting.mittwald.de/v1" \ + --env "OPENAI_API_KEY=your_api_key_here" \ + --volume "openwebui-data:/app/backend/data" \ + --create-volumes \ + ghcr.io/open-webui/open-webui:main +``` + +Or in your `docker-compose.yml`: + +```yaml +services: + openwebui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "8080:8080" + volumes: + - "openwebui-data:/app/backend/data" + environment: + PORT: "8080" + WEBUI_NAME: "mittwald AI Chat" + OPENAI_API_BASE_URL: "https://llm.aihosting.mittwald.de/v1" + OPENAI_API_KEY: "your_api_key_here" +volumes: + openwebui-data: {} +``` + +With this configuration, Open WebUI will automatically connect to mittwald AI Hosting on startup and detect all available models. + +### Using the Admin Panel + +Alternatively, you can configure the connection after Open WebUI is running: + +1. Open the Open WebUI admin panel by clicking on your profile icon +2. Navigate to **"Settings"** and choose **"Connections"** +3. In the **"OpenAI API"** section, add a new connection +4. Enter the base URL: `https://llm.aihosting.mittwald.de/v1` +5. Enter your API key from mittwald AI Hosting +6. Save the configuration + +Open WebUI will automatically connect to mittwald AI Hosting and detect all available models. + +:::note +For detailed information on using Open WebUI with mittwald AI Hosting, including model configuration, RAG setups, and speech-to-text functionality, see the [Open WebUI AI Hosting guide](/docs/v2/platform/aihosting/examples/openwebui). +::: + +## Operation + +To make your Open WebUI instance reachable from the public internet, it needs to be connected to a domain. After that, you can access Open WebUI via `https:///`. + +As part of the project backup, the data from your volumes is secured and can be restored if needed. + +## Further Resources + +- [Open WebUI GitHub Repository](https://github.com/open-webui/open-webui) +- [Open WebUI Documentation](https://docs.openwebui.com/) +- [mittwald AI Hosting Documentation](/docs/v2/platform/aihosting/) +- [Container Workloads Documentation](/docs/v2/platform/workloads/containers) diff --git a/docs/platform/aihosting/50-examples/10-openwebui.mdx b/docs/platform/aihosting/50-examples/10-openwebui.mdx index 056a3a49..3e6d7f38 100644 --- a/docs/platform/aihosting/50-examples/10-openwebui.mdx +++ b/docs/platform/aihosting/50-examples/10-openwebui.mdx @@ -1,44 +1,108 @@ --- sidebar_label: Open WebUI -description: Information on configuring Open WebUI -title: Open WebUI +description: Using Open WebUI with mittwald AI Hosting for advanced AI use cases +title: Open WebUI with mittwald AI Hosting --- -Open WebUI can be used as a ChatGPT-like interface within container hosting. It can be automatically installed and configured when an API key is created if your hosting product supports containers. Otherwise set up Open WebUI either in a local environment or in mittwald's container hosting following our [guide](../../../../category/guides/apps). +Open WebUI can be used as a ChatGPT-like interface with mittwald AI Hosting. It can be automatically installed and configured when an API key is created if your hosting product supports containers. Otherwise, set up Open WebUI in mittwald's container hosting following our [deployment guide](/docs/v2/guides/apps/openwebui). -If not connected automatically, you may set up the connection in the admin panel. Go to “Settings” and choose “Connections”. In the area for “OpenAI API” add another connection and insert the base URL +## Connecting to mittwald AI Hosting {#connecting} -``` -https://llm.aihosting.mittwald.de/v1 -``` +When using the managed deployment, your Open WebUI deployment will be automatically configured to use your mittwald AI hosting account. Otherwise, you can follow one of the approaches recommended here. -as well as your API key. Open WebUI will automatically detect all available models. +### Using Environment Variables (Recommended) {#env-variables} -For optimal results, it may be necessary to adjust the default parameters of Open WebUI for the model. You can modify these parameters in the “Models” section, after selecting the model, under “Advanced Params.” Apply the recommended parameters documented in the models section, such as `top_p`, `top_k`, and `temperature`. We also recommend hiding the embedding models in this section, which are automatically detected by Open WebUI, since they cannot be used in a chat. +The recommended method is to configure the connection during container deployment using environment variables. See the [deployment guide](/docs/v2/guides/apps/openwebui#connecting-to-mittwald-ai-hosting) for detailed instructions. -Open WebUI offers the ability to store knowledge in the form of documents, which can be accessed as needed. This is known as retrieval-augmented generation (RAG). In the left menu bar, under “Workspace” and then in the “Knowledge” tab, you can upload documents that can be accessed in a chat using a hashtag. +### Using the Admin Panel {#admin-panel} -To enable more efficient processing, you can use an embedding model. In the Admin Panel under the “Settings” tab, go to the “Documents” menu item. In the “Embedding” section, first select “OpenAI” in the dropdown menu as the embedding model engine. Then, insert the above-mentioned endpoint and your generated API key. Select one of our offered embedding models under “Embedding Model” and adjust the parameters “Top K” and “RAG Template” in the “Retrieval” section for optimal results. +If not connected automatically, you can set up the connection in the admin panel: -Whisper-Large-V3-Turbo can also be configured in Open WebUI for speech-to-text (STT) functionality. This model supports over 99 languages and is optimized for audio transcription via our hosted API. +1. Go to **"Settings"** and choose **"Connections"** +2. In the **"OpenAI API"** section, add another connection +3. Insert the base URL: `https://llm.aihosting.mittwald.de/v1` +4. Enter your API key -In the Admin Panel under “Settings” > “Audio”, configure the following: +Open WebUI will automatically detect all available models. -- **Engine**: Select “OpenAI” -- Enter your API endpoint and password again if necessary -- **STT Model**: Enter model name “whisper-large-v3-turbo” +## Optimizing Model Parameters {#model-parameters} -This are the settings you have to modify in the Admin Panel. Whisper will appear in the model list after connection, but it should be hidden from chat model selection since it's designed for audio transcription, not conversational AI. In “Workspace” > “Models”, select Whisper-Large-V3-Turbo and choose “Hide” to prevent it from appearing as a chat option. +For optimal results, it may be necessary to adjust the default parameters of Open WebUI for each model. -You can further specify how Open Web UI interacts with the model. These settings are available to you in the user settings (not Administrator panel) under "Audio": +1. Navigate to the **"Models"** section in Open WebUI +2. Select the model you want to configure +3. Under **"Advanced Params"**, apply the recommended parameters documented in the [models section](/docs/v2/platform/aihosting/models/), such as `top_p`, `top_k`, and `temperature` -- **Language**: Explicitly set the language code (e.g., “de” for German, which is the default if not specified) -- **Directly Send Speech**: Sends directly without you confirming. +:::note +We recommend hiding the embedding models in the model selection, as they are automatically detected by Open WebUI but cannot be used in a chat. +::: -In the admin panel, you may also specify the recommended settings for Whisper - as well as in the chat settings: +## Using Retrieval-Augmented Generation (RAG) {#rag} -- **Additional Parameters**: Set `temperature=1.0`, `top_p=1.0`. +Open WebUI offers the ability to store knowledge in the form of documents, which can be accessed as needed. This is known as retrieval-augmented generation (RAG). -For testing, click the microphone icon in a chat interface and speak in the configured language. The transcription will use our `/v1/audio/transcriptions` endpoint with support for MP3, OGG, WAV, and FLAC formats (maximum 25 MB file size). Always set the language parameter explicitly for best accuracy, especially for non-German audio inputs. +### Uploading Documents {#rag-documents} -You can now use whisper in any chat of your liking! Chat with your favourite LLM by dictating your question and sending it. +1. In the left menu bar, navigate to **"Workspace"** +2. Select the **"Knowledge"** tab and create a new knowledge base using the **"New Knowledge"** button +3. Upload documents that you want to make available +4. In your chats, you can access these documents by using the **"Attach knowledge"** option on the chat input field. + +### Configuring an Embedding Model {#rag-embedding} + +To enable more efficient document processing, you can use an embedding model: + +1. In the **"Admin Settings"**, go to the **"Documents"** menu item +2. In the **"Embedding"** section, select **"OpenAI"** in the dropdown menu as the embedding model engine +3. Enter the endpoint: `https://llm.aihosting.mittwald.de/v1` +4. Enter your generated API key +5. Select one of the available [embedding models](/docs/v2/platform/aihosting/models/) (such as Qwen3-Embedding-8B) under **"Embedding Model"** +6. In the **"Retrieval"** section, optionally adjust the parameters **"Top K"** and **"RAG Template"** for optimal results + +## Configuring Speech-to-Text {#speech-to-text} + +Whisper-Large-V3-Turbo can be configured in Open WebUI for speech-to-text (STT) functionality. This model supports over 99 languages and is optimized for audio transcription via our hosted API. + +### Admin Panel Configuration {#stt-setup} + +In the Admin Settings under **"Audio"**, configure the following: + +- **Speech-to-Text Engine**: Select "OpenAI" +- **API Base URL**: Enter `https://llm.aihosting.mittwald.de/v1` +- **API Key**: Enter your API key +- **STT Model**: Enter the model name `whisper-large-v3-turbo` + +### Hiding Whisper from Chat Models {#stt-hide} + +Whisper will appear in the model list after connection, but it should be hidden from chat model selection since it's designed for audio transcription, not conversational AI: + +1. Navigate to **"Admin settings"** > **"Models"** +2. Select **whisper-large-v3-turbo** +3. Choose **"Hide model"** to prevent it from appearing as a chat option + +### User Settings {#stt-user-settings} + +You can further specify how Open WebUI interacts with the Whisper model in the user settings (not Administrator panel) under **"Audio"**: + +- **Language**: Explicitly set the language code (e.g., "de" for German, "en" for English) +- **Instant Auto-Send After Voice Transcription**: Enable to send transcriptions directly without confirmation + +### Recommended Parameters {#stt-parameters} + +For optimal transcription quality, configure these parameters in the admin panel or chat settings: + +- **Additional Parameters**: Set `temperature=1.0`, `top_p=1.0` + +### Testing Speech-to-Text {#stt-testing} + +To test the speech-to-text functionality: + +1. Click the microphone icon in a chat interface +2. Speak in the configured language +3. The transcription will use our `/v1/audio/transcriptions` endpoint with support for MP3, OGG, WAV, and FLAC formats (maximum 25 MB file size) + +:::note +Always set the language parameter explicitly for best accuracy, especially for non-German audio inputs. +::: + +You can now use Whisper in any chat! Chat with your favorite LLM by dictating your question and sending it. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/apps/openwebui.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/apps/openwebui.md new file mode 100644 index 00000000..897c1797 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/apps/openwebui.md @@ -0,0 +1,186 @@ +--- +sidebar_label: Open WebUI +description: Lerne, wie du Open WebUI in einer Container-Umgebung einrichtest und betreibst +--- + +# Open WebUI betreiben + +## Einführung + +> Open WebUI ist eine erweiterbare, funktionsreiche und benutzerfreundliche selbst gehostete WebUI, die vollständig offline betrieben werden kann. Es unterstützt verschiedene LLM-Runner, einschließlich Ollama und OpenAI-kompatible APIs. +> – [Open WebUI GitHub](https://github.com/open-webui/open-webui) + +Open WebUI lässt sich als ChatGPT-ähnliches Interface im Container-Hosting von mittwald betreiben. Sofern dein Projekt in einem Container-fähigen Produkt angesiedelt ist, kann es beim Anlegen des API-Keys für [mittwald AI Hosting](/docs/v2/platform/aihosting/) automatisch mit installiert und konfiguriert werden. + +## Voraussetzungen + +- Zugriff auf ein mittwald mStudio-Projekt +- Ein Hosting-Produkt, das [Container-Workloads](/docs/v2/platform/workloads/containers) unterstützt +- (Optional) Ein [mittwald AI Hosting API-Key](/docs/v2/platform/aihosting/access-and-usage/access) zum Verbinden mit gehosteten KI-Modellen + +## Wie starte ich den Container? + +Wir verwenden das Image `ghcr.io/open-webui/open-webui:main` aus der [GitHub Container Registry](https://github.com/open-webui/open-webui/pkgs/container/open-webui) für den Container. + +### Über das mStudio UI + +Gehe in mStudio zu deinem Projekt und wähle **„Container erstellen"**. Ein geführter Dialog öffnet sich, um dir beim Container-Setup zu helfen. + +Gib zunächst eine Beschreibung ein – dies ist ein Freitextfeld zur Identifizierung des Containers. Gib zum Beispiel **„Open WebUI"** ein und klicke auf **„Weiter"**. + +Als Nächstes wirst du nach dem Image-Namen gefragt. Gib `ghcr.io/open-webui/open-webui:main` ein und bestätige mit **„Weiter"**. + +#### Entrypoint und Command + +- **Entrypoint:** Keine Änderungen erforderlich +- **Command:** Keine Änderungen erforderlich + +#### Volumes + +Für persistente Datenspeicherung konfiguriere folgendes Volume: + +- `/app/backend/data` - Dieses Volume speichert alle Open WebUI-Daten einschließlich Konversationen, Konfigurationen und hochgeladene Dokumente. + +:::note +Du kannst neue Volumes über das mStudio UI hinzufügen. Der obige Pfad sollte als Mount-Point gesetzt werden. +::: + +#### Umgebungsvariablen + +Open WebUI kann mit verschiedenen Umgebungsvariablen konfiguriert werden. Für den Basisbetrieb sind keine Umgebungsvariablen zwingend erforderlich, aber du kannst einige Einstellungen konfigurieren: + +``` +# Optional: Benutzerdefinierter Port (Standard ist 8080) +PORT=8080 + +# Optional: WebUI-Name +WEBUI_NAME=mittwald AI Chat + +# Optional: Registrierung für neue Benutzer deaktivieren +ENABLE_SIGNUP=false +``` + +Sobald du alle Umgebungsvariablen eingegeben hast, klicke auf **„Weiter"**. Im letzten Dialog wirst du nach dem **Port** gefragt – gib `8080` ein. Klicke auf **„Container erstellen"**, um den Container zu erstellen und zu starten. + +### Alternative: Verwendung des `mw container run`-Befehls + +Du kannst auch den Befehl `mw container run` verwenden, um direkt einen Open WebUI-Container über die Kommandozeile zu erstellen und zu starten. Dieser Ansatz ist ähnlich wie die Verwendung der Docker-CLI und ermöglicht es dir, alle Container-Parameter in einem einzigen Befehl anzugeben. + +```shellsession +user@local $ mw container run \ + --name openwebui \ + --description "Open WebUI - AI Chat Interface" \ + --publish 8080:8080 \ + --volume "openwebui-data:/app/backend/data" \ + --create-volumes \ + ghcr.io/open-webui/open-webui:main +``` + +Nach dem Erstellen des Containers musst du noch eine Domain zuweisen. + +### Alternative: Verwendung des `mw stack deploy`-Befehls + +Alternativ kannst du den Befehl `mw stack deploy` verwenden, der mit Docker Compose kompatibel ist. Dieser Ansatz ermöglicht es dir, deine Container-Konfiguration in einer YAML-Datei zu definieren und mit einem einzigen Befehl bereitzustellen. + +Erstelle zunächst eine `docker-compose.yml`-Datei mit folgendem Inhalt: + +```yaml +services: + openwebui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "8080:8080" + volumes: + - "openwebui-data:/app/backend/data" + environment: + PORT: "8080" + WEBUI_NAME: "mittwald AI Chat" +volumes: + openwebui-data: {} +``` + +Stelle dann den Container mit dem Befehl `mw stack deploy` bereit: + +```shellsession +user@local $ mw stack deploy +``` + +Dieser Befehl liest die `docker-compose.yml`-Datei aus dem aktuellen Verzeichnis und stellt sie in deinem Standard-Stack bereit. + +## Verbindung mit mittwald AI Hosting + +Wenn du einen [mittwald AI Hosting](/docs/v2/platform/aihosting/)-API-Key hast, kannst du Open WebUI mit den gehosteten KI-Modellen verbinden. + +### Verwendung von Umgebungsvariablen (Empfohlen) + +Der empfohlene Weg, Open WebUI mit mittwald AI Hosting zu verbinden, ist die Verwendung von Umgebungsvariablen während der Container-Erstellung. Füge folgende Umgebungsvariablen hinzu: + +``` +OPENAI_API_BASE_URL=https://llm.aihosting.mittwald.de/v1 +OPENAI_API_KEY=dein_api_key_hier +``` + +Wenn du das mStudio UI verwendest, füge diese Variablen im Bereich Umgebungsvariablen während des Container-Setups hinzu. Für CLI-Deployments füge sie in deinen `mw container run`-Befehl oder deine `docker-compose.yml`-Datei ein: + +```shellsession +user@local $ mw container run \ + --name openwebui \ + --description "Open WebUI - AI Chat Interface" \ + --publish 8080:8080 \ + --env "OPENAI_API_BASE_URL=https://llm.aihosting.mittwald.de/v1" \ + --env "OPENAI_API_KEY=dein_api_key_hier" \ + --volume "openwebui-data:/app/backend/data" \ + --create-volumes \ + ghcr.io/open-webui/open-webui:main +``` + +Oder in deiner `docker-compose.yml`: + +```yaml +services: + openwebui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "8080:8080" + volumes: + - "openwebui-data:/app/backend/data" + environment: + PORT: "8080" + WEBUI_NAME: "mittwald AI Chat" + OPENAI_API_BASE_URL: "https://llm.aihosting.mittwald.de/v1" + OPENAI_API_KEY: "dein_api_key_hier" +volumes: + openwebui-data: {} +``` + +Mit dieser Konfiguration wird Open WebUI beim Start automatisch mit mittwald AI Hosting verbunden und erkennt alle verfügbaren Modelle. + +### Verwendung des Admin Panels + +Alternativ kannst du die Verbindung konfigurieren, nachdem Open WebUI läuft: + +1. Öffne das Open WebUI Admin Panel, indem du auf dein Profilsymbol klickst +2. Navigiere zu **„Settings"** und wähle **„Connections"** +3. Im Bereich **„OpenAI API"** füge eine neue Verbindung hinzu +4. Gib die Basis-URL ein: `https://llm.aihosting.mittwald.de/v1` +5. Gib deinen API-Key von mittwald AI Hosting ein +6. Speichere die Konfiguration + +Open WebUI wird beim Start automatisch mit mittwald AI Hosting verbunden und erkennt alle verfügbaren Modelle. + +:::note +Für detaillierte Informationen zur Verwendung von Open WebUI mit mittwald AI Hosting, einschließlich Modellkonfiguration, RAG-Setups und Speech-to-Text-Funktionalität, siehe die [Open WebUI AI Hosting Anleitung](/docs/v2/platform/aihosting/examples/openwebui). +::: + +## Betrieb + +Um deine Open WebUI-Instanz vom öffentlichen Internet aus erreichbar zu machen, muss sie mit einer Domain verbunden werden. Danach kannst du auf Open WebUI über `https:///` zugreifen. + +Im Rahmen des Projekt-Backups werden die Daten aus deinen Volumes gesichert und können bei Bedarf wiederhergestellt werden. + +## Weitere Ressourcen + +- [Open WebUI GitHub Repository](https://github.com/open-webui/open-webui) +- [Open WebUI Dokumentation](https://docs.openwebui.com/) +- [mittwald AI Hosting Dokumentation](/docs/v2/platform/aihosting/) +- [Container Workloads Dokumentation](/docs/v2/platform/workloads/containers) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/platform/aihosting/50-examples/10-openwebui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/platform/aihosting/50-examples/10-openwebui.mdx index ececd70b..1bc41e84 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/platform/aihosting/50-examples/10-openwebui.mdx +++ b/i18n/de/docusaurus-plugin-content-docs/current/platform/aihosting/50-examples/10-openwebui.mdx @@ -1,44 +1,108 @@ --- sidebar_label: Open WebUI -description: Informationen zur Konfiguration von Open WebUI -title: Open WebUI +description: Open WebUI mit mittwald AI Hosting für erweiterte KI-Anwendungsfälle verwenden +title: Open WebUI mit mittwald AI Hosting --- -Open WebUI lässt sich als ChatGPT-ähnliches Interface im Container-Hosting betreiben. Sofern dein Projekt in einem Container-fähigem Produkt angesiedelt ist, kann es beim Anlegen des API-Keys automatisch mit installiert und konfiguriert werden. Andernfalls kannst du Open WebUI in einer lokalen Umgebung oder nach unserer [Anleitung](../../../../category/guides/apps) im Container-Hosting aufsetzen. +Open WebUI lässt sich als ChatGPT-ähnliches Interface mit mittwald AI Hosting betreiben. Sofern dein Projekt in einem Container-fähigen Produkt angesiedelt ist, kann es beim Anlegen des API-Keys automatisch mit installiert und konfiguriert werden. Andernfalls kannst du Open WebUI nach unserer [Deployment-Anleitung](/docs/v2/guides/apps/openwebui) im Container-Hosting aufsetzen. -Um Open WebUI mit mittwalds AI-Hosting zu verbinden, muss das Admin Panel aufgerufen werden. Dort findet sich unter dem Reiter „Settings“ der Menüpunkt „Connections“. Lege hier im Bereich „OpenAI API“ eine weitere Connection an und hinterlege den Endpunkt +## Verbindung mit mittwald AI Hosting {#connecting} -``` -https://llm.aihosting.mittwald.de/v1 -``` +Wenn du das Managed Deployment nutzt, wird dein Open WebUI automatisch mit deinem mittwald AI Hosting-Konto konfiguriert. Ansonsten kannst du eine der hier empfohlenen Methoden verwenden. -sowie deinen generierten API-Key. Open WebUI wird automatisch erkennen, welche Modelle zur Verfügung stehen und sie stehen dann in einem Chat zur Verfügung. +### Verwendung von Umgebungsvariablen (Empfohlen) {#env-variables} -Für optimale Ergebnisse kann es erforderlich sein, die Standard-Parameter von Open WebUI für das Modell anzupassen. Du kannst diese Parameter im Bereich „Models“ nach Auswahl des Modells im Abschnitt „Advanced Params“ anpassen. Setze hier die von uns im Abschnitt der Modelle dokumentierten, empfohlenen Parameter wie beispielsweise `top_p`, `top_k` und `Temperature`. Wir empfehlen ebenfalls in diesem Abschnitt die Embedding-Modelle, welche automatisch von Open WebUI erkannt werden, auszublenden, da diese nicht in einem Chat verwendet werden können. +Die empfohlene Methode ist die Konfiguration der Verbindung während des Container-Deployments mittels Umgebungsvariablen. Siehe die [Deployment-Anleitung](/docs/v2/guides/apps/openwebui#connecting-to-mittwald-ai-hosting) für detaillierte Anweisungen. -Open WebUI bietet die Funktion an, Wissen in Form von Dokumenten zu hinterlegen, auf die zugegriffen werden kann. Hierbei handelt es sich um sog. Retrieval-augmented generation (RAG). In der linken Menüleiste lassen sich unter „Workspace“ und dann im Reiter „Knowledge“ Dokumente hinterlegen, auf die in einem Chat mit einem Hashtag zugegriffen werden kann. +### Verwendung des Admin Panels {#admin-panel} -Hierfür kann für performantere Verarbeitung ein Embedding-Modell genutzt werden. Erneut im Admin Panel unter dem Reiter „Settings" findet sich der Menüpunkt „Documents". Wähle dort im Abschnitt „Embedding" zunächst im Dropdown-Menü „OpenAI" für die Embedding Model Engine aus. Setze dann den oben genannten Endpunkt und deinen generierten API-Key ein. Setze dann unter „Embedding Model" ein von uns angebotenes Embedding-Modell ein und passe für optimale Ergebnisse im Bereich „Retrieval" die Parameter „Top K" und „RAG Template" an. +Falls nicht automatisch verbunden, kannst du die Verbindung im Admin Panel einrichten: -Whisper-Large-V3-Turbo kann ebenfalls in Open WebUI für Speech-to-Text (STT) Funktionalität konfiguriert werden. Dieses Modell unterstützt über 99 Sprachen und ist für Audio-Transkription über unsere gehostete API optimiert. +1. Gehe zu **„Settings"** und wähle **„Connections"** +2. Im Bereich **„OpenAI API"** füge eine weitere Verbindung hinzu +3. Gib die Basis-URL ein: `https://llm.aihosting.mittwald.de/v1` +4. Gib deinen API-Key ein -Im Admin Panel unter „Settings" > „Audio" sind folgende Einstellungen vorzunehmen: +Open WebUI wird automatisch alle verfügbaren Modelle erkennen. -- **Engine**: Wähle „OpenAI" -- Falls erforderlich, gib deinen API-Endpunkt und dein Passwort erneut ein -- **STT Model**: Gib den Modellnamen „whisper-large-v3-turbo" ein +## Optimierung der Modell-Parameter {#model-parameters} -Dies sind die Einstellungen, die im Admin Panel vorgenommen werden müssen. Whisper wird nach der Verbindung in der Modellliste erscheinen, sollte aber aus der Chat-Modell-Auswahl ausgeblendet werden, da es für Audio-Transkription entwickelt wurde, nicht für konversationelle KI. Wähle unter „Workspace" > „Models" Whisper-Large-V3-Turbo aus und wähle „Hide", um zu verhindern, dass es als Chat-Option erscheint. +Für optimale Ergebnisse kann es erforderlich sein, die Standard-Parameter von Open WebUI für jedes Modell anzupassen. -Du kannst weiter spezifizieren, wie Open WebUI mit dem Modell interagiert. Diese Einstellungen stehen dir in den Benutzereinstellungen (nicht im Administrator-Panel) unter „Audio" zur Verfügung: +1. Navigiere zum Bereich **„Models"** in Open WebUI +2. Wähle das Modell aus, das du konfigurieren möchtest +3. Unter **„Advanced Params"** setze die empfohlenen Parameter, die im [Modell-Bereich](/docs/v2/platform/aihosting/models/) dokumentiert sind, wie z.B. `top_p`, `top_k` und `temperature` -- **Language**: Setze den Sprachcode explizit (z.B. „de" für Deutsch, was die Standardeinstellung ist, falls nicht angegeben) -- **Directly Send Speech**: Sendet direkt ohne dass du bestätigen musst. +:::note +Wir empfehlen, die Embedding-Modelle in der Modellauswahl auszublenden, da sie automatisch von Open WebUI erkannt werden, aber nicht in einem Chat verwendet werden können. +::: -Im Admin Panel kannst du auch die empfohlenen Einstellungen für Whisper festlegen - sowie in den Chat-Einstellungen: +## Verwendung von Retrieval-Augmented Generation (RAG) {#rag} -- **Additional Parameters**: Setze `temperature=1.0`, `top_p=1.0`. +Open WebUI bietet die Funktion an, Wissen in Form von Dokumenten zu hinterlegen, auf die zugegriffen werden kann. Hierbei handelt es sich um sog. Retrieval-Augmented Generation (RAG). -Zum Testen klicke auf das Mikrofon-Symbol in einer Chat-Oberfläche und sprich in der konfigurierten Sprache. Die Transkription verwendet unseren `/v1/audio/transcriptions`-Endpunkt mit Unterstützung für MP3-, OGG-, WAV- und FLAC-Formate (maximale Dateigröße 25 MB). Setze den Sprachparameter immer explizit für beste Genauigkeit, insbesondere für nicht-deutsche Audioeingaben. +### Hochladen von Dokumenten {#rag-documents} -Du kannst Whisper nun in jedem Chat deiner Wahl verwenden! Chatte mit deinem Lieblings-LLM, indem du deine Frage diktierst und absendest. +1. Navigiere in der linken Menüleiste zu **„Workspace"** +2. Wähle den Reiter **„Knowledge"** und erstelle eine neue Wissensdatenbank mit dem **„New Knowledge"**-Button +3. Lade Dokumente hoch, die du verfügbar machen möchtest +4. In deinen Chats kannst du über die Option **„Attach knowledge"** im Chat-Eingabefeld auf diese Dokumente zugreifen + +### Konfiguration eines Embedding-Modells {#rag-embedding} + +Für performantere Verarbeitung kann ein Embedding-Modell genutzt werden: + +1. In den **„Admin Settings"** navigiere zum Menüpunkt **„Documents"** +2. Im Bereich **„Embedding"** wähle im Dropdown-Menü **„OpenAI"** als Embedding Model Engine aus +3. Gib den Endpunkt ein: `https://llm.aihosting.mittwald.de/v1` +4. Gib deinen generierten API-Key ein +5. Wähle unter **„Embedding Model"** ein von uns angebotenes [Embedding-Modell](/docs/v2/platform/aihosting/models/) aus (wie z.B. Qwen3-Embedding-8B) +6. Im Bereich **„Retrieval"** kannst du optional die Parameter **„Top K"** und **„RAG Template"** für optimale Ergebnisse anpassen + +## Konfiguration von Speech-to-Text {#speech-to-text} + +Whisper-Large-V3-Turbo kann in Open WebUI für Speech-to-Text (STT) Funktionalität konfiguriert werden. Dieses Modell unterstützt über 99 Sprachen und ist für Audio-Transkription über unsere gehostete API optimiert. + +### Konfiguration im Admin Panel {#stt-setup} + +In den Admin Settings unter **„Audio"** konfiguriere folgende Einstellungen: + +- **Speech-to-Text Engine**: Wähle „OpenAI" +- **API Base URL**: Gib `https://llm.aihosting.mittwald.de/v1` ein +- **API Key**: Gib deinen API-Key ein +- **STT Model**: Gib den Modellnamen `whisper-large-v3-turbo` ein + +### Whisper aus Chat-Modellen ausblenden {#stt-hide} + +Whisper wird nach der Verbindung in der Modellliste erscheinen, sollte aber aus der Chat-Modell-Auswahl ausgeblendet werden, da es für Audio-Transkription entwickelt wurde, nicht für konversationelle KI: + +1. Navigiere zu **„Admin settings"** > **„Models"** +2. Wähle **whisper-large-v3-turbo** aus +3. Wähle **„Hide model"**, um zu verhindern, dass es als Chat-Option erscheint + +### Benutzereinstellungen {#stt-user-settings} + +Du kannst weiter spezifizieren, wie Open WebUI mit dem Whisper-Modell interagiert in den Benutzereinstellungen (nicht im Administrator-Panel) unter **„Audio"**: + +- **Language**: Setze den Sprachcode explizit (z.B. „de" für Deutsch, „en" für Englisch) +- **Instant Auto-Send After Voice Transcription**: Aktiviere, um Transkriptionen direkt ohne Bestätigung zu senden + +### Empfohlene Parameter {#stt-parameters} + +Für optimale Transkriptionsqualität konfiguriere diese Parameter im Admin Panel oder in den Chat-Einstellungen: + +- **Additional Parameters**: Setze `temperature=1.0`, `top_p=1.0` + +### Testen von Speech-to-Text {#stt-testing} + +Um die Speech-to-Text-Funktionalität zu testen: + +1. Klicke auf das Mikrofon-Symbol in einer Chat-Oberfläche +2. Sprich in der konfigurierten Sprache +3. Die Transkription verwendet unseren `/v1/audio/transcriptions`-Endpunkt mit Unterstützung für MP3-, OGG-, WAV- und FLAC-Formate (maximale Dateigröße 25 MB) + +:::note +Setze den Sprachparameter immer explizit für beste Genauigkeit, insbesondere für nicht-deutsche Audioeingaben. +::: + +Du kannst Whisper nun in jedem Chat verwenden! Chatte mit deinem Lieblings-LLM, indem du deine Frage diktierst und absendest. diff --git a/package-lock.json b/package-lock.json index 454908a6..0ef997c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -260,6 +260,7 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.41.0.tgz", "integrity": "sha512-G9I2atg1ShtFp0t7zwleP6aPS4DcZvsV4uoQOripp16aR6VJzbEnKFPLW4OFXzX7avgZSpYeBAS+Zx4FOgmpPw==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/client-common": "5.41.0", "@algolia/requester-browser-xhr": "5.41.0", @@ -435,6 +436,7 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -2202,6 +2204,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2224,6 +2227,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -2333,6 +2337,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2754,6 +2759,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3454,6 +3460,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.2.tgz", "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/babel": "3.9.2", "@docusaurus/bundler": "3.9.2", @@ -3659,6 +3666,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -4985,6 +4993,7 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", "license": "MIT", + "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -7319,6 +7328,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -7967,7 +7977,8 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/jsonpath": { "version": "0.2.4", @@ -8069,6 +8080,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz", "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -8462,6 +8474,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -8544,6 +8557,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -8589,6 +8603,7 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.41.0.tgz", "integrity": "sha512-9E4b3rJmYbBkn7e3aAPt1as+VVnRhsR4qwRRgOzpeyz4PAOuwKh0HI4AN6mTrqK0S0M9fCCSTOUnuJ8gPY/tvA==", "license": "MIT", + "peer": true, "dependencies": { "@algolia/abtesting": "1.7.0", "@algolia/client-abtesting": "5.41.0", @@ -9303,6 +9318,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -9631,6 +9647,7 @@ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@chevrotain/cst-dts-gen": "11.0.3", "@chevrotain/gast": "11.0.3", @@ -10543,6 +10560,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -10868,6 +10886,7 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.32.0.tgz", "integrity": "sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10" } @@ -11277,6 +11296,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -12808,6 +12828,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -18156,6 +18177,7 @@ "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.15.0.tgz", "integrity": "sha512-UczzB+0nnwGotYSgllfARAqWCJ5e/skuV2K/l+Zyck/H6pJIhLXuBnz+6vn2i211o7DtbE78HQtsYEKICHGI+g==", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/mobx" @@ -18407,6 +18429,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19218,6 +19241,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -20121,6 +20145,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -20984,6 +21009,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -21097,6 +21123,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -21142,7 +21169,8 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/react-json-view-lite": { "version": "2.5.0", @@ -21162,6 +21190,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/react": "*" }, @@ -21222,6 +21251,7 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", + "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -21245,6 +21275,7 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -21423,7 +21454,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -23345,6 +23377,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -23653,7 +23686,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tsx": { "version": "4.21.0", @@ -23729,6 +23763,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -24115,6 +24150,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -24445,6 +24481,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", @@ -24716,6 +24753,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -25186,6 +25224,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" }