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