diff --git a/templates/index.html b/templates/index.html
index 9eb4c0f..702f96c 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -317,24 +317,22 @@
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;
+
+ // WICHTIG: Hier 'let' statt 'const' nutzen, da wir die URL gleich noch verändern!
+ let ollamaUrl = document.getElementById('ollama-url').value;
// Sichtbarkeit des URL-Feldes steuern
urlContainer.style.display = (provider === "ollama") ? "flex" : "none";
modelSelect.innerHTML = '';
- // API-Query vorbereiten
// API-Query vorbereiten
let apiUrl = `/api/models?provider=${provider}`;
if (provider === "ollama" && ollamaUrl) {
- // FIX: Prüfen, ob die URL mit /v1 endet. Wenn nicht, hängen wir es an.
+ // Prüfen, ob die URL mit /v1 endet. Wenn nicht, hängen wir es an.
if (!ollamaUrl.endsWith('/v1') && !ollamaUrl.includes('/api')) {
- // Eventuellen Schrägstrich am Ende entfernen und /v1 anhängen
ollamaUrl = ollamaUrl.replace(/\/$/, '') + '/v1';
-
- // Das Input-Feld direkt aktualisieren, damit es beim Speichern stimmt
document.getElementById('ollama-url').value = ollamaUrl;
}
apiUrl += `&base_url=${encodeURIComponent(ollamaUrl)}`;
@@ -342,15 +340,19 @@
try {
const res = await fetch(apiUrl);
- if (!res.ok) throw new Error("Server-Antwort nicht OK");
+ if (!res.ok) throw new Error(`Server antwortete mit Status ${res.status}`);
const data = await res.json();
modelSelect.innerHTML = '';
- if (data.models && data.models.length > 0) {
+ // Prüfen ob 'models' existiert und ein Array mit Inhalten ist
+ if (data.models && Array.isArray(data.models) && data.models.length > 0) {
data.models.forEach(m => {
const opt = document.createElement('option');
- opt.value = opt.textContent = m;
+ // Manchmal kommen die Modelle als Objekte statt als Strings zurück (je nach Python-Code)
+ const modelName = typeof m === 'object' ? (m.name || m.id) : m;
+ opt.value = modelName;
+ opt.textContent = modelName;
modelSelect.appendChild(opt);
});
@@ -364,7 +366,7 @@
}
} catch (e) {
console.error("Fehler beim Modell-Abruf:", e);
- modelSelect.innerHTML = '';
+ modelSelect.innerHTML = '';
}
}