Nous détaillons ici l'installation complète de l'environnement permettant de faire fonctionner l'API.
Il faut au préalable installer le tokenizer spécifique aux décisions de jusitice, jurispacy-tokenizer et juritools, le moteur de pseudonymisation de la Cour de cassation, ainsi que ses dépendances.
Finalement, on installe les dépendances liées à l'API :
cd nlp-pseudonymisation-api
pip install -r requirements.txt
conda deactivate
Pour lancer l'API, on peut utiliser le fichier server.py
:
python server.py
L'API possède deux endpoints principaux. Le endpoint /docs permet de les retrouver et les tester.
Le endpoint effectuant la pseudonymisation est /ner. Celui-ci accepte en entrée un JSON respectant le schéma de données suivant :
class Decision(BaseModel):
idDocument: int
text: str
source: Optional[str] = None
meta: Optional[str] = None
categories: Optional[list[str]] = None
Il renvoie un JSON contenant une liste d'entités ainsi que des mises en doute.
L'autre endpoint permet de calculer la loss d'un document après sa vérification par un agent.
Les exemples de requêtes ci-dessous sont effectués en Python 3.7
{
"entities": [
{
"text": "DUPONT",
"start": 844,
"end": 850,
"label": "personnePhysique",
"source": "NER model"
},
{
"text": "Dupont",
"start": 1227,
"end": 1243,
"label": "professionnelMagistratGreffier",
"source": "NER model"
},
{
"text": "Paris",
"start": 2111,
"end": 2116,
"label": "localite",
"source": "postprocess"
},
],
"check_needed": true,
"checklist": [
"L'entité 'Dupont' appartenant à la classe 'personnePhysique' se retrouve également dans une autre classe, une vérification manuelle est nécessaire.",
]
}
Les tests de l'API sont contenus dans deux fichiers du dossier tests
:
test_app.py
: permet de tester les différents points de terminaison de l'API.
Pour lancer les tests, il faut installer les librairies de développement:
cd nlp-pseudonymisation-api
pip install -r requirements-dev.txt
De plus, pour tester le modèle, il faut préciser le chemin vers le modèle utilisé dans la variable d'environnement MODEL_JURICA
.
export MODEL_JURICA='models/new_categories_model.pt'
Si on souhaite lancer une instance de l'API et la tester directement, on peut simplement utiliser:
cd nlp-pseudonymisation-api
pytest tests
Si on souhaite lancer une instance de l'API pré-existante (python ou container docker), on doit spécifier l'URL de l'API dans une variable d'environnement API_URL
:
export API_URL='http://localhost:8081'
Puis on peut lancer les tests avec:
cd nlp-pseudonymisation-api
python tests/test_app.py
Pour supprimer la variable d'environnement API_URL
, on fait simplement unset API_URL
.