chore: format

This commit is contained in:
Timothy Jaeryang Baek 2025-06-05 01:12:28 +04:00
parent f17bfb3adb
commit 5e35aab292
57 changed files with 139 additions and 28 deletions

View File

@ -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"

View File

@ -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)):
"""

View File

@ -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.

View File

@ -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

View File

@ -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;

View File

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

View File

@ -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": "مثبت",

View File

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

View File

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

View File

@ -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": "གདབ་ཟིན།",

View File

@ -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",

View File

@ -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": "",

View File

@ -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": "",

View File

@ -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",

View File

@ -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",

View File

@ -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": "",

View File

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

View File

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

View File

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

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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": "پین شده",

View File

@ -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",

View File

@ -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é",

View File

@ -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é",

View File

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

View File

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

View File

@ -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": "",

View File

@ -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",

View File

@ -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": "",

View File

@ -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",

View File

@ -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",

View File

@ -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": "ピン留めされています",

View File

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

View File

@ -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": "고정됨",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

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

View File

@ -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",

View File

@ -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",

View File

@ -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": "",

View File

@ -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",

View File

@ -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": "Закреплено",

View File

@ -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": "",

View File

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

View File

@ -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": "",

View File

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

View File

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

View File

@ -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ş",

View File

@ -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": "Зачеплено",

View File

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

View File

@ -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",

View File

@ -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": "已置顶",

View File

@ -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": "已釘選",