Skip to content

Commit 3b4527c

Browse files
Add custom provider editor to API modes
Split provider management from API mode saving so users can add and edit custom OpenAI-compatible providers in a dedicated editor. Require a full chat-completions endpoint URL for provider setup and derive the paired completions endpoint with shared popup utilities backed by unit tests. Keep API mode provider binding explicit at save time and preserve provider-secret synchronization in General settings for backward compatibility. Add provider-related locale keys across supported locales.
1 parent fe3461f commit 3b4527c

File tree

17 files changed

+578
-167
lines changed

17 files changed

+578
-167
lines changed

src/_locales/de/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Benutzerdefiniertes Modell",
81+
"Custom Provider": "Benutzerdefinierter Anbieter",
8182
"Balanced": "Ausgeglichen",
8283
"Creative": "Kreativ",
8384
"Precise": "Präzise",
@@ -114,6 +115,7 @@
114115
"Modules": "Module",
115116
"API Params": "API-Parameter",
116117
"API Url": "API-URL",
118+
"Provider": "Anbieter",
117119
"Others": "Andere",
118120
"API Modes": "API-Modi",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Deaktivieren Sie die Verlaufsfunktion im Webmodus für besseren Datenschutz. Beachten Sie jedoch, dass die Gespräche nach einer gewissen Zeit nicht mehr verfügbar sind",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "Benutzerdefinierte Claude-API-URL",
137139
"Cancel": "Abbrechen",
138140
"Name is required": "Name ist erforderlich",
141+
"Please enter a full Chat Completions URL": "Bitte geben Sie eine vollständige Chat Completions URL ein",
139142
"Prompt template should include {{selection}}": "Die Vorlage sollte {{selection}} enthalten",
140143
"Save": "Speichern",
141144
"Name": "Name",

src/_locales/en/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Custom Model",
81+
"Custom Provider": "Custom Provider",
8182
"Balanced": "Balanced",
8283
"Creative": "Creative",
8384
"Precise": "Precise",
@@ -114,6 +115,7 @@
114115
"Modules": "Modules",
115116
"API Params": "API Params",
116117
"API Url": "API Url",
118+
"Provider": "Provider",
117119
"Others": "Others",
118120
"API Modes": "API Modes",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "Custom Claude API Url",
137139
"Cancel": "Cancel",
138140
"Name is required": "Name is required",
141+
"Please enter a full Chat Completions URL": "Please enter a full Chat Completions URL",
139142
"Prompt template should include {{selection}}": "Prompt template should include {{selection}}",
140143
"Save": "Save",
141144
"Name": "Name",

src/_locales/es/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Modelo personalizado",
81+
"Custom Provider": "Proveedor personalizado",
8182
"Balanced": "Equilibrado",
8283
"Creative": "Creativo",
8384
"Precise": "Preciso",
@@ -114,6 +115,7 @@
114115
"Modules": "Módulos",
115116
"API Params": "Parámetros de la API",
116117
"API Url": "URL de la API",
118+
"Provider": "Proveedor",
117119
"Others": "Otros",
118120
"API Modes": "Modos de la API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Desactivar el historial del modo web para una mejor protección de la privacidad, pero esto resultará en conversaciones no disponibles después de un período de tiempo.",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "URL personalizada de la API de Claude",
137139
"Cancel": "Cancelar",
138140
"Name is required": "Se requiere un nombre",
141+
"Please enter a full Chat Completions URL": "Introduce una URL completa de Chat Completions",
139142
"Prompt template should include {{selection}}": "La plantilla de sugerencias debe incluir {{selection}}",
140143
"Save": "Guardar",
141144
"Name": "Nombre",

src/_locales/fr/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Modèle personnalisé",
81+
"Custom Provider": "Fournisseur personnalisé",
8182
"Balanced": "Équilibré",
8283
"Creative": "Créatif",
8384
"Precise": "Précis",
@@ -114,6 +115,7 @@
114115
"Modules": "Modules",
115116
"API Params": "Paramètres de l'API",
116117
"API Url": "URL de l'API",
118+
"Provider": "Fournisseur",
117119
"Others": "Autres",
118120
"API Modes": "Modes de l'API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Désactivez l'historique du mode web pour une meilleure protection de la vie privée, mais cela entraînera des conversations non disponibles après un certain temps",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "URL API Claude personnalisée",
137139
"Cancel": "Annuler",
138140
"Name is required": "Le nom est requis",
141+
"Please enter a full Chat Completions URL": "Veuillez saisir une URL complète de Chat Completions",
139142
"Prompt template should include {{selection}}": "Le modèle de suggestion doit inclure {{selection}}",
140143
"Save": "Enregistrer",
141144
"Name": "Nom",

src/_locales/in/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Model Kustom",
81+
"Custom Provider": "Penyedia Kustom",
8182
"Balanced": "Seimbang",
8283
"Creative": "Kreatif",
8384
"Precise": "Tepat",
@@ -114,6 +115,7 @@
114115
"Modules": "Modul",
115116
"API Params": "Parameter API",
116117
"API Url": "URL API",
118+
"Provider": "Penyedia",
117119
"Others": "Lainnya",
118120
"API Modes": "Mode API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Nonaktifkan riwayat mode web untuk perlindungan privasi yang lebih baik, tetapi ini akan menyebabkan percakapan tidak tersedia setelah jangka waktu tertentu",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "URL API Claude Kustom",
137139
"Cancel": "Batal",
138140
"Name is required": "Nama diperlukan",
141+
"Please enter a full Chat Completions URL": "Masukkan URL Chat Completions lengkap",
139142
"Prompt template should include {{selection}}": "Template prompt harus mencakup {{selection}}",
140143
"Save": "Simpan",
141144
"Name": "Nama",

