Browse Source

chore: format

Timothy Jaeryang Baek 3 weeks ago
parent
commit
5e35aab292
57 changed files with 139 additions and 28 deletions
  1. 3 6
      backend/open_webui/retrieval/loaders/main.py
  2. 6 3
      backend/open_webui/routers/openai.py
  3. 1 3
      backend/open_webui/utils/payload.py
  4. 22 13
      backend/open_webui/utils/response.py
  5. 3 3
      src/lib/components/layout/Sidebar/ChatItem.svelte
  6. 2 0
      src/lib/i18n/locales/ar-BH/translation.json
  7. 2 0
      src/lib/i18n/locales/ar/translation.json
  8. 2 0
      src/lib/i18n/locales/bg-BG/translation.json
  9. 2 0
      src/lib/i18n/locales/bn-BD/translation.json
  10. 2 0
      src/lib/i18n/locales/bo-TB/translation.json
  11. 2 0
      src/lib/i18n/locales/ca-ES/translation.json
  12. 2 0
      src/lib/i18n/locales/ceb-PH/translation.json
  13. 2 0
      src/lib/i18n/locales/cs-CZ/translation.json
  14. 2 0
      src/lib/i18n/locales/da-DK/translation.json
  15. 2 0
      src/lib/i18n/locales/de-DE/translation.json
  16. 2 0
      src/lib/i18n/locales/dg-DG/translation.json
  17. 2 0
      src/lib/i18n/locales/el-GR/translation.json
  18. 2 0
      src/lib/i18n/locales/en-GB/translation.json
  19. 2 0
      src/lib/i18n/locales/en-US/translation.json
  20. 2 0
      src/lib/i18n/locales/es-ES/translation.json
  21. 2 0
      src/lib/i18n/locales/et-EE/translation.json
  22. 2 0
      src/lib/i18n/locales/eu-ES/translation.json
  23. 2 0
      src/lib/i18n/locales/fa-IR/translation.json
  24. 2 0
      src/lib/i18n/locales/fi-FI/translation.json
  25. 2 0
      src/lib/i18n/locales/fr-CA/translation.json
  26. 2 0
      src/lib/i18n/locales/fr-FR/translation.json
  27. 2 0
      src/lib/i18n/locales/he-IL/translation.json
  28. 2 0
      src/lib/i18n/locales/hi-IN/translation.json
  29. 2 0
      src/lib/i18n/locales/hr-HR/translation.json
  30. 2 0
      src/lib/i18n/locales/hu-HU/translation.json
  31. 2 0
      src/lib/i18n/locales/id-ID/translation.json
  32. 2 0
      src/lib/i18n/locales/ie-GA/translation.json
  33. 2 0
      src/lib/i18n/locales/it-IT/translation.json
  34. 2 0
      src/lib/i18n/locales/ja-JP/translation.json
  35. 2 0
      src/lib/i18n/locales/ka-GE/translation.json
  36. 2 0
      src/lib/i18n/locales/ko-KR/translation.json
  37. 2 0
      src/lib/i18n/locales/lt-LT/translation.json
  38. 2 0
      src/lib/i18n/locales/ms-MY/translation.json
  39. 2 0
      src/lib/i18n/locales/nb-NO/translation.json
  40. 2 0
      src/lib/i18n/locales/nl-NL/translation.json
  41. 2 0
      src/lib/i18n/locales/pa-IN/translation.json
  42. 2 0
      src/lib/i18n/locales/pl-PL/translation.json
  43. 2 0
      src/lib/i18n/locales/pt-BR/translation.json
  44. 2 0
      src/lib/i18n/locales/pt-PT/translation.json
  45. 2 0
      src/lib/i18n/locales/ro-RO/translation.json
  46. 2 0
      src/lib/i18n/locales/ru-RU/translation.json
  47. 2 0
      src/lib/i18n/locales/sk-SK/translation.json
  48. 2 0
      src/lib/i18n/locales/sr-RS/translation.json
  49. 2 0
      src/lib/i18n/locales/sv-SE/translation.json
  50. 2 0
      src/lib/i18n/locales/th-TH/translation.json
  51. 2 0
      src/lib/i18n/locales/tk-TW/translation.json
  52. 2 0
      src/lib/i18n/locales/tr-TR/translation.json
  53. 2 0
      src/lib/i18n/locales/uk-UA/translation.json
  54. 2 0
      src/lib/i18n/locales/ur-PK/translation.json
  55. 2 0
      src/lib/i18n/locales/vi-VN/translation.json
  56. 2 0
      src/lib/i18n/locales/zh-CN/translation.json
  57. 2 0
      src/lib/i18n/locales/zh-TW/translation.json

