Aller au contenu principal

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 document
  • provider: (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 document
  • provider: (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.)
Proudly made byAI SmartTalkAI SmartTalk