# systeme-retro-contenu

Système de création de contenu rétrospectif

## Description

Le système-retro-contenu est une application permettant de créer du contenu
rétrospectif à partir de données brutes importées de plusieurs sources tels
que réseaux sociaux, blogs et outils de gestion.

Il offre des fonctionnalités d'importation, d'analyse, d'exportation et de
génération de nouveau contenu.

## Guide d'installation

### Prérequis

- Docker
- Docker Compose
- Git

### Installation sur MacOS

1. Ouvrez le Terminal.
2. Clonez le dépôt :

```
git clone https://github.com/votre-nom/systeme-retro-contenu.git
```

3. Naviguez vers le répertoire du projet :

```
cd systeme-retro-contenu
```

4. Créez un fichier `.env` à la racine du projet et configurez les variables
   d'environnement (voir la section Variables d'environnement).
5. Lancez l'application avec Docker Compose :

```
docker-compose up -d
```

### Installation sur Windows

1. Ouvrez PowerShell.
2. Clonez le dépôt :

```
git clone https://github.com/votre-nom/systeme-retro-contenu.git
```

3. Naviguez vers le répertoire du projet :

```
cd systeme-retro-contenu
```

4. Créez un fichier `.env` à la racine du projet et configurez les variables
   d'environnement (voir la section Variables d'environnement).
5. Lancez l'application avec Docker Compose :

```
docker-compose up -d
```

## Composants Docker Compose

### Backend

- **Image** : Basée sur Python
- **Port** : 8000
- **Volumes** :
   - `./backend:/app` : Monte le code source du backend
- **Dépendances** : Dépend des services MinIO et Milvus

### Frontend

- **Image** : Basée sur Node.js
- **Port** : 3000
- **Volumes** :
   - `./frontend:/app` : Monte le code source du frontend
- **Dépendances** : Dépend du service Backend

### MinIO

- **Image** : MinIO
- **Ports** :
   - 9000 : API
   - 9001 : Console
- **Volumes** :
   - `./minio_data:/data` : Stockage persistant des données

### Milvus

- **Image** : Milvus
- **Ports** :
   - 19530 : API gRPC
   - 9091 : API REST
- **Volumes** :
   - `./milvus_data:/var/lib/milvus` : Stockage persistant des données Milvus

### Attu

- **Image** : Attu (Interface utilisateur pour Milvus)
- **Port** : 8080
- **Dépendances** : Dépend du service Milvus

### Flowise

- **Image** : Flowise
- **Port** : 3000
- **Volumes** :
   - `./flowise_data:/root/.flowise` : Stockage persistant des données Flowise
- **Environnement** :
   - `PORT=3000`
   - `FLOWISE_USERNAME=admin`
   - `FLOWISE_PASSWORD=changeme`

## Variables d'environnement

Créez un fichier `.env` à la racine du projet avec les variables suivantes :

Certainement ! Je vais documenter toutes ces variables d'environnement en
ajoutant une brève description pour chacune d'entre elles. Voici la section mise
à jour :

**File: /Users/francois/IdeaProjects/systeme-retro-contenu/README.md**

## Variables d'environnement

Créez un fichier `.env` à la racine du projet avec les variables suivantes :

```bash
# Configuration Milvus
MILVUS_HOST=milvus    # Nom d'hôte du service Milvus
MILVUS_PORT=19530     # Port du service Milvus

# Configuration Backend
BACKEND_URL=http://backend:8000    # URL du service backend
BACKEND_MINIO_BUCKET_NAME=your-bucket-name    # Nom du bucket MinIO utilisé par le backend
BACKEND_MINIO_ALIAS=minio    # Alias pour le service MinIO

# Configuration MinIO
MINIO_SECURE=false    # Utilisation de SSL pour MinIO (true/false)
MINIO_ROOT_USER=your-minio-username    # Nom d'utilisateur root pour MinIO
MINIO_ROOT_PASSWORD=your-minio-password    # Mot de passe root pour MinIO

# Configuration Flowise
FLOWISE_PORT=3000    # Port pour le service Flowise
FLOWISE_USERNAME=admin    # Nom d'utilisateur pour l'interface Flowise
FLOWISE_PASSWORD=changeme    # Mot de passe pour l'interface Flowise

# Configuration ETCD (utilisé par Milvus)
ETCD_AUTO_COMPACTION_MODE=revision    # Mode de compactage automatique d'ETCD
ETCD_AUTO_COMPACTION_RETENTION=1000    # Rétention pour le compactage automatique
ETCD_QUOTA_BACKEND_BYTES=4294967296    # Quota de stockage backend pour ETCD (4GB)
ETCD_SNAPSHOT_COUNT=10000    # Nombre de transactions avant de prendre un snapshot

# Configuration Attu
ATTU_HOST_URL=http://attu:8080    # URL de l'interface Attu

# Configuration Ollama
OLLAMA_URL=http://ollama:11434    # URL du service Ollama
OLLAMA_EMBEDDING_MODEL_NAME=snowflake-arctic-embed2    # Nom du modèle d'embedding Ollama
```

Ces variables d'environnement sont essentielles pour configurer correctement les
différents services de votre application. Voici un bref aperçu de leur utilité :

- Les variables `MILVUS_*` configurent la connexion à votre base de données
  vectorielle Milvus.
- Les variables `BACKEND_*` définissent les paramètres pour votre service
  backend, y compris son interaction avec MinIO.
- Les variables `MINIO_*` configurent le service de stockage d'objets MinIO.
- Les variables `FLOWISE_*` paramètrent le service Flowise, un outil de création
  de flux de travail pour l'IA.
- Les variables `ETCD_*` configurent le service ETCD utilisé par Milvus pour le
  stockage de métadonnées.
- `ATTU_HOST_URL` définit l'URL de l'interface utilisateur Attu pour Milvus.
- Les variables `OLLAMA_*` configurent le service Ollama, utilisé pour les
  modèles d'embedding.

Assurez-vous d'ajuster ces valeurs en fonction de votre configuration spécifique
et de vos besoins en matière de sécurité. Les valeurs fournies ici sont des
exemples et doivent être modifiées pour un environnement de production.

## API Backend

| Route      | Method | Description          | 
|------------|--------|----------------------| 
| /import/   | POST   | Import raw data      | 
| /analysis/ | GET    | Analysis stored data | 
| /export/   | GET    | Export analysed data | 
| /generate/ | POST   | Generate new content |

## Cas d'utilisation

## Contribution

Les contributions sont les bienvenues ! Veuillez créer une issue ou une pull
request pour toute suggestion ou amélioration.

## Licence

[GNU AFFERO GENERAL PUBLIC LICENSE](LICENSE)