feat(webui): add BYOK web search settings
Let WebUI users configure the single web search provider credential from BYOK while keeping saved secrets masked and hot-reloaded for new searches. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
committed by
Xubin Ren
co-authored by
Cursor
parent
7c1aa5ae31
commit
56eee06736
@@ -123,7 +123,28 @@
|
||||
"hideApiKey": "Hide API key",
|
||||
"noConfiguredProviders": "No configured providers",
|
||||
"configureFirst": "Configure a provider in BYOK first.",
|
||||
"openByok": "Open BYOK"
|
||||
"openByok": "Open BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "BYOK credential type",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "Search provider",
|
||||
"providerHelp": "Choose the backend used by the web search tool.",
|
||||
"selectProvider": "Select provider",
|
||||
"credentials": "Credentials",
|
||||
"noCredentialRequired": "No key required",
|
||||
"noCredentialHelp": "DuckDuckGo works without a saved API key.",
|
||||
"apiKeyHelp": "Stored in config and masked after saving.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG needs the URL of your own instance.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "API key is required for this search provider.",
|
||||
"baseUrlRequired": "Base URL is required for SearXNG.",
|
||||
"missingCredential": "Add the required credential before saving.",
|
||||
"saveHint": "Changes apply to new web search requests."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "Ocultar API key",
|
||||
"noConfiguredProviders": "No hay proveedores configurados",
|
||||
"configureFirst": "Configura primero un proveedor en BYOK.",
|
||||
"openByok": "Abrir BYOK"
|
||||
"openByok": "Abrir BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "Tipo de credencial BYOK",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "Proveedor de búsqueda",
|
||||
"providerHelp": "Elige el backend que usará la herramienta web search.",
|
||||
"selectProvider": "Seleccionar proveedor",
|
||||
"credentials": "Credenciales",
|
||||
"noCredentialRequired": "No requiere key",
|
||||
"noCredentialHelp": "DuckDuckGo funciona sin guardar una API key.",
|
||||
"apiKeyHelp": "Se guarda en config y se muestra enmascarada después de guardar.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG necesita la URL de tu propia instancia.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "Este proveedor de búsqueda requiere una API key.",
|
||||
"baseUrlRequired": "SearXNG requiere una Base URL.",
|
||||
"missingCredential": "Añade la credencial requerida antes de guardar.",
|
||||
"saveHint": "Los cambios se aplican a nuevas solicitudes de web search."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "Masquer l'API key",
|
||||
"noConfiguredProviders": "Aucun fournisseur configuré",
|
||||
"configureFirst": "Configurez d'abord un fournisseur dans BYOK.",
|
||||
"openByok": "Ouvrir BYOK"
|
||||
"openByok": "Ouvrir BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "Type d'identifiants BYOK",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "Fournisseur de recherche",
|
||||
"providerHelp": "Choisissez le backend utilisé par l'outil web search.",
|
||||
"selectProvider": "Choisir un fournisseur",
|
||||
"credentials": "Identifiants",
|
||||
"noCredentialRequired": "Aucune key requise",
|
||||
"noCredentialHelp": "DuckDuckGo fonctionne sans API key enregistrée.",
|
||||
"apiKeyHelp": "Enregistrée dans la config et masquée après l'enregistrement.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG nécessite l'URL de votre propre instance.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "Ce fournisseur de recherche nécessite une API key.",
|
||||
"baseUrlRequired": "SearXNG nécessite une Base URL.",
|
||||
"missingCredential": "Ajoutez l'identifiant requis avant d'enregistrer.",
|
||||
"saveHint": "Les changements s'appliquent aux nouvelles requêtes web search."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "Sembunyikan API key",
|
||||
"noConfiguredProviders": "Belum ada provider terkonfigurasi",
|
||||
"configureFirst": "Konfigurasikan provider di BYOK terlebih dahulu.",
|
||||
"openByok": "Buka BYOK"
|
||||
"openByok": "Buka BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "Jenis kredensial BYOK",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "Search provider",
|
||||
"providerHelp": "Pilih backend yang digunakan alat web search.",
|
||||
"selectProvider": "Pilih provider",
|
||||
"credentials": "Kredensial",
|
||||
"noCredentialRequired": "Tidak perlu key",
|
||||
"noCredentialHelp": "DuckDuckGo berfungsi tanpa menyimpan API key.",
|
||||
"apiKeyHelp": "Disimpan di config dan ditampilkan tersamarkan setelah disimpan.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG memerlukan URL instance Anda sendiri.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "Provider pencarian ini memerlukan API key.",
|
||||
"baseUrlRequired": "SearXNG memerlukan Base URL.",
|
||||
"missingCredential": "Tambahkan kredensial yang diperlukan sebelum menyimpan.",
|
||||
"saveHint": "Perubahan berlaku untuk permintaan web search baru."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "API key を隠す",
|
||||
"noConfiguredProviders": "設定済み provider がありません",
|
||||
"configureFirst": "先に BYOK で provider を設定してください。",
|
||||
"openByok": "BYOK を開く"
|
||||
"openByok": "BYOK を開く",
|
||||
"tabs": {
|
||||
"ariaLabel": "BYOK 認証情報タイプ",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "検索 provider",
|
||||
"providerHelp": "web search ツールで使うバックエンドを選択します。",
|
||||
"selectProvider": "provider を選択",
|
||||
"credentials": "認証情報",
|
||||
"noCredentialRequired": "key は不要",
|
||||
"noCredentialHelp": "DuckDuckGo は API key を保存せずに使えます。",
|
||||
"apiKeyHelp": "config に保存され、保存後はマスク表示されます。",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG には自分のインスタンス URL が必要です。",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "この検索 provider には API key が必要です。",
|
||||
"baseUrlRequired": "SearXNG には Base URL が必要です。",
|
||||
"missingCredential": "保存する前に必要な認証情報を入力してください。",
|
||||
"saveHint": "変更は新しい web search リクエストに適用されます。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "API key 숨기기",
|
||||
"noConfiguredProviders": "설정된 provider가 없습니다",
|
||||
"configureFirst": "먼저 BYOK에서 provider를 설정하세요.",
|
||||
"openByok": "BYOK 열기"
|
||||
"openByok": "BYOK 열기",
|
||||
"tabs": {
|
||||
"ariaLabel": "BYOK 자격 증명 유형",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "검색 provider",
|
||||
"providerHelp": "web search 도구가 사용할 백엔드를 선택합니다.",
|
||||
"selectProvider": "provider 선택",
|
||||
"credentials": "자격 증명",
|
||||
"noCredentialRequired": "key 필요 없음",
|
||||
"noCredentialHelp": "DuckDuckGo는 API key를 저장하지 않고 사용할 수 있습니다.",
|
||||
"apiKeyHelp": "config에 저장되며 저장 후에는 마스킹되어 표시됩니다.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG에는 자체 인스턴스 URL이 필요합니다.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "이 검색 provider에는 API key가 필요합니다.",
|
||||
"baseUrlRequired": "SearXNG에는 Base URL이 필요합니다.",
|
||||
"missingCredential": "저장하기 전에 필요한 자격 증명을 입력하세요.",
|
||||
"saveHint": "변경 사항은 새 web search 요청에 적용됩니다."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "Ẩn API key",
|
||||
"noConfiguredProviders": "Chưa có provider đã cấu hình",
|
||||
"configureFirst": "Hãy cấu hình provider trong BYOK trước.",
|
||||
"openByok": "Mở BYOK"
|
||||
"openByok": "Mở BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "Loại thông tin xác thực BYOK",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "Search provider",
|
||||
"providerHelp": "Chọn backend mà công cụ web search sẽ dùng.",
|
||||
"selectProvider": "Chọn provider",
|
||||
"credentials": "Thông tin xác thực",
|
||||
"noCredentialRequired": "Không cần key",
|
||||
"noCredentialHelp": "DuckDuckGo hoạt động mà không cần lưu API key.",
|
||||
"apiKeyHelp": "Được lưu trong config và chỉ hiện dạng che sau khi lưu.",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG cần URL instance của bạn.",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "Provider tìm kiếm này cần API key.",
|
||||
"baseUrlRequired": "SearXNG cần Base URL.",
|
||||
"missingCredential": "Thêm thông tin bắt buộc trước khi lưu.",
|
||||
"saveHint": "Thay đổi áp dụng cho các yêu cầu web search mới."
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -111,7 +111,28 @@
|
||||
"hideApiKey": "隐藏 API key",
|
||||
"noConfiguredProviders": "没有已配置的 provider",
|
||||
"configureFirst": "请先在 BYOK 里配置 provider。",
|
||||
"openByok": "打开 BYOK"
|
||||
"openByok": "打开 BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "BYOK 凭证类型",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "搜索 provider",
|
||||
"providerHelp": "选择 web search 工具使用的后端。",
|
||||
"selectProvider": "选择 provider",
|
||||
"credentials": "凭证",
|
||||
"noCredentialRequired": "无需 key",
|
||||
"noCredentialHelp": "DuckDuckGo 不需要保存 API key。",
|
||||
"apiKeyHelp": "保存到 config 后只显示掩码提示。",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG 需要你自己的实例地址。",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "这个搜索 provider 需要 API key。",
|
||||
"baseUrlRequired": "SearXNG 需要 Base URL。",
|
||||
"missingCredential": "填写所需凭证后才能保存。",
|
||||
"saveHint": "改动会应用到新的 web search 请求。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
@@ -104,7 +104,28 @@
|
||||
"hideApiKey": "隱藏 API key",
|
||||
"noConfiguredProviders": "沒有已設定的 provider",
|
||||
"configureFirst": "請先在 BYOK 設定 provider。",
|
||||
"openByok": "開啟 BYOK"
|
||||
"openByok": "開啟 BYOK",
|
||||
"tabs": {
|
||||
"ariaLabel": "BYOK 憑證類型",
|
||||
"llm": "LLM",
|
||||
"webSearch": "Web Search"
|
||||
},
|
||||
"webSearch": {
|
||||
"provider": "搜尋 provider",
|
||||
"providerHelp": "選擇 web search 工具使用的後端。",
|
||||
"selectProvider": "選擇 provider",
|
||||
"credentials": "憑證",
|
||||
"noCredentialRequired": "不需要 key",
|
||||
"noCredentialHelp": "DuckDuckGo 不需要儲存 API key。",
|
||||
"apiKeyHelp": "儲存到 config 後只顯示遮罩提示。",
|
||||
"baseUrl": "Base URL",
|
||||
"baseUrlHelp": "SearXNG 需要你自己的實例網址。",
|
||||
"baseUrlPlaceholder": "https://search.example.com",
|
||||
"apiKeyRequired": "此搜尋 provider 需要 API key。",
|
||||
"baseUrlRequired": "SearXNG 需要 Base URL。",
|
||||
"missingCredential": "填寫必要憑證後才能儲存。",
|
||||
"saveHint": "變更會套用到新的 web search 請求。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"chat": {
|
||||
|
||||
Reference in New Issue
Block a user