Added a home page prompt for missing API keys of enterprise providers (#1056)

Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
Dominic NeuburgandThorsten Sommer authored and GitHub committed 2026-10-19 09:12:12 +02:00
1 parent 1f8d72aa45
commit 7d35536c87
29 files changed
+920 -31

No files matched your search

@@ -172,6 +172,12 @@ CONFIG["LLM_PROVIDERS"] = {}
-- -- if this configuration is later withdrawn.
-- -- ["AllowUserProvidedAPIKey"] = true,
--
-- -- Optional: ask the user for their API key in a panel on the home page, as long as this
-- -- provider has none. All providers of this plugin which set this option share one panel
-- -- and receive the same key, so the user enters it once. Implies "AllowUserProvidedAPIKey".
-- -- Explain how to obtain the key in CONFIG["USER_API_KEY_PROMPT"], see below.
-- -- ["PromptForUserAPIKey"] = true,
--
-- ["Model"] = {
-- ["Id"] = "<the model ID>",
-- ["DisplayName"] = "<user-friendly name of the model>",
@@ -203,6 +209,10 @@ CONFIG["TRANSCRIPTION_PROVIDERS"] = {}
-- -- above: when both are set, the embedded key is ignored and a warning is logged.
-- -- ["AllowUserProvidedAPIKey"] = true,
--
-- -- Optional: ask the user for their API key on the home page, as long as this provider
-- -- has none (see LLM_PROVIDERS example for details). Implies "AllowUserProvidedAPIKey".
-- -- ["PromptForUserAPIKey"] = true,
--
-- -- Optional: Hugging Face inference provider. Only relevant for UsedLLMProvider = HUGGINGFACE.
-- -- Hugging Face transcribes audio through some of its inference providers only, so the choice
-- -- is narrower than for chatting. Allowed values are: DEEPINFRA and TOGETHER_AI. The automatic
@@ -249,6 +259,10 @@ CONFIG["EMBEDDING_PROVIDERS"] = {}
-- -- above: when both are set, the embedded key is ignored and a warning is logged.
-- -- ["AllowUserProvidedAPIKey"] = true,
--
-- -- Optional: ask the user for their API key on the home page, as long as this provider
-- -- has none (see LLM_PROVIDERS example for details). Implies "AllowUserProvidedAPIKey".
-- -- ["PromptForUserAPIKey"] = true,
--
-- -- Optional: Hugging Face inference provider. Only relevant for UsedLLMProvider = HUGGINGFACE.
-- -- Hugging Face serves embeddings through some of its inference providers only, so the choice
-- -- is narrower than for chatting. Allowed values are: DEEPINFRA and TOGETHER_AI. The automatic
@@ -1369,6 +1383,23 @@ CONFIG["INTRODUCTIONS"] = {}
-- ]===]
-- }
-- What AI Studio tells users in the panel on the home page which asks for their API key. It asks
-- as long as a provider of this plugin which sets "PromptForUserAPIKey" has no API key. AI Studio
-- checks the key the user enters with the first of these providers which can list its models,
-- and then stores it for all of them. A key the provider refuses is not stored. When no provider
-- can check the key, or the provider is out of reach, AI Studio stores the key with a warning.
-- Markdown is required, Title is optional. Without this table, AI Studio shows a generic request.
-- CONFIG["USER_API_KEY_PROMPT"] = {
-- ["Title"] = "Please add your API key",
-- ["Markdown"] = [===[
-- To use the AI models of your organization, you need a personal API key:
--
-- 1. Open [Open WebUI](https://example.org) and sign in.
-- 2. Click your profile picture, then "Settings" and "Account".
-- 3. Create an API key, copy it, and paste it below.
-- ]===]
-- }
-- Mandatory infos that users must explicitly accept before using AI Studio:
-- AI Studio asks users again when Version, Title, or Markdown change.
-- Changing Version additionally allows the UI to communicate that a new version is available.
@@ -5649,6 +5649,30 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::TOOLSELECTIONFIELD::T4209882371"] = "1 We
-- {0} tools selected
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::TOOLSELECTIONFIELD::T807707919"] = "{0} Werkzeuge ausgewählt"
-- Your organization has set up AI providers for you. To use them, AI Studio needs your personal API key. Please enter it below.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T1248803223"] = "Ihre Organisation hat KI-Anbieter für Sie eingerichtet. Damit Sie diese nutzen können, benötigt AI Studio Ihren persönlichen API-Schlüssel. Bitte geben Sie ihn unten ein."
-- AI Studio checked your API key and stored it. You can now use the AI providers of your organization.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2043185673"] = "AI Studio hat Ihren API-Schlüssel geprüft und gespeichert. Sie können jetzt die KI-Anbieter Ihrer Organisation nutzen."
-- AI Studio stored your API key but could not check it. If the AI providers of your organization do not work, please correct the key in the settings.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2353931931"] = "AI Studio hat Ihren API-Schlüssel gespeichert, konnte ihn aber nicht prüfen. Falls die KI-Anbieter Ihrer Organisation nicht funktionieren, korrigieren Sie den Schlüssel bitte in den Einstellungen."
-- Your API key is missing
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2932314363"] = "Ihr API-Schlüssel fehlt"
-- API key
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T3924805356"] = "API-Schlüssel"
-- Check and save API key
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T4109992116"] = "API-Schlüssel prüfen und speichern"
-- The provider did not accept this API key. Please check the key and try again.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T4278329668"] = "Der Anbieter hat diesen API-Schlüssel nicht akzeptiert. Bitte prüfen Sie den Schlüssel und versuchen Sie es erneut."
-- AI Studio could not store the API key for these providers: {0}
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T614782928"] = "AI Studio konnte den API-Schlüssel für folgende Anbieter nicht speichern: {0}"
-- You'll interact with the AI systems using your voice. To achieve this, we want to integrate voice input (speech-to-text) and output (text-to-speech). However, later on, it should also have a natural conversation flow, i.e., seamless conversation.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::VISION::T1015366320"] = "Sie werden mit den KI-Systemen über Ihre Stimme interagieren. Dafür möchten wir Spracheingabe (Sprache-zu-Text) und Sprachausgabe (Text-zu-Sprache) integrieren. Später soll außerdem ein natürlicher Gesprächsfluss möglich sein, also eine nahtlose Unterhaltung."
@@ -5649,6 +5649,30 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::TOOLSELECTIONFIELD::T4209882371"] = "1 to
-- {0} tools selected
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::TOOLSELECTIONFIELD::T807707919"] = "{0} tools selected"
-- Your organization has set up AI providers for you. To use them, AI Studio needs your personal API key. Please enter it below.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T1248803223"] = "Your organization has set up AI providers for you. To use them, AI Studio needs your personal API key. Please enter it below."
-- AI Studio checked your API key and stored it. You can now use the AI providers of your organization.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2043185673"] = "AI Studio checked your API key and stored it. You can now use the AI providers of your organization."
-- AI Studio stored your API key but could not check it. If the AI providers of your organization do not work, please correct the key in the settings.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2353931931"] = "AI Studio stored your API key but could not check it. If the AI providers of your organization do not work, please correct the key in the settings."
-- Your API key is missing
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T2932314363"] = "Your API key is missing"
-- API key
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T3924805356"] = "API key"
-- Check and save API key
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T4109992116"] = "Check and save API key"
-- The provider did not accept this API key. Please check the key and try again.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T4278329668"] = "The provider did not accept this API key. Please check the key and try again."
-- AI Studio could not store the API key for these providers: {0}
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::USERAPIKEYPROMPT::T614782928"] = "AI Studio could not store the API key for these providers: {0}"
-- You'll interact with the AI systems using your voice. To achieve this, we want to integrate voice input (speech-to-text) and output (text-to-speech). However, later on, it should also have a natural conversation flow, i.e., seamless conversation.
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::VISION::T1015366320"] = "You'll interact with the AI systems using your voice. To achieve this, we want to integrate voice input (speech-to-text) and output (text-to-speech). However, later on, it should also have a natural conversation flow, i.e., seamless conversation."