diff --git a/app.py b/app.py index 5514dd2..ba606e0 100644 --- a/app.py +++ b/app.py @@ -545,7 +545,7 @@ def _process_analysis_job(job_id: int): repeat_penalty = float(get_setting("llm_repeat_penalty", "1.15")) repeat_last_n = int(get_setting("llm_repeat_last_n", "128")) else: - provider = _get_provider(prm.get("provider_id")) + provider = _get_provider(prm["provider_id"] if "provider_id" in prm.keys() else None) model = prm["llm_model"] or get_setting("llm_model", _SEED_MODEL) num_ctx_setting = prm["llm_num_ctx"] or get_setting("llm_num_ctx", "auto") num_predict = int(prm["llm_num_predict"] or get_setting("llm_num_predict", str(_SEED_NUM_PREDICT))) @@ -795,17 +795,46 @@ def settings_page(msg: str = ""): email_addrs = c.execute("SELECT id, label, email FROM email_addresses ORDER BY label").fetchall() provider_rows = "".join( - f""" - {p["name"]} - {p["base_url"]} - - {'Standard' if p["is_default"] else f'
'} - + f""" + {p["name"]} + {p["base_url"]} + + + {"Standard" if p["is_default"] else f"
"} + + +
+ + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + + {"" if p["api_key"] else ""} +
+
+ + """ for p in providers ) @@ -842,42 +871,52 @@ def settings_page(msg: str = ""): {f"
{msg}
" if msg else ""}
-
LLM-Anbieter
-

OpenAI-kompatible Endpunkte (Ollama, OpenAI, Groq, LM Studio, …)

- {"" + provider_rows + "
NameBase-URLAPI-KeyStandard
" if providers else "

Noch kein Anbieter konfiguriert.

"} -
-
- - -
-
- - -
-
- - -
-
-
- - -
- -
-
-
+
LLM-Anbieter & Standard-Modell
-
-
Standard-LLM-Parameter
-

Gelten für alle Prompts ohne eigene Einstellungen. Anbieter = markierter Standard-Anbieter oben.

+
SCHRITT 1 — Anbieter verwalten
+

OpenAI-kompatible Endpunkte (Ollama, OpenAI, Groq, LM Studio, …). = als Standard setzen.

+ {"
" + provider_rows + "
NameBase-URLAPI-Key
" if providers else "

Noch kein Anbieter konfiguriert.

"} +
+ Neuen Anbieter hinzufügen +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+ +
+
SCHRITT 2 — Standard-Modell & Parameter festlegen
+

+ Gilt für alle Prompts ohne eigene Einstellungen. Standard-Anbieter: + {next((p["name"] for p in providers if p["is_default"]), "– keiner gesetzt –")} +

- {provider_id_opts}
-
Aktuell gespeichert: {current_model}
+
Anbieter im Dropdown links wählen → Modelle laden → Modell auswählen → Speichern. Aktuell: {current_model}
@@ -990,21 +1029,24 @@ def settings_page(msg: str = ""):