maj auto 1

This commit is contained in:
xavier committed 2026-08-18 15:04:53 +02:00
1 parent 37ee5c6234
commit b874019def
4 files changed
+93 -12

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
FROM python:3.13-slim
WORKDIR /app
# Installation des dépendances système nécessaires pour certaines librairies Python
RUN apt-get update && apt-get install -y gcc default-libmysqlclient-dev && rm -rf /var/lib/apt/lists/*
# Copie des requirements et installation
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copie du reste de l'application
COPY . .
# Exposition du port
EXPOSE 5001
# Lancement du serveur Uvicorn (FastHTML)
CMD ["python", "main.py"]
+7 -12
View File
@@ -1,7 +1,8 @@
# Aethas38 - Multi-IA Orchestrateur (Minecraft-Tech Edition)
Plateforme SaaS d'IA modulaire : Orchestrateur local, routeur intelligent, sécurisé et facturable.
**Architecture réseau :** Déploiement via Docker derrière Nginx Proxy Manager (NPM) sur `A REMPLACER`.
<!-- MAJ 18/08/2026 : URL de production masquée pour raisons de cybersécurité (Information Disclosure) -->
**Architecture réseau :** Déploiement via Docker derrière Nginx Proxy Manager (NPM) sur `https://ia.votre-domaine.com`.
## 📜 Licence & Droits d'Utilisation (EULA)
Ce projet est distribué sous une licence "Source Available" propriétaire (EULA) rédigée par Xavier Fernandez (Aethas38).
@@ -27,42 +28,36 @@ Ce projet est distribué sous une licence "Source Available" propriétaire (EULA
- [x] Architecture modulaire propre (Dossier `modules/`)
### Phase 4 : Gestion des Utilisateurs & Sécurité Légale
<!-- MAJ 18/08/2026 14h30 : Mise à jour de l'état d'avancement des modules de cryptage et sécurité -->
<!-- MAJ 18/08/2026 : Intégration du Middleware de sécurité dans main.py et du module billing_manager -->
- [ ] Mettre en place une bibliothèque logicielle autonome sur le serveur (création PDF, DOCX, etc.).
- [ ] Routage automatique (Gratuit vs Payant) sélectionné par l'utilisateur.
- [ ] Système de connexion sécurisé avec configuration du premier lancement (DOB depuis 1900, Email, Clés API). L'utilisateur Xavier a obligatoirement le rôle "Dieu tout puissant" (Admin global).
- [x] Système de cryptage de grade militaire (Fernet) et de Hashing (Bcrypt) mis en place (Module `auth_manager.py`). <!-- NOUVEAU -->
- [X] Sécurité Légère : Fail2Ban, protection Bruteforce et DDoS. **Blocage total des accès VPN**.
- [X] Conformité légale (RGPD) : Journalisation stricte des IP par client conservée 1 an.
- [ ] Multilinguisme : Adaptation automatique de la langue du site via la géolocalisation de l'IP.
### Phase 5 : Sécurité Financière & Facturation Exacte 💰
<!-- MAJ 18/08/2026 14h30 : Ajout de la contrainte de pré-calcul local des tokens (tiktoken) et validation UI -->
- [ ] Pré-calcul local du nombre de tokens (via `tiktoken`) pour estimer le coût avant envoi. Bloquage et validation utilisateur requise si le coût est > 0. <!-- NOUVEAU -->
- [x] Pré-calcul local du nombre de tokens (via `tiktoken`) pour estimer le coût avant envoi (Module `billing_manager.py`). Bloquage automatique si coût > 0.
- [ ] Interface UI : Affichage du Pop-Up de validation du coût pour l'utilisateur.
- [ ] Cryptage absolu de toutes les données sensibles et bancaires.
- [ ] Module de conversion des devises en temps réel (Taux du jour) pour un affichage transparent.
- [ ] **Utilisateurs Privilégiés (Zéro Marge) :** Xavier, Céline, Anaëlle, Renan et Audric. Autorisation de virements manuels pour la cagnotte.
- [ ] **Marge Commerciale :** Majoration automatique via la formule `Prix_Facture_HT = Cout_API_OpenRouter_HT / 0.85` (soit 15% de marge) pour les comptes externes, prenant en compte le statut auto-entrepreneur (TVA).
- [x] **Marge Commerciale :** Majoration automatique via la formule `Prix_Facture_HT = Cout_API_OpenRouter_HT / 0.85` (soit 15% de marge) implémentée dans le gestionnaire financier.
- [ ] Export comptable Excel (TCD) par utilisateur via Pandas/Openpyxl et archivage PDF automatisé.
### Phase 6 : Nouvelles Capacités IA (Spécialisations & Modèles) 🤖
*Note : L'infrastructure bascule sur OpenRouter pour palier aux décommissionnements constants des autres fournisseurs.*
<!-- MAJ 18/08/2026 14h30 : Ajout de la ligne pour la gestion Multimédia (Image/Video) -->
| Domaine de tâche | Modèle / Moteur | Fournisseur / Hébergement | Rôle principal |
| :--- | :--- | :--- | :--- |
| **Orchestration & Tri** | Qwen 2.5 (3B) | Local (GTX 1650 / Ollama) | Analyse l'intention, gère le chat rapide et route vers la bonne IA |
| **Bureautique & Code** | Llama 3.1 / Qwen 2.5 Coder | OpenRouter API (Gratuit) | Programmation, scripts, macros VBA, mathématiques |
| **Images HD / Fichiers** | Gemini 2.0 Flash / Pro | Google AI Studio | Analyse d'images/vidéos et documents joints |
| **Génération Multimédia** | Stable Diffusion / Flux / Luma | HuggingFace / Fal.ai | Création d'images et vidéos (Text-to-Image / Text-to-Video) | <!-- NOUVEAU -->
### Phase 7 & 8 : Maintenance & Déploiement
<!-- MAJ 18/08/2026 14h30 : Précision sur les Webhooks Gitea et le déploiement NPM -->
- [ ] Script de surveillance de l'espace disque du serveur (Beszel / Psutil) réservé à l'Admin.
- [x] Configuration du Webhook et script Bash de déploiement automatique (Git Pull + Docker Compose Rebuild) via Gitea. <!-- NOUVEAU -->
- [ ] Déploiement du conteneur Aethas38 derrière Nginx Proxy Manager (NPM). <!-- NOUVEAU -->
- [ ] Sauvegarde automatique : Compression du site toutes les 6 heures vers GDrive (`25-BACKUP SITE`), 4 versions conservées.
- [ ] Hébergement sur Gitea/Github des versions "Install Initial" ou "Update" pour Docker. Licence identique sur les deux plateformes.
- [x] Hébergement sur Gitea/Github des versions Docker. Configuration du fichier `docker-compose.yml` et `Dockerfile` réalisée.
- [ ] Création d'un Wiki détaillé multilingue pour l'installation personnelle.
## 📷 Vidéosurveillance & Détection Intelligente
+15
View File
@@ -0,0 +1,15 @@
version: '3.8'
services:
aethas38_app:
container_name: aethas38_app
build: .
restart: unless-stopped
ports:
# Port exposé pour Nginx Proxy Manager
- "5001:5001"
volumes:
# Montage local pour conserver la BDD, les logs et les clés cryptées si le conteneur redémarre
- .:/app
environment:
- TZ=Europe/Paris
+52
View File
@@ -0,0 +1,52 @@
import tiktoken
from modules.logger import log_event
# Tarification indicative par token (À synchroniser avec OpenRouter)
TARIFS_OPENROUTER = {
"meta-llama/llama-3.1-8b-instruct:free": 0.0,
"qwen/qwen-2.5-coder-32b-instruct:free": 0.0,
"google/gemini-2.5-pro": 0.000005 # Exemple de modèle payant
}
def compter_tokens(texte, modele="cl100k_base"):
"""Compte le nombre de tokens en local pour éviter les requêtes API inutiles."""
try:
enc = tiktoken.get_encoding(modele)
return len(enc.encode(texte))
except Exception as e:
log_event("ERROR", "BILLING", f"Erreur lors du comptage des tokens : {e}")
return 0
def estimer_cout_facture(prompt, modele_id):
"""
Calcule le coût de la requête.
Applique la marge stricte de 15% pour générer le Prix Facture HT.
"""
tokens = compter_tokens(prompt)
cout_brut_api = tokens * TARIFS_OPENROUTER.get(modele_id, 0.0)
if cout_brut_api == 0.0:
return 0.0
# Application stricte de votre formule comptable
prix_facture_ht = cout_brut_api / 0.85
return round(prix_facture_ht, 6)
def verifier_et_valider_budget(prompt, modele_id, utilisateur_vip=False):
"""
Fonction appelée avant chaque requête par le Chat Handler.
Si le coût > 0 et que l'utilisateur n'a pas explicitement validé, on stoppe tout.
"""
cout_estime = estimer_cout_facture(prompt, modele_id)
# Les VIP ne paient pas de marge, on affiche juste le coût brut pour information
if utilisateur_vip:
log_event("INFO", "BILLING", f"Utilisateur VIP. Coût brut estimé de la requête : {cout_estime * 0.85} $")
return True, 0.0
if cout_estime > 0.0:
# Lève une exception spécifique que l'interface FastHTML devra attraper pour afficher le pop-up
raise Exception(f"VALIDATION_PAIEMENT_REQUISE|{cout_estime}")
return True, cout_estime