animetix-web / ARCHITECTURE.md
MissawB's picture
Upload folder using huggingface_hub
072bcf7 verified
|
Raw
History Blame Contribute Delete
5.93 kB
# 🏗️ Architecture & Fonctionnalités : Animetix
Ce document détaille les choix de conception et l'implémentation technique du projet **Animetix**.
## 1. Architecture du Système IA
Animetix repose sur une architecture **RAG 2.0 (Retrieval-Augmented Generation)** avancée, divisée en trois couches :
### A. Couche de Représentation (Embeddings)
* **Modèle** : `paraphrase-multilingual-mpnet-base-v2` quantifié en **INT8**.
* **Espace Latent** : Les œuvres sont projetées dans un espace à 768 dimensions. La quantification dynamique réduit l'empreinte RAM de 450 Mo à ~120 Mo sans perte de précision.
* **Vector Database** : **ChromaDB** avec indexation HNSW pour des recherches de similarité en millisecondes.
### B. Couche de Raisonnement (Agentic AI)
* **Pattern ReAct** : L'IA ne génère pas simplement du texte, elle utilise une boucle *Thought -> Action -> Observation*.
* **Tooling** : L'agent a accès à ChromaDB (mémoire sémantique), Neo4j (mémoire logique) et à la base JSON (faits bruts).
* **Reranking** : Utilisation de `BGE-Reranker-Base` pour affiner le top 10 des résultats de recherche et garantir un score de 100% indiscutable.
### C. Couche Relationnelle (Knowledge Graph)
* **Neo4j** : Stocke les relations entre les œuvres, les studios, les auteurs et les micro-tags générés par LLM.
* **Utilité** : Permet à l'IA d'expliquer *pourquoi* deux œuvres se ressemblent (ex: "Même studio de production").
## 2. Modes de Jeu & Innovation
### Solo
1. **Animetix Classic** : Recherche sémantique pure. Score de 0 à 100 basé sur la distance cosinus.
2. **Emoji Decode** : L'IA traduit un synopsis en une série de 5 emojis complexes.
3. **Animinator (Oracle)** : L'utilisateur pose des questions à l'IA. L'IA utilise son système d'agent pour vérifier ses connaissances avant de répondre.
4. **Akinetix (Devin)** : L'inverse. L'IA pose des questions stratégiques pour réduire le cercle des candidats dans ChromaDB.
5. **Le Paradoxe** : Test de logique. Trouver l'intrus parmi 3 titres grâce à l'analyse thématique du LLM.
### Social (Multijoueur)
* **WebSockets** : Utilisation de **Django Channels** pour des salons de jeux instantanés.
* **Undercover Online** : L'IA trouve deux termes sémantiquement proches pour tromper les joueurs.
### Créativité
* **La Forge de l'Imaginaire** : Fusion de deux univers. Utilise un LLM pour le scénario et le modèle **Flux.1-schnell** pour générer une illustration unique.
## 3. Flux de Données & Intégration
L'architecture est conçue pour être "data-driven" avec une boucle de rétroaction continue entre l'utilisateur et les modèles d'IA.
### A. Cycle d'Ingestion (Data Pipeline)
1. **Ingestion** : Dagster exécute des scripts d'ingestion (AniList/Jikan) stockant les données brutes dans `data/raw`.
2. **Raffinement & Filtrage** : Les données sont nettoyées et filtrées selon des critères de popularité/qualité.
3. **Vectorisation** : Les entités (animes, mangas, personnages) sont transformées en embeddings et stockées dans **ChromaDB**.
4. **Génération de Graphe** : Les relations sont injectées dans **Neo4j** pour permettre le raisonnement logique.
### B. Boucle de Rétroaction RLHF (Backend -> ML)
Cette boucle permet d'améliorer l'IA en fonction des interactions réelles :
1. **Collecte (Backend)** : Django enregistre les feedbacks via `AIFeedback` et les sessions de jeu via `GameplaySession`.
2. **Export (Port/Adapter)** : La commande Django `export_rlhf_data` (appelée par Dagster) transforme ces entrées SQL en fichiers JSON.
3. **Préparation TRL** : L'asset Dagster `trl_ready_dataset` convertit les feedbacks en paires *Chosen/Rejected* (DPO format).
4. **Fine-Tuning** : Les modèles sont ré-entraînés sur ces nouvelles données pour affiner leur comportement "Otaku".
### C. Inférence & Consommation (Brain API)
- Le backend communique avec la **Brain API** pour toutes les tâches de génération.
- La Brain API utilise les index ChromaDB et Neo4j mis à jour par le pipeline Dagster pour ses recherches RAG.
## 4. Organisation du Projet
Le projet suit une structure organisée pour respecter les principes de l'**Architecture Hexagonale** et faciliter la maintenance :
- **`core/`** : Le **Domaine**. Contient la logique métier pure et l'intelligence centrale (`brain.py`). Ce dossier est indépendant des frameworks externes.
- **`backend/`** : L'**Adapteur Driving**. Application Django gérant l'interface utilisateur, les APIs et la logique de jeu.
- **`pipeline/`** : L'**Adapteur Infrastructure**. Orchestration Dagster pour l'ingestion et le traitement des données.
- **`infra/`** : Configurations système et déploiement (`supervisord`, `prometheus`, `docker`).
- **`scripts/`** : Utilitaires de lancement, de maintenance et d'entraînement.
- **`data/`** : Stockage des données à différents stades (brut, processe, modèles, vecteurs).
- **`logs/`** : Centralisation des journaux d'exécution.
## 5. Infrastructure & MLOps
* **Pipeline de Données** : Orchestrée par **Dagster**. Gère l'ingestion incrémentale (AniList, IGDB, TMDB).
* **MLOps & RLHF** : Collecte des feedbacks utilisateurs (AIFeedback) pour créer des datasets d'entraînement futurs.
* **Automatisation Asynchrone** : **Celery + Redis** déportent les calculs lourds (génération d'images) hors du cycle de requête HTTP.
* **Observabilité** :
* **Prometheus** : Collecte des métriques de performance.
* **Grafana** : Tableaux de bord de santé du système.
* **Sentry** : Monitoring des erreurs en temps réel.
## 4. Interprétabilité
* **Visualisation 3D** : Utilisation de **UMAP** pour projeter l'espace latent en 3 dimensions. Cela permet de visualiser les clusters thématiques (ex: le groupe des animes de sport vs les romances).
---
*Document produit pour Animetix - Architecture Version 2.0*