Refactorisation du code, correction des quelques bugs, Clear de Readme principal, Ajout de l'entrée utilisateur pour la modification du nom de projet

This commit is contained in:
Chevallier
2026-07-17 17:12:25 +02:00
parent 9d464fb261
commit 75e035cc82
12 changed files with 248 additions and 411 deletions

View File

@@ -1,52 +1,67 @@
# ARC Backend
Backend minimal pour le projet ARC :
- API FastAPI
- orchestration LangGraph
- agents PM / Dev / QA
- interface Chainlit
- intégration future Qdrant / Redis / vLLM
## Organisation du projet
## Installation
### Étape 0 : Préparation de l'environnement du projet
Tâches :
- Créer backend minimal
- Créer modèle de données simple
- langGraph
___
### Étape 1 : Analyse du Besoin & Qualification (Agent PM / Business Analyst)
- L'utilisateur entre une demande en langage naturel.
- **Agent 1 (PM)** analyse la demande. Si des informations manquent pour coder, il pose des questions clarificatrices à l'utilisateur jusqu'à obtenir un cahier des charges complet.
- **Vérification BDD :** Avant de coder, le système cherche dans une base de données vectorielle si un projet similaire existe déjà.
- *Si oui :* On propose le lien à l'utilisateur. Si l'utilisateur valide, le workflow s'arrête ici.
- *Si non (ou si l'utilisateur rejette l'existant) :* On passe à l'étape 2.
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
```
Outils :
- LangGraph -> LangGraph est adapté aux workflows multiagents avec états, transitions conditionnelles, persistance et humanintheloop
- Python -> backend, les agents, les appels LLM, les tests, les embeddings et les intégrations + compatible avec autres tools
- Pydantic AI / Pydantic -> forcer lAgent PM à produire un cahier des charges structuré
- Chainlit -> adapté aux interfaces conversationnelles
BDD :
- Qdrant (optionnel) -> adapté à la recherche sémantique + stocker les embeddings de projets/scripts
- Snowflake Arctic Embed 2.0 (optionnel) -> modèle dembedding
- Redis (optionnel) -> cache de recherche ;sessions utilisateur ;état temporaire ;verrouillage dun workflow ;file dattente simple
___
### Étape 2 : Génération de Code (Agent Développeur)
- **Agent 2 (Dev)** reçoit le cahier des charges validé et génère l'arborescence et le code source du projet.
## Lancer Chainlit
Outils :
- LangGraph -> LangGraph est adapté aux workflows multiagents avec états, transitions conditionnelles, persistance et humanintheloop
- Mistral ou Gemma (modèle trop généraliste/léger->tache simple) -> DeepSeek Coder/Qwen2.5
- vLLM -> meilleur choix quOllama pour une plateforme plus industrialisée. Llama.cpp modèles quantifiés sur CPU ou machines modestes + moins adapté à une plateforme multiutilisateur
- Pydantic
- Gitea
___
### Étape 3 : Tests et Assurance Qualité (Agent QA / Testeur)
- **Agent 3 (QA)** récupère le code de l'Agent 2. Il doit exécuter le code (via une sandbox sécurisée) ou générer/exécuter des tests unitaires pour vérifier la qualité, la sécurité et le fonctionnement.
- **Boucle de correction automatique (Loop 1) :** Si les tests échouent, l'Agent 3 renvoie les erreurs à l'Agent 2 avec les logs. L'Agent 2 corrige et renvoie à l'Agent 3. Cette boucle tourne au maximum 3 fois jusqu'à ce que le code soit "vert".
- **EXTENSION FUTURE** si les tests échouent 3 fois, envoyé à une IA plus puissante.
```bash
chainlit run chainlit_app.py --port 8001
```
Outils :
- Docker
- Semgrep -> règles de sécurité et qualité plus larges
Boucle correction :
- world model (optionnel)
- LangGraph
- Pydantic
___
### Étape 4 : Livraison & Feedback Utilisateur (Boucle Humaine)
- Une fois le code validé par l'Agent 3, il est présenté à l'utilisateur.
- L'utilisateur teste et valide.
- *Si Validé :* Le projet est sauvegardé dans la base de données (pour la recherche de l'Étape 1) et livré (ex: zip ou dépôt GitHub).
- *Si Refusé :* L'utilisateur indique ce qui ne va pas. Tout le contexte (code actuel + retours) est renvoyé à l'**Étape 1** pour réanalyse, et le cycle recommence.
## Lancement auto
Outils :
- Chainlit
- Gitea
___
### Étape finale :
```bash
python orchestrator.py
```
## Arrêt propre
```bash
python stop_project.py
```
# Logs
```bash
docker compose -p arc-app logs -f
docker compose -p arc-ai logs -f
```
## Tests
```bash
python .\tests\test_snowflake.py
docker compose exec app python tests/test_qdrant.py
```
API dispo sur :
- http://127.0.0.1:8001
Tâches :
- Tests fonctionnels de bout en bout
- Sécurité minimale
- Documentation finale
- Présentation