main.py aktualisiert

This commit is contained in:
2026-03-05 16:37:23 +00:00
parent 20c85103a9
commit e50c8622a1

38
main.py
View File

@@ -13,7 +13,7 @@ from fastapi import FastAPI, WebSocket, BackgroundTasks, Request, Form, WebSocke
from fastapi.responses import RedirectResponse from fastapi.responses import RedirectResponse
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from dotenv import load_dotenv from dotenv import load_dotenv, set_key
# Lade Umgebungsvariablen aus der .env Datei # Lade Umgebungsvariablen aus der .env Datei
load_dotenv() load_dotenv()
@@ -27,7 +27,7 @@ SSH_KEY = os.path.expanduser("~/.ssh/id_rsa")
DB_PATH = "cluster.db" DB_PATH = "cluster.db"
chat_history = [] chat_history = []
PROMPT_FILE = "system_prompt.txt" PROMPT_FILE = "system_prompt.txt"
ENV_FILE = os.path.join(os.path.dirname(__file__), ".env") # NEU
# --- KI KONFIGURATION (Werte aus .env laden) --- # --- KI KONFIGURATION (Werte aus .env laden) ---
AI_PROVIDER = os.getenv("AI_PROVIDER", "google").lower() AI_PROVIDER = os.getenv("AI_PROVIDER", "google").lower()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
@@ -210,6 +210,40 @@ async def remove_node(node_id: int):
conn.close() conn.close()
return RedirectResponse(url="/", status_code=303) return RedirectResponse(url="/", status_code=303)
@app.get("/api/settings")
async def get_settings():
return {
"provider": AI_PROVIDER,
"google_model": GOOGLE_MODEL,
"openai_model": OPENAI_MODEL,
"ollama_model": OLLAMA_MODEL
}
@app.post("/api/settings")
async def update_settings(request: Request):
# Die globalen Variablen deklarieren, damit wir sie zur Laufzeit ändern können
global AI_PROVIDER, GOOGLE_MODEL, OPENAI_MODEL, OLLAMA_MODEL
data = await request.json()
provider = data.get("provider")
model = data.get("model")
if provider:
AI_PROVIDER = provider
set_key(ENV_FILE, "AI_PROVIDER", provider)
if provider == "google" and model:
GOOGLE_MODEL = model
set_key(ENV_FILE, "GOOGLE_MODEL", model)
elif provider == "openai" and model:
OPENAI_MODEL = model
set_key(ENV_FILE, "OPENAI_MODEL", model)
elif provider == "ollama" and model:
OLLAMA_MODEL = model
set_key(ENV_FILE, "OLLAMA_MODEL", model)
return {"status": "success"}
# --- WebSockets --- # --- WebSockets ---
@app.websocket("/ws/install_logs") @app.websocket("/ws/install_logs")