164 lines
4.4 KiB
Markdown
164 lines
4.4 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 implémentées ✅
|
|
|
|
- ✅ Saisie d'un texte décrivant le projet
|
|
- ✅ Sélection automatique des agents IA selon le contexte
|
|
- ✅ Visualisation des échanges IA en temps réel
|
|
- ✅ Intégration Mistral AI pour génération de réponses
|
|
- ✅ WebSocket pour mises à jour temps réel
|
|
- ✅ Système de consensus avec vote pondéré
|
|
- ✅ Rendu de diagrammes Mermaid
|
|
- ✅ Stockage SQLite des débats et réponses
|
|
|
|
## Fonctionnalités à venir
|
|
|
|
- [ ] Support upload de documents PDF
|
|
- [ ] Exportation JSON, Markdown ou PDF
|
|
- [ ] Thème clair/sombre
|
|
- [ ] Historique des débats précédents
|
|
|
|
---
|
|
|
|
## 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
|
|
```
|
|
|
|
---
|
|
|
|
## Guide de développement
|
|
|
|
Consultez [DEVELOPMENT.md](./DEVELOPMENT.md) pour les détails complets sur :
|
|
- Structure du projet
|
|
- API endpoints
|
|
- Architecture des agents IA
|
|
- Configuration WebSocket
|
|
|
|
---
|
|
|
|
## Licence
|
|
|
|
MIT License — Open-source
|