+ 3 - 6
backend/open_webui/retrieval/loaders/main.py

@@ -146,10 +146,7 @@ class DoclingLoader:
                 )
             }
 
-            params = {
-                "image_export_mode": "placeholder",
-                "table_mode": "accurate"
-            }
+            params = {"image_export_mode": "placeholder", "table_mode": "accurate"}
 
             if self.params:
                 if self.params.get("do_picture_description"):
@@ -293,8 +290,8 @@ class Loader:
                         "ocr_lang": self.kwargs.get("DOCLING_OCR_LANG"),
                         "do_picture_description": self.kwargs.get(
                             "DOCLING_DO_PICTURE_DESCRIPTION"
-                        )
-                    }
+                        ),
+                    },
                 )
         elif (
             self.engine == "document_intelligence"

+ 6 - 3
backend/open_webui/routers/openai.py

@@ -886,15 +886,16 @@ async def generate_chat_completion(
                 r.close()
             await session.close()
 
+
 async def embeddings(request: Request, form_data: dict, user):
     """
     Calls the embeddings endpoint for OpenAI-compatible providers.
-    
+
     Args:
         request (Request): The FastAPI request context.
         form_data (dict): OpenAI-compatible embeddings payload.
         user (UserModel): The authenticated user.
-    
+
     Returns:
         dict: OpenAI-compatible embeddings response.
     """
@@ -928,7 +929,8 @@ async def embeddings(request: Request, form_data: dict, user):
                         "X-OpenWebUI-User-Email": user.email,
                         "X-OpenWebUI-User-Role": user.role,
                     }
-                    if ENABLE_FORWARD_USER_INFO_HEADERS and user else {}
+                    if ENABLE_FORWARD_USER_INFO_HEADERS and user
+                    else {}
                 ),
             },
         )
@@ -966,6 +968,7 @@ async def embeddings(request: Request, form_data: dict, user):
                 r.close()
             await session.close()
 
+
 @router.api_route("/{path:path}", methods=["GET", "POST", "PUT", "DELETE"])
 async def proxy(path: str, request: Request, user=Depends(get_verified_user)):
     """

+ 1 - 3
backend/open_webui/utils/payload.py

@@ -341,9 +341,7 @@ def convert_embedding_payload_openai_to_ollama(openai_payload: dict) -> dict:
     Returns:
         dict: A payload compatible with the Ollama API embeddings endpoint.
     """
-    ollama_payload = {
-        "model": openai_payload.get("model")
-    }
+    ollama_payload = {"model": openai_payload.get("model")}
     input_value = openai_payload.get("input")
 
     # Ollama expects 'input' as a list, and 'prompt' as a single string.

+ 22 - 13
backend/open_webui/utils/response.py

@@ -126,12 +126,13 @@ async def convert_streaming_response_ollama_to_openai(ollama_streaming_response)
 
     yield "data: [DONE]\n\n"
 
