Référence API
AnonDocs fournit une API RESTful pour anonymiser du texte et des documents. Vous pouvez interagir avec l'API directement via des requêtes HTTP ou utiliser notre SDK officiel pour TypeScript/JavaScript.
SDK (Recommandé)
La façon la plus simple d'utiliser AnonDocs est via notre SDK officiel.
Installation
npm install @aismarttalk/anondocs-sdk
Démarrage rapide
import { AnonDocsClient } from '@aismarttalk/anondocs-sdk';
// Initialiser le client
const client = new AnonDocsClient({
baseUrl: 'http://localhost:3000'
});
// Anonymiser du texte
const result = await client.anonymizeText(
'Je m\'appelle Jean Dupont et mon email est jean@exemple.fr'
);
console.log(result.anonymizedText);
// Sortie: "Je m'appelle [NOM] et mon email est [EMAIL]"
console.log(result.piiDetected);
// Sortie: { names: ['Jean Dupont'], emails: ['jean@exemple.fr'], ... }
Fonctionnalités du SDK
- 🔒 Anonymisation axée sur la confidentialité
- 📄 Support des documents (PDF, DOCX, TXT)
- ✨ NOUVEAU dans v1.2.0 : Préservation du formatage DOCX avec fichiers téléchargeables
- 🔄 NOUVEAU dans v1.2.0 : Mappages précis des remplacements de DCP
- 🌊 Streaming avec mises à jour en temps réel
- 🎯 Support complet de TypeScript
- 🚀 Fonctionne avec Node.js et navigateur
- ⚡ Sélection automatique du fournisseur
Méthodes du SDK
Anonymiser du texte
const result = await client.anonymizeText('Votre texte ici', {
provider: 'ollama' // Optionnel, omettre pour utiliser la valeur par défaut
});
console.log(result.anonymizedText);
console.log(result.piiDetected);
console.log(result.replacements); // NOUVEAU dans v1.2.0 - mappages précis des DCP
Anonymiser un document
Navigateur :
const fileInput = document.querySelector('input[type="file"]');
const file = fileInput.files[0];
const result = await client.anonymizeDocument(file);
// NOUVEAU dans v1.2.0 : Les fichiers DOCX retournent une URL de téléchargement
if (result.downloadUrl) {
// Fichier DOCX avec formatage préservé
window.open(result.downloadUrl); // Télécharger le DOCX formaté
console.log('Original :', result.originalFilename);
console.log('Anonymisé :', result.filename);
} else {
// PDF ou TXT - texte brut uniquement
console.log(result.anonymizedText);
}
Node.js :
import { readFileSync } from 'fs';
const fileBuffer = readFileSync('./document.docx');
const result = await client.anonymizeDocument(fileBuffer);
// Télécharger le DOCX formaté (v1.2.0+)
if (result.downloadUrl) {
const response = await fetch(result.downloadUrl);
const buffer = await response.arrayBuffer();
writeFileSync(result.filename, Buffer.from(buffer));
}
Anonymisation en streaming
Obtenez des mises à jour de progression en temps réel :
await client.streamAnonymizeText(longText, {
onProgress: (event) => {
console.log(`${event.progress}% - ${event.message}`);
},
onComplete: (result) => {
console.log('Terminé !', result.anonymizedText);
},
onError: (error) => {
console.error('Erreur :', error.message);
}
});
Vérification de l'état
const health = await client.health();
// Retourne : { status: 'ok', timestamp: '2025-11-04T...' }
Documentation du SDK
Pour la documentation complète du SDK, visitez : package npm
API REST
Si vous préférez utiliser l'API REST directement, voici les points de terminaison disponibles.
URL de base
http://localhost:3000
Points de terminaison
Anonymiser du texte
POST /api/anonymize
Anonymise une entrée de texte brut.
Corps de la requête :
{
"text": "Votre texte à anonymiser",
"provider": "ollama"
}
Réponse :
{
"success": true,
"data": {
"anonymizedText": "Texte anonymisé",
"piiDetected": {
"names": ["John Doe"],
"emails": ["john@example.com"],
"phoneNumbers": [],
"addresses": [],
"dates": [],
"organizations": [],
"other": []
},
"replacements": [
{"original": "John Doe", "anonymized": "[NOM]"},
{"original": "john@example.com", "anonymized": "[EMAIL]"}
],
"chunksProcessed": 1,
"wordsPerMinute": 450,
"processingTimeMs": 1234
}
}
Anonymiser un document
POST /api/document
Téléverse et anonymise des fichiers PDF, DOCX ou TXT.
Requête : Données de formulaire multipart
file: Le fichier du documentprovider: (optionnel) "ollama" ou "openai"
Réponse (fichiers DOCX) :
{
"success": true,
"data": {
"anonymizedText": "Texte anonymisé",
"piiDetected": { ... },
"replacements": [ ... ],
"chunksProcessed": 1,
"wordsPerMinute": 450,
"processingTimeMs": 1234,
"downloadUrl": "http://localhost:3000/api/document/download/anonymized-123.docx",
"filename": "anonymized-123.docx",
"originalFilename": "original.docx"
}
}
Réponse (fichiers PDF/TXT) : Même format que l'anonymisation de texte (sans downloadUrl)
Anonymisation de texte en streaming
POST /api/stream/anonymize
Anonymisation en streaming avec mises à jour de progression en temps réel utilisant les Server-Sent Events (SSE).
Corps de la requête :
{
"text": "Votre texte à anonymiser",
"provider": "ollama"
}
Réponse : text/event-stream avec événements de progression
Anonymisation de document en streaming
POST /api/stream/document
Anonymisation de document en streaming avec mises à jour de progression en temps réel.
Requête : Données de formulaire multipart
file: Le fichier du documentprovider: (optionnel) "ollama" ou "openai"
Réponse : text/event-stream avec événements de progression
Vérification de l'état
GET /health
Vérifie l'état de santé de l'API.
Réponse :
{
"status": "ok",
"timestamp": "2024-11-03T12:00:00.000Z"
}
Réponses d'erreur
{
"success": false,
"error": "Message d'erreur"
}
Options de fournisseur
ollama: Utiliser l'instance Ollama locale (par défaut)openai: Utiliser une API compatible OpenAI (vLLM, LM Studio, etc.)