From 43be6b5be6d7ed02af21b74dcd2b433e1798a1cd Mon Sep 17 00:00:00 2001 From: Xavier Date: Wed, 7 Oct 2026 10:26:04 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20int=C3=A9gration=20de=20tous=20les=20fo?= =?UTF-8?q?urnisseurs=20d'IA=20(OpenRouter,=20Gemini,=20Groq,=20DeepSeek,?= =?UTF-8?q?=20Mistral,=20Cloudflare,=20HF)=20dans=20la=20base=20de=20donn?= =?UTF-8?q?=C3=A9es=20et=20l'interface=20d'installation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/main.py | 9 +++++- backend/models.py | 9 +++++- backend/schemas.py | 9 +++++- frontend/index.html | 70 +++++++++++++++++++++++++++++++++++++-------- 4 files changed, 82 insertions(+), 15 deletions(-) diff --git a/backend/main.py b/backend/main.py index 98caa83..45a2daa 100644 --- a/backend/main.py +++ b/backend/main.py @@ -84,8 +84,15 @@ def create_admin(admin_data: AdminCreate, db: Session = Depends(get_db)): smtp_port=admin_data.smtp_port, smtp_user=admin_data.smtp_user, smtp_password=admin_data.smtp_password, + openrouter_api_key=admin_data.openrouter_api_key, + openrouter_management_key=admin_data.openrouter_management_key, + groq_api_key=admin_data.groq_api_key, gemini_api_key=admin_data.gemini_api_key, - openrouter_api_key=admin_data.openrouter_api_key + deepseek_api_key=admin_data.deepseek_api_key, + mistral_api_key=admin_data.mistral_api_key, + cloudflare_account_id=admin_data.cloudflare_account_id, + cloudflare_api_token=admin_data.cloudflare_api_token, + huggingface_api_key=admin_data.huggingface_api_key ) db.add(new_settings) diff --git a/backend/models.py b/backend/models.py index aa10625..41b0eab 100644 --- a/backend/models.py +++ b/backend/models.py @@ -53,5 +53,12 @@ class SystemSettings(Base): smtp_user = Column(String, nullable=False) smtp_password = Column(String, nullable=False) # Clés API (Optionnelles) + openrouter_api_key = Column(String, nullable=True) + openrouter_management_key = Column(String, nullable=True) + groq_api_key = Column(String, nullable=True) gemini_api_key = Column(String, nullable=True) - openrouter_api_key = Column(String, nullable=True) \ No newline at end of file + deepseek_api_key = Column(String, nullable=True) + mistral_api_key = Column(String, nullable=True) + cloudflare_account_id = Column(String, nullable=True) + cloudflare_api_token = Column(String, nullable=True) + huggingface_api_key = Column(String, nullable=True) \ No newline at end of file diff --git a/backend/schemas.py b/backend/schemas.py index 000fe30..9dc5b66 100644 --- a/backend/schemas.py +++ b/backend/schemas.py @@ -12,8 +12,15 @@ class AdminCreate(BaseModel): smtp_user: str smtp_password: str # Clés API (Optionnelles) - gemini_api_key: Optional[str] = None openrouter_api_key: Optional[str] = None + openrouter_management_key: Optional[str] = None + groq_api_key: Optional[str] = None + gemini_api_key: Optional[str] = None + deepseek_api_key: Optional[str] = None + mistral_api_key: Optional[str] = None + cloudflare_account_id: Optional[str] = None + cloudflare_api_token: Optional[str] = None + huggingface_api_key: Optional[str] = None class LoginRequest(BaseModel): username: str diff --git a/frontend/index.html b/frontend/index.html index 97e197b..860453c 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -20,7 +20,7 @@ -
+
AETHAS38 Logo

AETHAS38

@@ -61,7 +61,6 @@
-

Freebox : Hôte: smtp.free.fr | Port: 465 (SSL) ou 587 (TLS)

Orange : Hôte: smtp.orange.fr | Port: 465 (SSL)

@@ -93,17 +92,63 @@

- Moteurs IA (Optionnel) + Moteurs IA (Optionnel - modifiable plus tard)

-
-
- - +
+ + +
+

OpenRouter Récupérer

+

Générez une clé standard pour les requêtes, et une "Management Key" pour la récupération des crédits.

+ +
-
- - + + +
+

Google Gemini Récupérer

+

Créez une API Key depuis Google AI Studio (Associez un projet Google Cloud pour lever les quotas gratuits limités).

+
+ + +
+

Groq Récupérer

+

Créez une clé d'API. L'accès aux modèles Llama est gratuit avec quotas.

+ +
+ + +
+

DeepSeek Récupérer

+

Créez une clé d'API. Parfait pour le traitement du code de AETHAS38.

+ +
+ + +
+

Mistral AI Récupérer

+

Assurez-vous d'avoir enregistré une méthode de facturation pour lever la période d'essai.

+ +
+ + +
+

HuggingFace Récupérer

+

Générez un Access Token (Fine-grained) avec les droits de lecture et génération (Inference).

+ +
+ + +
+

Cloudflare Workers AI Récupérer

+

Créez un "Custom Token" avec l'autorisation "Workers AI : Read/Write". Votre ID de compte se trouve sur la page d'accueil Workers.

+
+ + +
+
+
@@ -114,7 +159,6 @@
-
@@ -145,7 +189,9 @@ const form = reactive({ email: '', username: '', password: '', smtp_host: '', smtp_port: 465, smtp_user: '', smtp_password: '', - gemini_api_key: '', openrouter_api_key: '' + openrouter_api_key: '', openrouter_management_key: '', + groq_api_key: '', gemini_api_key: '', deepseek_api_key: '', mistral_api_key: '', + cloudflare_account_id: '', cloudflare_api_token: '', huggingface_api_key: '' }); const isSubmitting = ref(false); const setupComplete = ref(false);