src/_locales/it/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Modello personalizzato",
81+
"Custom Provider": "Provider personalizzato",
8182
"Balanced": "Bilanciato",
8283
"Creative": "Creativo",
8384
"Precise": "Preciso",
@@ -114,6 +115,7 @@
114115
"Modules": "Moduli",
115116
"API Params": "Parametri API",
116117
"API Url": "URL API",
118+
"Provider": "Provider",
117119
"Others": "Altri",
118120
"API Modes": "Modalità API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Disabilita la cronologia della modalità web per una migliore protezione della privacy, ma ciò comporterà conversazioni non disponibili dopo un certo periodo di tempo",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "URL API Claude personalizzato",
137139
"Cancel": "Annulla",
138140
"Name is required": "Il nome è obbligatorio",
141+
"Please enter a full Chat Completions URL": "Inserisci un URL completo di Chat Completions",
139142
"Prompt template should include {{selection}}": "Il modello di prompt dovrebbe includere {{selection}}",
140143
"Save": "Salva",
141144
"Name": "Nome",

src/_locales/ja/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "カスタムモデル",
81+
"Custom Provider": "カスタムプロバイダー",
8182
"Balanced": "バランスの取れた",
8283
"Creative": "創造的な",
8384
"Precise": "正確な",
@@ -114,6 +115,7 @@
114115
"Modules": "モジュール",
115116
"API Params": "APIパラメータ",
116117
"API Url": "API URL",
118+
"Provider": "プロバイダー",
117119
"Others": "その他",
118120
"API Modes": "APIモード",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "プライバシー保護の向上のためにWebモードの履歴を無効にしますが、一定期間後に会話が利用できなくなります",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "カスタムClaude APIのURL",
137139
"Cancel": "キャンセル",
138140
"Name is required": "名前は必須です",
141+
"Please enter a full Chat Completions URL": "完全な Chat Completions URL を入力してください",
139142
"Prompt template should include {{selection}}": "プロンプトテンプレートには {{selection}} を含める必要があります",
140143
"Save": "保存",
141144
"Name": "名前",

src/_locales/ko/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "사용자 정의 모델",
81+
"Custom Provider": "사용자 정의 공급자",
8182
"Balanced": "균형 잡힌",
8283
"Creative": "창의적인",
8384
"Precise": "정확한",
@@ -114,6 +115,7 @@
114115
"Modules": "모듈",
115116
"API Params": "API 매개변수",
116117
"API Url": "API 주소",
118+
"Provider": "공급자",
117119
"Others": "기타",
118120
"API Modes": "API 모드",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "개인 정보 보호를 위해 웹 모드 기록을 비활성화하지만 일정 시간 이후에 대화를 사용할 수 없게 됩니다.",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "사용자 정의 Claude API URL",
137139
"Cancel": "취소",
138140
"Name is required": "이름은 필수입니다",
141+
"Please enter a full Chat Completions URL": "전체 Chat Completions URL을 입력하세요",
139142
"Prompt template should include {{selection}}": "프롬프트 템플릿에는 {{selection}} 이 포함되어야 합니다",
140143
"Save": "저장",
141144
"Name": "이름",

src/_locales/pt/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32k)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Modelo Personalizado",
81+
"Custom Provider": "Provedor personalizado",
8182
"Balanced": "Equilibrado",
8283
"Creative": "Criativo",
8384
"Precise": "Preciso",
@@ -114,6 +115,7 @@
114115
"Modules": "Módulos",
115116
"API Params": "Parâmetros da API",
116117
"API Url": "URL da API",
118+
"Provider": "Provedor",
117119
"Others": "Outros",
118120
"API Modes": "Modos da API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Desative o histórico do modo web para uma melhor proteção de privacidade, mas isso resultará em conversas indisponíveis após um certo tempo.",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "URL da API Personalizada do Claude",
137139
"Cancel": "Cancelar",
138140
"Name is required": "Nome é obrigatório",
141+
"Please enter a full Chat Completions URL": "Insira uma URL completa de Chat Completions",
139142
"Prompt template should include {{selection}}": "O modelo de prompt deve incluir {{selection}}",
140143
"Save": "Salvar",
141144
"Name": "Nome",

src/_locales/ru/main.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
"ChatGPT (GPT-4-32k)": "ChatGPT (GPT-4-32к)",
7979
"GPT-3.5": "GPT-3.5",
8080
"Custom Model": "Пользовательская модель",
81+
"Custom Provider": "Пользовательский провайдер",
8182
"Balanced": "Сбалансированный",
8283
"Creative": "Креативный",
8384
"Precise": "Точный",
@@ -114,6 +115,7 @@
114115
"Modules": "Модули",
115116
"API Params": "Параметры API",
116117
"API Url": "URL API",
118+
"Provider": "Провайдер",
117119
"Others": "Другие",
118120
"API Modes": "Режимы API",
119121
"Disable web mode history for better privacy protection, but it will result in unavailable conversations after a period of time": "Отключить историю веб-режима для лучшей защиты конфиденциальности, но это приведет к недоступности разговоров после определенного времени",
@@ -136,6 +138,7 @@
136138
"Custom Claude API Url": "Пользовательский URL API Claude",
137139
"Cancel": "Отмена",
138140
"Name is required": "Имя обязательно",
141+
"Please enter a full Chat Completions URL": "Введите полный URL Chat Completions",
139142
"Prompt template should include {{selection}}": "Шаблон запроса должен включать {{selection}}",
140143
"Save": "Сохранить",
141144
"Name": "Имя",

0 commit comments

Comments
 (0)