Add admin AI models panel (list, test, select Mistral models)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
billisdeadandClaude Sonnet 5.5 committed 2026-10-12 09:55:37 +02:00
1 parent defc07648c
commit 13677b3ce3
4 files changed
+162 -5

No files matched your search

+23
View File
@@ -114,6 +114,7 @@ def init_db() -> None:
)
""")
cur.execute("CREATE INDEX IF NOT EXISTS idx_ip_abuse_expires ON ip_abuse(expires_at)")
cur.execute("CREATE TABLE IF NOT EXISTS settings (key TEXT PRIMARY KEY, value TEXT NOT NULL)")
logger.info("Base de données initialisée.")
@@ -575,3 +576,25 @@ def delete_consultation(consultation_id: int) -> bool:
cur.execute("DELETE FROM synthesis WHERE consultation_id = %s", (consultation_id,))
cur.execute("DELETE FROM consultations WHERE id = %s RETURNING id", (consultation_id,))
return cur.fetchone() is not None
# ─── Réglages (clé/valeur) ────────────────────────────────────────────────────
def get_setting(key: str) -> str | None:
with db_cursor() as cur:
cur.execute("SELECT value FROM settings WHERE key = %s", (key,))
row = cur.fetchone()
return row["value"] if row else None
def set_setting(key: str, value: str | None) -> None:
"""value=None → supprime le réglage (retour à la valeur d'environnement)."""
with db_cursor() as cur:
if value is None:
cur.execute("DELETE FROM settings WHERE key = %s", (key,))
else:
cur.execute(
"INSERT INTO settings (key, value) VALUES (%s, %s) "
"ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value",
(key, value),
)