# đ Traducteur Français â Wolof
SystÚme de traduction automatique neuronale du **français** vers le **wolof**, basé sur un modÚle **MarianMT fine-tuné**, exposé via une **API FastAPI** et une **interface Streamlit**.
---
## đ Structure du projet
```
.
âââ model.py # Classe TranslationModel (chargement & infĂ©rence)
âââ api.py # API REST FastAPI
âââ app.py # Interface utilisateur Streamlit
âââ finetuned_fr_wolof/ # RĂ©pertoire du modĂšle fine-tunĂ© (MarianMT)
âââ traduction-fr-to-wolof.ipynb # notebook d'entrainement
âââ requirements.txt # Liste des dĂ©pendances
âââ evaluation_metrics.json # resulatats de l'evaluation
âââ evaluation_resuls.csv # datasets avec les resultats de l'evaluation
âââ eval.py # scirpt d'evaluation
âââ README.md
```
---
## âïž PrĂ©requis
- Python **3.9+**
- GPU CUDA (optionnel, mais recommandé pour de meilleures performances)
- Le dossier `finetuned_fr_wolof/` contenant le modÚle fine-tuné
### Installation des dépendances
```bash
pip install -r requirements.txt
```
---
## đ§ ModĂšle (`model.py`)
La classe `TranslationModel` encapsule le chargement et l'inférence du modÚle MarianMT.
### ParamĂštres
```
| ParamÚtre | Type | Défaut | Description |
|-----------|------|--------|-------------|
| `text` | `str` | â | Texte source en français |
| `num_beams` | `int` | `4` | Nombre de faisceaux (beam search) â plus Ă©levĂ© = meilleure qualitĂ©, plus lent |
```
### Comportement
- Détecte automatiquement le **GPU** (CUDA) ou repasse sur le **CPU**
- Charge le modĂšle et le tokenizer depuis `finetuned_fr_wolof/`
- Utilise `torch.no_grad()` pour l'inférence (optimisation mémoire)
- Longueur maximale de sortie : **128 tokens**
---
## đ API FastAPI (`api.py`)
### Lancer le serveur
```bash
uvicorn api:app --reload
```
Le serveur démarre sur `
127.0.0.1`.
> Le modÚle est chargé **une seule fois** au démarrage via le mécanisme `lifespan` de FastAPI.
### Endpoints
```
| Méthode | Route | Description |
|---------| âŠ