+
 def convert_embedding_response_ollama_to_openai(response) -> dict:
     """
     Convert the response from Ollama embeddings endpoint to the OpenAI-compatible format.
 
     Args:
-        response (dict): The response from the Ollama API, 
+        response (dict): The response from the Ollama API,
             e.g. {"embedding": [...], "model": "..."}
             or {"embeddings": [{"embedding": [...], "index": 0}, ...], "model": "..."}
 
@@ -150,11 +151,13 @@ def convert_embedding_response_ollama_to_openai(response) -> dict:
     if isinstance(response, dict) and "embeddings" in response:
         openai_data = []
         for i, emb in enumerate(response["embeddings"]):
-            openai_data.append({
-                "object": "embedding",
-                "embedding": emb.get("embedding"),
-                "index": emb.get("index", i),
-            })
+            openai_data.append(
+                {
+                    "object": "embedding",
+                    "embedding": emb.get("embedding"),
+                    "index": emb.get("index", i),
+                }
+            )
         return {
             "object": "list",
             "data": openai_data,
@@ -164,16 +167,22 @@ def convert_embedding_response_ollama_to_openai(response) -> dict:
     elif isinstance(response, dict) and "embedding" in response:
         return {
             "object": "list",
-            "data": [{
-                "object": "embedding",
-                "embedding": response["embedding"],
-                "index": 0,
-            }],
+            "data": [
+                {
+                    "object": "embedding",
+                    "embedding": response["embedding"],
+                    "index": 0,
+                }
+            ],
             "model": response.get("model"),
         }
     # Already OpenAI-compatible?
-    elif isinstance(response, dict) and "data" in response and isinstance(response["data"], list):
+    elif (
+        isinstance(response, dict)
+        and "data" in response
+        and isinstance(response["data"], list)
+    ):
         return response
 
     # Fallback: return as is if unrecognized
-    return response
+    return response

+ 3 - 3
src/lib/components/layout/Sidebar/ChatItem.svelte

@@ -205,9 +205,9 @@
 		if (e.key === 'Enter') {
 			e.preventDefault();
 			setTimeout(() => {
-		                const input = document.getElementById(`chat-title-input-${id}`);
-		                if (input) input.blur();
-		        }, 0);
+				const input = document.getElementById(`chat-title-input-${id}`);
+				if (input) input.blur();
+			}, 0);
 		} else if (e.key === 'Escape') {
 			e.preventDefault();
 			confirmEdit = false;

+ 2 - 0
src/lib/i18n/locales/ar-BH/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "{{error}} تم رفض الإذن عند الوصول إلى الميكروفون ",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "التخصيص",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/ar/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "{{error}} تم رفض الإذن عند الوصول إلى الميكروفون ",
 	"Permissions": "الأذونات",
 	"Perplexity API Key": "مفتاح API لـ Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "التخصيص",
 	"Pin": "تثبيت",
 	"Pinned": "مثبت",

+ 2 - 0
src/lib/i18n/locales/bg-BG/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Отказан достъп при опит за достъп до микрофона: {{error}}",
 	"Permissions": "Разрешения",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Персонализация",
 	"Pin": "Закачи",
 	"Pinned": "Закачено",

+ 2 - 0
src/lib/i18n/locales/bn-BD/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "মাইক্রোফোন ব্যবহারের অনুমতি পাওয়া যায়নি: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "ডিজিটাল বাংলা",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/bo-TB/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "སྐད་སྒྲ་འཛིན་ཆས་འཛུལ་སྤྱོད་སྐབས་དབང་ཚད་ཁས་མ་བླངས།: {{error}}",
 	"Permissions": "དབང་ཚད།",
 	"Perplexity API Key": "Perplexity API ལྡེ་མིག",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "སྒེར་སྤྱོད་ཅན།",
 	"Pin": "གདབ་པ།",
 	"Pinned": "གདབ་ཟིན།",

+ 2 - 0
src/lib/i18n/locales/ca-ES/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permís denegat en accedir al micròfon: {{error}}",
 	"Permissions": "Permisos",
 	"Perplexity API Key": "Clau API de Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalització",
 	"Pin": "Fixar",
 	"Pinned": "Fixat",

+ 2 - 0
src/lib/i18n/locales/ceb-PH/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Gidili ang pagtugot sa dihang nag-access sa mikropono: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/cs-CZ/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Oprávnění zamítnuto při přístupu k mikrofonu: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizace",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/da-DK/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Tilladelse nægtet ved adgang til mikrofon: {{error}}",
 	"Permissions": "Tilladelser",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisering",
 	"Pin": "Fastgør",
 	"Pinned": "Fastgjort",

+ 2 - 0
src/lib/i18n/locales/de-DE/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
 	"Permissions": "Berechtigungen",
 	"Perplexity API Key": "Perplexity API-Schlüssel",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisierung",
 	"Pin": "Anheften",
 	"Pinned": "Angeheftet",

+ 2 - 0
src/lib/i18n/locales/dg-DG/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalization",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/el-GR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Άρνηση δικαιώματος κατά την πρόσβαση σε μικρόφωνο: {{error}}",
 	"Permissions": "Δικαιώματα",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Προσωποποίηση",
 	"Pin": "Καρφίτσωμα",
 	"Pinned": "Καρφιτσωμένο",

+ 2 - 0
src/lib/i18n/locales/en-GB/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/en-US/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/es-ES/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permiso denegado accediendo al micrófono: {{error}}",
 	"Permissions": "Permisos",
 	"Perplexity API Key": "Clave API de Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalización",
 	"Pin": "Fijar",
 	"Pinned": "Fijado",

+ 2 - 0
src/lib/i18n/locales/et-EE/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Juurdepääs mikrofonile keelatud: {{error}}",
 	"Permissions": "Õigused",
 	"Perplexity API Key": "Perplexity API võti",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Isikupärastamine",
 	"Pin": "Kinnita",
 	"Pinned": "Kinnitatud",

+ 2 - 0
src/lib/i18n/locales/eu-ES/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Baimena ukatu da mikrofonoa atzitzean: {{error}}",
 	"Permissions": "Baimenak",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Pertsonalizazioa",
 	"Pin": "Ainguratu",
 	"Pinned": "Ainguratuta",

+ 2 - 0
src/lib/i18n/locales/fa-IR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "هنگام دسترسی به میکروفون، اجازه داده نشد: {{error}}",
 	"Permissions": "مجوزها",
 	"Perplexity API Key": "کلید API پرپلکسیتی",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "شخصی سازی",
 	"Pin": "پین کردن",
 	"Pinned": "پین شده",

+ 2 - 0
src/lib/i18n/locales/fi-FI/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Käyttöoikeus evätty mikrofonille: {{error}}",
 	"Permissions": "Käyttöoikeudet",
 	"Perplexity API Key": "Perplexity API-avain",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personointi",
 	"Pin": "Kiinnitä",
 	"Pinned": "Kiinnitetty",

+ 2 - 0
src/lib/i18n/locales/fr-CA/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permission refusée lors de l'accès au microphone : {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personnalisation",
 	"Pin": "Épingler",
 	"Pinned": "Épinglé",

+ 2 - 0
src/lib/i18n/locales/fr-FR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Accès au microphone refusé : {{error}}",
 	"Permissions": "Permissions",
 	"Perplexity API Key": "Clé d'API de Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personnalisation",
 	"Pin": "Épingler",
 	"Pinned": "Épinglé",

+ 2 - 0
src/lib/i18n/locales/he-IL/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "ההרשאה נדחתה בעת גישה למיקרופון: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "תאור",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/hi-IN/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "माइक्रोफ़ोन तक पहुँचने पर अनुमति अस्वीकृत: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "पेरसनलाइज़मेंट",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/hr-HR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Pristup mikrofonu odbijen: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Prilagodba",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/hu-HU/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Hozzáférés megtagadva a mikrofonhoz: {{error}}",
 	"Permissions": "Engedélyek",
 	"Perplexity API Key": "Perplexity API kulcs",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Személyre szabás",
 	"Pin": "Rögzítés",
 	"Pinned": "Rögzítve",

+ 2 - 0
src/lib/i18n/locales/id-ID/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Izin ditolak saat mengakses mikrofon: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisasi",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/ie-GA/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Cead diúltaithe agus tú ag teacht ar mhicreafón: {{error}}",
 	"Permissions": "Ceadanna",
 	"Perplexity API Key": "Eochair API Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Pearsantú",
 	"Pin": "Bioráin",
 	"Pinned": "Pinneáilte",

+ 2 - 0
src/lib/i18n/locales/it-IT/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Autorizzazione negata durante l'accesso al microfono: {{error}}",
 	"Permissions": "Permessi",
 	"Perplexity API Key": "Chiave API Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizzazione",
 	"Pin": "Fissa",
 	"Pinned": "Fissato",

+ 2 - 0
src/lib/i18n/locales/ja-JP/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "マイクへのアクセス時に権限が拒否されました: {{error}}",
 	"Permissions": "許可",
 	"Perplexity API Key": "Perplexity API キー",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "個人化",
 	"Pin": "ピン留め",
 	"Pinned": "ピン留めされています",

+ 2 - 0
src/lib/i18n/locales/ka-GE/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "ნებართვა უარყოფილია მიკროფონზე წვდომისას: {{error}}",
 	"Permissions": "ნებართვები",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "პერსონალიზაცია",
 	"Pin": "მიმაგრება",
 	"Pinned": "მიმაგრებულია",

+ 2 - 0
src/lib/i18n/locales/ko-KR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "마이크 접근 권환이 거부되었습니다: {{error}}",
 	"Permissions": "권한",
 	"Perplexity API Key": "Perplexity API 키",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "개인화",
 	"Pin": "고정",
 	"Pinned": "고정됨",

+ 2 - 0
src/lib/i18n/locales/lt-LT/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Leidimas naudoti mikrofoną atmestas: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizacija",
 	"Pin": "Smeigtukas",
 	"Pinned": "Įsmeigta",

+ 2 - 0
src/lib/i18n/locales/ms-MY/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Tidak mendapat kebenaran apabila cuba mengakses mikrofon: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisasi",
 	"Pin": "Pin",
 	"Pinned": "Disemat",

+ 2 - 0
src/lib/i18n/locales/nb-NO/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Tilgang avslått ved bruk av mikrofonen: {{error}}",
 	"Permissions": "Tillatelser",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Tilpassing",
 	"Pin": "Fest",
 	"Pinned": "Festet",

+ 2 - 0
src/lib/i18n/locales/nl-NL/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Toestemming geweigerd bij toegang tot microfoon: {{error}}",
 	"Permissions": "Toestemmingen",
 	"Perplexity API Key": "Perplexity API-sleutel",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisatie",
 	"Pin": "Zet vast",
 	"Pinned": "Vastgezet",

+ 2 - 0
src/lib/i18n/locales/pa-IN/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚਣ ਸਮੇਂ ਆਗਿਆ ਰੱਦ ਕੀਤੀ ਗਈ: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "ਪਰਸੋਨਲਿਸ਼ਮ",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/pl-PL/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Odmowa dostępu do mikrofonu: {{error}}",
 	"Permissions": "Uprawnienia",
 	"Perplexity API Key": "Klucz API Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizacja",
 	"Pin": "Przypnij",
 	"Pinned": "Przypięty",

+ 2 - 0
src/lib/i18n/locales/pt-BR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permissão negada ao acessar o microfone: {{error}}",
 	"Permissions": "Permissões",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalização",
 	"Pin": "Fixar",
 	"Pinned": "Fixado",

+ 2 - 0
src/lib/i18n/locales/pt-PT/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "A permissão foi negada ao aceder o microfone: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalização",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/ro-RO/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Permisiunea refuzată la accesarea microfonului: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizare",
 	"Pin": "Fixează",
 	"Pinned": "Fixat",

+ 2 - 0
src/lib/i18n/locales/ru-RU/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Отказано в разрешении на доступ к микрофону: {{error}}",
 	"Permissions": "Разрешения",
 	"Perplexity API Key": "Ключ API для Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Персонализация",
 	"Pin": "Закрепить",
 	"Pinned": "Закреплено",

+ 2 - 0
src/lib/i18n/locales/sk-SK/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Oprávnenie zamietnuté pri prístupe k mikrofónu: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalizácia",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/sr-RS/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Приступ микрофону је одбијен: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Прилагођавање",
 	"Pin": "Закачи",
 	"Pinned": "Закачено",

+ 2 - 0
src/lib/i18n/locales/sv-SE/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Tillstånd nekades vid åtkomst till mikrofon: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Personalisering",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/th-TH/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "การอนุญาตถูกปฏิเสธเมื่อเข้าถึงไมโครโฟน: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "การปรับแต่ง",
 	"Pin": "ปักหมุด",
 	"Pinned": "ปักหมุดแล้ว",

+ 2 - 0
src/lib/i18n/locales/tk-TW/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "",
 	"Pin": "",
 	"Pinned": "",

+ 2 - 0
src/lib/i18n/locales/tr-TR/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Mikrofona erişim izni reddedildi: {{error}}",
 	"Permissions": "İzinler",
 	"Perplexity API Key": "Perplexity API Anahtarı",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Kişiselleştirme",
 	"Pin": "Sabitle",
 	"Pinned": "Sabitlenmiş",

+ 2 - 0
src/lib/i18n/locales/uk-UA/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Доступ до мікрофона заборонено: {{error}}",
 	"Permissions": "Дозволи",
 	"Perplexity API Key": "Ключ API для Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Персоналізація",
 	"Pin": "Зачепити",
 	"Pinned": "Зачеплено",

+ 2 - 0
src/lib/i18n/locales/ur-PK/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "مائیکروفون تک رسائی کے دوران اجازت مسترد: {{error}}",
 	"Permissions": "",
 	"Perplexity API Key": "",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "شخصی ترتیبات",
 	"Pin": "پن",
 	"Pinned": "پن کیا گیا",

+ 2 - 0
src/lib/i18n/locales/vi-VN/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "Quyền truy cập micrô bị từ chối: {{error}}",
 	"Permissions": "Quyền",
 	"Perplexity API Key": "Khóa API Perplexity",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "Cá nhân hóa",
 	"Pin": "Ghim",
 	"Pinned": "Đã ghim",

+ 2 - 0
src/lib/i18n/locales/zh-CN/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "申请麦克风权限被拒绝:{{error}}",
 	"Permissions": "权限",
 	"Perplexity API Key": "Perplexity API 密钥",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "个性化",
 	"Pin": "置顶",
 	"Pinned": "已置顶",

+ 2 - 0
src/lib/i18n/locales/zh-TW/translation.json

@@ -939,6 +939,8 @@
 	"Permission denied when accessing microphone: {{error}}": "存取麥克風時權限遭拒:{{error}}",
 	"Permissions": "權限",
 	"Perplexity API Key": "Perplexity API 金鑰",
+	"Perplexity Model": "",
+	"Perplexity Search Context Usage": "",
 	"Personalization": "個人化",
 	"Pin": "釘選",
 	"Pinned": "已釘選",