- Remove progress tracking sections (implemented/upcoming features) - Add comprehensive features section describing system capabilities - Remove TESTING.md and DEVELOPMENT.md (not needed) - Simplify README structure for end users
158 lines
4.8 KiB
Markdown
158 lines
4.8 KiB
Markdown
# Project Agora
|
|
|
|
## Description
|
|
|
|
Project Agora est une plateforme web open-source permettant à plusieurs intelligences artificielles de **collaborer entre elles** pour concevoir la structure complète d'un projet logiciel à partir d'un **prompt utilisateur** ou d'un **document explicatif**.
|
|
|
|
L'objectif est de produire :
|
|
|
|
- Une **architecture logicielle complète**, incluant :
|
|
- Une **hiérarchie de fichiers** structurée pour le projet
|
|
- Une **spécification détaillée** du contenu attendu pour chaque fichier (sans implémentation de code, uniquement une description fonctionnelle et technique)
|
|
- Un **raisonnement justifié** pour chaque choix technique.
|
|
- Des **diagrammes explicatifs** (Mermaid).
|
|
- Une **synthèse finale cohérente** prête à être utilisée comme base de développement.
|
|
|
|
Aucune génération de code direct n'est effectuée : seules des **explications, réflexions et structures** sont produites.
|
|
|
|
---
|
|
|
|
## Objectif
|
|
|
|
Reproduire une **table ronde d'IA spécialistes**, chaque agent IA représentant un rôle spécifique :
|
|
|
|
- Architecte logiciel
|
|
- Développeur backend
|
|
- Développeur frontend
|
|
- Designer UI/UX
|
|
- Data engineer
|
|
- Chef de projet
|
|
- Éventuellement d'autres rôles selon la complexité du prompt.
|
|
|
|
Cependant, l'aspect le plus crucial de ces IA réside dans leur capacité à **échanger, négocier, voire s'opposer** pour déterminer collectivement la meilleure approche à adopter.
|
|
|
|
---
|
|
|
|
## Exemple d'utilisation
|
|
|
|
L'utilisateur entre ceci dans l'interface :
|
|
|
|
> « Je souhaite faire une application de calculatrice scientifique responsive web. »
|
|
|
|
Le système demande alors à plusieurs IA leur point de vue sur :
|
|
|
|
- Le langage ou framework le plus adapté
|
|
- L'organisation du projet (folders, modules)
|
|
- Les fichiers essentiels
|
|
- Les interactions front/back éventuelles
|
|
- Le design minimal (UI/UX conceptuel)
|
|
|
|
Elles discutent pour converger vers un consensus, puis produisent une **fiche conceptuelle du projet** au format structuré (JSON + affichage visuel + diagrammes Mermaid).
|
|
|
|
---
|
|
|
|
## Architecture technique
|
|
|
|
### Stack principal
|
|
|
|
- **Frontend**: Vue.js 3 + Vite
|
|
- **Backend**: Node.js + Express
|
|
- **AI Layer**: Multi-agent système avec Mistral API
|
|
- **Storage**: SQLite + JSON backup
|
|
- **Diagrammes**: Mermaid.js
|
|
|
|
### Architecture globale
|
|
|
|
```mermaid
|
|
graph TD
|
|
A[Frontend: Vue.js 3] -->|User Prompt| B[Backend: Node.js]
|
|
B -->|Orchestration| C[AI Layer: Mistral Agents]
|
|
C -->|Debate Data| D[Storage: SQLite/JSON]
|
|
C -->|Diagram Specs| E[Mermaid Engine]
|
|
E -->|SVG/Render| A
|
|
D -->|History| A
|
|
```
|
|
|
|
---
|
|
|
|
## Fonctionnalités
|
|
|
|
### Système multi-agents IA
|
|
- **4 agents spécialisés** : Architecte logiciel, Ingénieur backend, Ingénieur frontend, Designer UI/UX
|
|
- **Sélection automatique** des agents pertinents selon le contexte du projet
|
|
- **Débat collaboratif** : Les agents échangent et négocient pour converger vers la meilleure solution
|
|
- **Système de consensus** avec vote pondéré (l'architecte a une voix prépondérante)
|
|
- **Intégration Mistral AI** pour génération de réponses intelligentes et contextuelles
|
|
|
|
### Interface et visualisation
|
|
- **Saisie de prompt** décrivant le projet souhaité
|
|
- **Visualisation en temps réel** des échanges entre agents via WebSocket
|
|
- **Affichage structuré** des propositions avec justifications et niveaux de confiance
|
|
- **Rendu automatique** de diagrammes Mermaid intégrés dans les réponses
|
|
- **Indicateurs de progression** et statuts du débat
|
|
|
|
### Architecture et stockage
|
|
- **API REST** pour gestion des débats et récupération des résultats
|
|
- **WebSocket** pour streaming temps réel des réponses des agents
|
|
- **Base SQLite** pour persistance des débats et historique
|
|
- **Gestion d'erreurs** avec fallbacks et réponses de secours
|
|
|
|
---
|
|
|
|
## Démarrage rapide
|
|
|
|
### Prérequis
|
|
|
|
- Node.js 18+
|
|
- Clé API Mistral AI ([obtenir ici](https://console.mistral.ai/))
|
|
|
|
### Installation
|
|
|
|
**1. Backend**
|
|
```bash
|
|
cd backend
|
|
npm install
|
|
cp .env.example .env
|
|
# Éditer .env et ajouter votre MISTRAL_API_KEY
|
|
npm start
|
|
```
|
|
|
|
**2. Frontend**
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
**3. Accéder à l'application**
|
|
- Frontend: http://localhost:5173
|
|
- Backend API: http://localhost:3000
|
|
- WebSocket: ws://localhost:3000
|
|
|
|
---
|
|
|
|
## Flux utilisateur
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant User
|
|
participant Orchestrator
|
|
participant AI_Architect
|
|
participant AI_Designer
|
|
participant AI_Engineer
|
|
User->>Orchestrator: Prompt project
|
|
Orchestrator->>AI_Architect: Generate approach
|
|
Orchestrator->>AI_Designer: Discuss UI/UX
|
|
Orchestrator->>AI_Engineer: Suggest modules
|
|
AI_Architect-->>Orchestrator: Architecture proposal
|
|
AI_Designer-->>Orchestrator: Interface ideas
|
|
AI_Engineer-->>Orchestrator: Technical design
|
|
Orchestrator-->>User: Final structured response + diagram
|
|
```
|
|
|
|
---
|
|
|
|
## Licence
|
|
|
|
MIT License — Open-source
|