diff --git a/templates/index.html b/templates/index.html
index 4f91e20..fffb426 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -288,9 +288,20 @@
try {
const res = await fetch('/api/settings');
currentSettings = await res.json();
- document.getElementById('ai-provider').value = currentSettings.provider;
- updateModelDropdown(true);
- } catch (e) {}
+
+ const providerSelect = document.getElementById('ai-provider');
+ providerSelect.value = currentSettings.provider;
+
+ // Falls eine Ollama-URL in den Settings gespeichert ist, diese setzen
+ if (currentSettings.ollama_url) {
+ document.getElementById('ollama-url').value = currentSettings.ollama_url;
+ }
+
+ // Jetzt die Modelle laden - WICHTIG: await nutzen
+ await updateModelDropdown(true);
+ } catch (e) {
+ console.error("Fehler beim Laden der Initial-Settings:", e);
+ }
}
loadSettings();
@@ -306,18 +317,23 @@
const provider = document.getElementById('ai-provider').value;
const modelSelect = document.getElementById('ai-model');
const urlContainer = document.getElementById('ollama-url-container');
+ const ollamaUrl = document.getElementById('ollama-url').value;
- // FIX: Zeige das URL-Feld nur an, wenn Ollama ausgewählt ist
- if (provider === "ollama") {
- urlContainer.style.display = "flex";
- } else {
- urlContainer.style.display = "none";
- }
+ // Sichtbarkeit des URL-Feldes steuern
+ urlContainer.style.display = (provider === "ollama") ? "flex" : "none";
modelSelect.innerHTML = '';
+ // API-Query vorbereiten
+ let apiUrl = `/api/models?provider=${provider}`;
+ if (provider === "ollama" && ollamaUrl) {
+ apiUrl += `&base_url=${encodeURIComponent(ollamaUrl)}`;
+ }
+
try {
- const res = await fetch(`/api/models?provider=${provider}`);
+ const res = await fetch(apiUrl);
+ if (!res.ok) throw new Error("Server-Antwort nicht OK");
+
const data = await res.json();
modelSelect.innerHTML = '';
@@ -327,16 +343,18 @@
opt.value = opt.textContent = m;
modelSelect.appendChild(opt);
});
- // Setze gespeichertes Modell beim ersten Laden
- if (isInitialLoad && currentSettings[`${provider}_model`]) {
- modelSelect.value = currentSettings[`${provider}_model`];
+
+ // Gespeichertes Modell setzen
+ const savedModel = currentSettings[`${provider}_model`];
+ if (isInitialLoad && savedModel) {
+ modelSelect.value = savedModel;
}
} else {
modelSelect.innerHTML = '';
}
} catch (e) {
- console.error("Fehler beim Laden der Modelle:", e);
- modelSelect.innerHTML = '';
+ console.error("Fehler beim Modell-Abruf:", e);
+ modelSelect.innerHTML = '';
}
}