This commit is contained in:
kim
2026-05-03 17:36:47 +09:00
parent 83eb31f121
commit f92e5ef782
80 changed files with 3160 additions and 258 deletions
+15 -1
View File
@@ -2876,12 +2876,17 @@
<div style="border:1px solid var(--line);border-radius:12px;padding:12px">
<div class="right-section-title" style="margin-bottom:8px">웹 검색</div>
<label style="display:block;font-size:12px;color:var(--muted);margin-bottom:6px">검색 제공자</label>
<select id="settings-provider" style="width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:13px">
<select id="settings-provider" onchange="toggleOllamaModelRow(this.value)" style="width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:13px">
<option value="ddg">DuckDuckGo</option>
<option value="ollama">Ollama (모델 보조 검색)</option>
<option value="tavily">Tavily</option>
<option value="google">Google CSE</option>
<option value="brave">Brave</option>
</select>
<div id="search-ollama-model-row" style="display:none;margin-top:8px">
<label style="display:block;font-size:12px;color:var(--muted);margin-bottom:4px">Ollama 검색 모델</label>
<input id="settings-search-ollama-model" type="text" placeholder="예: gemini-3-flash-preview:cloud" style="width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12px;box-sizing:border-box">
</div>
<label style="display:block;font-size:12px;color:var(--muted);margin:10px 0 6px">검색 엄격도</label>
<select id="settings-search-rigor" style="width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:13px">
<option value="fast">빠름</option>
@@ -5886,6 +5891,11 @@ function toggleQuickModePopover() {
updateQuickModeUI();
}
function toggleOllamaModelRow(provider) {
const row = document.getElementById('search-ollama-model-row');
if (row) row.style.display = provider === 'ollama' ? 'block' : 'none';
}
async function setQuickSearchRigor(level) {
quickSearchRigor = level;
updateQuickModeUI();
@@ -6476,6 +6486,9 @@ async function openSettings(tab) {
const s = await api('/api/settings/search');
document.getElementById('settings-provider').value = s.preferred_provider || 'ddg';
document.getElementById('settings-search-rigor').value = s.search_rigor || 'verified';
if (document.getElementById('settings-search-ollama-model'))
document.getElementById('settings-search-ollama-model').value = s.ollama_model || '';
toggleOllamaModelRow(s.preferred_provider);
// Keys are loaded via the Credentials tab — not here
} catch {}
try {
@@ -7206,6 +7219,7 @@ async function saveSettings() {
google_api_key: document.getElementById('cred-google-key')?.value.trim() || '',
google_cx: document.getElementById('cred-google-cx')?.value.trim() || '',
brave_api_key: document.getElementById('cred-brave-key')?.value.trim() || '',
ollama_model: document.getElementById('settings-search-ollama-model')?.value.trim() || '',
};
const policyPayload = {
force_web_for_fresh: document.getElementById('settings-force-web-fresh').checked,