Public Access
MAJ Globale : Chemins absolus (NAS), Model Updater auto, Timeout 90s OpenRouter, Pop-up et traçabilité financière
Build and Push Docker Image / build-and-push (push) Successful in 1m48s
Build and Push Docker Image / build-and-push (push) Successful in 1m48s
This commit is contained in:
1 parent
b4ed2947d4
commit
632c23069a
9 files changed
+66
-89
No files matched your search
@@ -9,6 +9,8 @@ load_dotenv()
|
||||
|
||||
api_key_openrouter = os.getenv("OPENROUTER_API_KEY") or "sk-or-v1-cle-non-definie"
|
||||
client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=api_key_openrouter)
|
||||
|
||||
# Chemin ABSOLU strict
|
||||
CATALOGUE_FILE = "/DATA/AppData/MULTI-IA-AETHAS38/catalogue_dynamique.json"
|
||||
|
||||
def verifier_cle_api():
|
||||
@@ -33,7 +35,6 @@ def obtenir_modele_dynamique(premium: bool):
|
||||
return priorites[0] if priorites else (free_models[0] if free_models else "google/gemma-2-9b-it:free")
|
||||
except Exception:
|
||||
pass
|
||||
# Fallbacks absolus si fichier introuvable
|
||||
return "anthropic/claude-3.5-sonnet" if premium else "google/gemma-2-9b-it:free"
|
||||
|
||||
def interroger_openrouter(prompt: str, type_modele: str = "openrouter_chat", premium: bool = False, max_retries: int = 2, chat_id: str = None):
|
||||
@@ -52,7 +53,7 @@ def interroger_openrouter(prompt: str, type_modele: str = "openrouter_chat", pre
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
extra_headers={"HTTP-Referer": "https://aethas38.duckdns.org", "X-Title": "Aethas38 Multi-IA"},
|
||||
extra_body=extra_body_data,
|
||||
timeout=25.0
|
||||
timeout=90.0 # TIMEOUT MONTE A 90s
|
||||
)
|
||||
texte = response.choices[0].message.content
|
||||
usage = response.usage
|
||||
@@ -63,9 +64,11 @@ def interroger_openrouter(prompt: str, type_modele: str = "openrouter_chat", pre
|
||||
except Exception as e:
|
||||
log_event("WARNING", "OPENROUTER", f"Tentative {tentative + 1} échouée pour {nom_modele_api} : {e}")
|
||||
if tentative == max_retries - 1:
|
||||
# Force la MAJ du catalogue si le modèle crashe
|
||||
from modules.model_updater import trigger_update_now
|
||||
trigger_update_now()
|
||||
try:
|
||||
from modules.model_updater import trigger_update_now
|
||||
trigger_update_now()
|
||||
except Exception:
|
||||
pass
|
||||
raise e
|
||||
time.sleep(1)
|
||||
|
||||
@@ -89,7 +92,7 @@ def interroger_openrouter_multi(prompt: str, type_modele: str = "openrouter_code
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
extra_headers={"HTTP-Referer": "https://aethas38.duckdns.org", "X-Title": "Aethas38 Multi-IA"},
|
||||
extra_body=extra_body_data,
|
||||
timeout=15.0
|
||||
timeout=90.0 # TIMEOUT MONTE A 90s
|
||||
)
|
||||
contenu = res.choices[0].message.content
|
||||
if contenu:
|
||||
|
||||
Reference in new issue
Block a user