← Retour aux projets

Langage naturel

Plateforme SimSem

SimSem est une API FastAPI de calcul de similarité sémantique entre phrases. Le projet combine des métriques natives, des modèles plus avancés comme CamemBERT, un système de plugins et une interface web intégrée pour utiliser le service directement depuis un navigateur.

Vue d'ensemble

L'objectif était de construire une plateforme capable de comparer des phrases selon plusieurs approches, tout en gardant une architecture extensible. Le projet expose des endpoints pour la comparaison simple, le traitement batch par fichier JSON, la liste des métriques disponibles, et propose en parallèle une interface web prête à l'emploi.

  • FastAPI
  • spaCy
  • CamemBERT
  • Plugins
  • Pytest

Ce que le projet montre

  • Conception d'une API propre avec endpoints spécialisés et erreurs structurées.
  • Intégration de métriques NLP à la fois classiques et basées sur des modèles.
  • Création d'un système de plugins pour ajouter des métriques sans casser le coeur de l'application.
  • Capacité à relier back-end technique, interface web et campagne de tests.

Points techniques

  • `GET /metrics` liste les métriques disponibles au démarrage.
  • `POST /similarity` compare deux phrases en fonction d'une ou plusieurs métriques.
  • `POST /similarity/upload` permet de traiter un lot de paires via un fichier JSON.
  • Les plugins sont chargés automatiquement depuis `plugins/metrics/`.
  • Une interface web intégrée évite de passer uniquement par Swagger ou `curl`.

Lancer le projet

Le dépôt est prévu pour fonctionner avec un environnement virtuel `.venv`. Une fois les dépendances installées, l'API se lance avec Uvicorn.

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Le projet comprend aussi des tests ciblés sur les schémas, le registre des métriques, les plugins, l'API et l'interface web.