main.py aktualisiert
This commit is contained in:
36
main.py
36
main.py
@@ -6,6 +6,7 @@ import sqlite3
|
||||
import asyncio
|
||||
import openai
|
||||
import re
|
||||
import httpx
|
||||
from google import genai
|
||||
from google.genai import types
|
||||
import json
|
||||
@@ -259,6 +260,41 @@ async def update_settings(request: Request):
|
||||
|
||||
return {"status": "success"}
|
||||
|
||||
@app.get("/api/models")
|
||||
async def get_models(provider: str, url: str = None):
|
||||
try:
|
||||
models = []
|
||||
|
||||
if provider == "ollama" and url:
|
||||
# Das Backend hat keine CORS-Probleme und fragt Ollama direkt
|
||||
clean_url = url.replace("/v1", "").rstrip("/")
|
||||
async with httpx.AsyncClient() as client:
|
||||
response = await client.get(f"{clean_url}/api/tags", timeout=5.0)
|
||||
data = response.json()
|
||||
models = [m["name"] for m in data.get("models", [])]
|
||||
|
||||
elif provider == "openai":
|
||||
# Hier greift das Backend auf deinen OpenAI API-Key zu
|
||||
import openai
|
||||
client = openai.AsyncOpenAI(api_key=OPENAI_API_KEY)
|
||||
response = await client.models.list()
|
||||
# Nur GPT-Modelle filtern, um die Liste sauber zu halten
|
||||
models = [m.id for m in response.data if "gpt" in m.id or "o1" in m.id]
|
||||
models.sort()
|
||||
|
||||
elif provider == "google":
|
||||
# Hier greift das Backend auf deinen Google API-Key zu
|
||||
import google.generativeai as genai
|
||||
genai.configure(api_key=GOOGLE_API_KEY)
|
||||
# Holt alle verfügbaren Modelle, die Text generieren können
|
||||
models = [m.name.replace("models/", "") for m in genai.list_models() if "generateContent" in m.supported_generation_methods]
|
||||
|
||||
return {"models": models}
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Abrufen der Modelle für {provider}: {str(e)}")
|
||||
return {"models": []} # Gibt eine leere Liste zurück -> Frontend nutzt Fallback
|
||||
|
||||
# --- WebSockets ---
|
||||
|
||||
@app.websocket("/ws/install_logs")
|
||||
|
||||
Reference in New Issue
Block a user