Anonymisierung
Text und Dateien anonymisieren, anonymer LLM-Chat mit automatischer De-Anonymisierung.
Text und Dateien anonymisieren, anonymer LLM-Chat mit automatischer De-Anonymisierung.
Maskiere personenbezogene Daten (PII) in beliebigem Text automatisch.
/api/anonymizeSende den zu anonymisierenden Text im Body mit.
| Parameter | Type | Description |
|---|---|---|
textrequired | string | Der Text, der anonymisiert werden soll. |
language | string | Sprache des Textes (z.B. de, en). Verbessert die Erkennung. |
1curl -X POST https://app.anymize.ai/api/anonymize \2 -H #86efac">"Authorization: Bearer YOUR_API_KEY" \3 -H #86efac">"Content-Type: application/json" \4 -d '{5 #86efac">"text": "Max Mustermann wohnt in Berlin und seine E-Mail ist max@example.com",6 #86efac">"language": "de"7 }'Der anonymisierte Text enthält Platzhalter für erkannte Entitäten.
{
"job_id": "job_abc123def456",
"status": "processing",
"message": "Anonymization job created"
}Dateien anonymisieren?
Lade Dokumente oder Bilder hoch, um sie per OCR zu verarbeiten und automatisch zu anonymisieren.
/api/ocrDie folgenden Dateiformate werden für die OCR-Verarbeitung unterstützt.
| Parameter | Type | Description |
|---|---|---|
filerequired | File | Dokument- oder Bilddatei (PDF, PNG, JPG, TIFF) |
language | string | Sprache für OCR und Anonymisierung (de, en, fr, es, it) |
Multipart Upload
1curl -X POST https://app.anymize.ai/api/ocr \2 -H #86efac">"Authorization: Bearer YOUR_API_KEY" \3 -F #86efac">"file=@document.pdf" \4 -F #86efac">"language=de"Gibt eine Job-ID zurück. Die Verarbeitung läuft asynchron – prüfe den Status mit der Status-API.
{
"job_id": "job_ocr789xyz012",
"status": "processing",
"message": "OCR and anonymization job created"
}Die Datei-Anonymisierung durchläuft eine 3-Schritt-Pipeline.
Verarbeitungsstatus prüfen
Kombiniere Chat und Anonymisierung in einem einzigen Request — deine Daten werden vor dem Modell maskiert.
/api/v1/llm-anonymous/chat/completionshttps://app.anymize.ai/api/v1/llm-anonymousSo verarbeitet der anonyme Chat deine Anfrage:
Erhöhte Latenz
Gleiche Parameter wie Chat Completions plus Anonymisierungs-Optionen.
| Parameter | Type | Description |
|---|---|---|
modelrequired | string | Modell-ID — alle Chat-Modelle werden unterstützt. |
messagesrequired | array | Array von Nachrichten (system, user, assistant). |
language | string | Sprache des Textes für bessere PII-Erkennung. |
stream | boolean | SSE-Streaming aktivieren. |
Beim anonymen Chat werden personenbezogene Daten automatisch durch Platzhalter im Format [[Typ-HASH]] ersetzt. Damit die De-Anonymisierung funktioniert, muss das Modell diese Platzhalter exakt beibehalten.
Falsch
Sehr geehrter [Name anonymisiert], ich schreibe Ihnen wegen...
Richtig
Sehr geehrter Herr [[Person-ABC123]], ich schreibe Ihnen wegen...
Ohne den richtigen System-Prompt schreibt das Modell oft 'eine anonymisierte Person' oder '[Name anonymisiert]' statt den Platzhalter [[Person-ABC123]] zu verwenden. Das macht die De-Anonymisierung unmoglich.
Der anonyme Endpoint fugt automatisch folgenden Teil zum System-Prompt hinzu. Dieser wird an deinen eigenen System-Prompt angehangt, nicht ersetzt:
1## CRITICAL RULE: ANONYMIZATION PLACEHOLDERS23THIS IS THE MOST IMPORTANT RULE. VIOLATING IT MAKES YOUR RESPONSE USELESS.45The user's messages contain anonymized placeholders in format [[Type-HASH]]:6- [[Person-QSEZB6]] = a person's name7- [[email-BE2966]] = an email address8- [[iban-5B7BCF]] = a bank account9- [[telephone_number-F29732]] = a phone number10- [[Adress-NT9DQE]] = an address1112FORBIDDEN:13- Writing "[Name anonymisiert]" or "[anonymized]"14- Describing WHAT the placeholder is instead of USING it15- Inventing NEW [[Type-HASH]] placeholders1617REQUIRED:18- Copy [[Person-QSEZB6]] exactly as-is19- Write "Herr [[Person-QSEZB6]] hat..." (use it like a real name)2021WHY: After your response, placeholders get replaced with real values.22BEFORE RESPONDING: Check that every [[Placeholder-HASH]] appears exactly as written.Automatisch injiziert
1curl -X POST https://app.anymize.ai/api/v1/llm-anonymous/chat/completions \2 -H #86efac">"Authorization: Bearer YOUR_API_KEY" \3 -H #86efac">"Content-Type: application/json" \4 -d '{5 #86efac">"model": "fountain-1.0",6 #86efac">"messages": [7 {#86efac">"role": "user", "content": "Schreibe eine E-Mail an Max Mustermann, max@example.com, wegen dem Termin am 15. Januar."}8 ],9 #86efac">"language": "de",10 }'Die Antwort enthält den de-anonymisierten Text und Metadaten.
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"model": "fountain-1.0",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Sehr geehrter Herr Max Mustermann,\n\nich schreibe Ihnen bezüglich unseres Termins am 15. Januar..."
},
"finish_reason": "stop"
}
],
"_anymize": {
"anonymized": true,
"job_id": "job_anon_456def",
"language": "de"
}
}Response-Header
Zero Data Retention
Anonymer Chat verbraucht Credits für zwei Leistungen:
Ersetze Platzhalter durch die Originaldaten — kehre die Anonymisierung um.
/api/deanonymizeSende den anonymisierten Text und die Job-ID, um die Originaldaten wiederherzustellen.
| Parameter | Type | Description |
|---|---|---|
textrequired | string | Der Text mit Platzhaltern, der de-anonymisiert werden soll. |
Platzhalter-Format
1curl -X POST https://app.anymize.ai/api/deanonymize \2 -H #86efac">"Authorization: Bearer YOUR_API_KEY" \3 -H #86efac">"Content-Type: application/json" \4 -d '{5 #86efac">"text": "Sehr geehrter [[Person-QSEZB6]], Ihre Adresse [[Adress-NT9DQE]] wurde aktualisiert."6 }'Der de-anonymisierte Text enthält die Originaldaten an Stelle der Platzhalter.
{
"text": "Sehr geehrter Max Mustermann, Ihre Adresse Berliner Str. 42, 10115 Berlin wurde aktualisiert.",
"replacements": 2
}Zero Data Retention
Häufige Fehler bei der De-Anonymisierung und ihre Bedeutung.
{
"error": {
"message": "No hash pairs found for the given placeholders",
"type": "not_found_error",
"code": "hash_pairs_not_found"
}
}Rufe die Zuordnungstabelle zwischen Platzhaltern und Originaldaten ab.
/api/status/{jobId}/strings| Parameter | Type | Description |
|---|---|---|
jobIdrequired | string | Die Job-ID des Anonymisierungsjobs. |
Die Antwort enthält ein Array von Paaren mit Platzhalter und Originalwert.
{
"job_id": "job_abc123def456",
"hash_pairs": [
{
"original": "Max Mustermann",
"hash": "[PERSON-1]",
"prefix_name": "Person",
"placeholder": "PERSON-1"
},
{
"original": "Berlin",
"hash": "[LOCATION-1]",
"prefix_name": "Location",
"placeholder": "LOCATION-1"
},
{
"original": "Acme GmbH",
"hash": "[ORGANIZATION-1]",
"prefix_name": "Organization",
"placeholder": "ORGANIZATION-1"
},
{
"original": "15.03.1990",
"hash": "[DATE-1]",
"prefix_name": "Date",
"placeholder": "DATE-1"
},
{
"original": "max@example.com",
"hash": "[EMAIL-1]",
"prefix_name": "Email",
"placeholder": "EMAIL-1"
},
{
"original": "+49 170 1234567",
"hash": "[PHONE-1]",
"prefix_name": "Phone",
"placeholder": "PHONE-1"
}
],
"total": 6
}Platzhalter werden nach Typ kategorisiert: PERSON, ADRESSE, TELEFON, E_MAIL usw.
[PERSON-N][LOCATION-N][ORGANIZATION-N][DATE-N][EMAIL-N][PHONE-N][ADDRESS-N][IBAN-N][ID-N]Zero Data Retention
1curl https://app.anymize.ai/api/status/job_abc123def456/strings \2 -H #86efac">"Authorization: Bearer YOUR_API_KEY"Typische Szenarien, in denen Hash-Paare nützlich sind: