web app Flask + ollama pour traduire le français vers des langues peu prises en charge par des traducteurs classique (darija, wolof, tahitien)
# Linguao
Application de traduction français → darija / wolof / tahitien, propulsée par Ollama en few-shot prompting.
## Structure
```
linguao/
├── backend/
│ ├── app.py # API Flask (/translate, /languages, /health)
│ ├── translator.py # sélection d'exemples + prompt few-shot + appel Ollama
│ ├── translate_exemples.json # base d'exemples (25 phrases par langue)
│ └── requirements.txt
└── frontend/
├── index.html
├── style.css
├── script.js
├── manifest.json # PWA installable
└── sw.js
```
## Prérequis
- Ollama installé
- Python 3.9+
## Installation
### 1. Récupérer le projet
```bash
git clone git@github.com:splint314/linguao.git
cd linguao
```
### 2. Installer un modèle Ollama
```bash
ollama pull aya:8b
```
Voir la section Choix du modèle plus bas si ta machine est modeste.
### 3. Installer les dépendances du backend
Debian/Ubuntu bloque `pip install` au niveau système (PEP 668) : il faut passer par un environnement virtuel.
```bash
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
## Lancer le projet
Il faut 3 terminaux ouverts en même temps.
```bash
# Terminal 1 — Ollama (si pas déjà lancé en service)
ollama serve
# Terminal 2 — Backend
cd backend
source venv/bin/activate # à refaire à chaque nouveau terminal
python app.py
# Terminal 3 — Frontend
cd frontend
python3 -m http.server 8000
```
Ouvre ensuite **
http://localhost:8000** dans le navigateur.
Sur mobile, ouvre cette même URL puis "Ajouter à l'écran d'accueil" pour installer l'app (PWA).
### Vérifier que ça tourne
```bash
curl
localhost # doit renvoyer {"status": "ok"}
curl
localhost # doit lister darija/wolof/tahitien
```
## Choix du modèle
Le modèle est configuré via `MODEL_NAME` dans `backend/translator.py`.
- **`aya:8b`** (Cohere Aya, ~5 Go) : spécifiquement entraîné pour le multilingue et les langues peu dotées, meilleur choix qualité. Demande …