Native PII-API v2
Personenbezogene Daten in Text, Tabellen, JSON, Transkripten, Bildern und Dokumenten mit einem Vertrag erkennen, schützen und wiederherstellen.
Derselbe Anfrage-Body funktioniert mit der gehosteten API, der Sandbox und einer Installation in Ihrem eigenen Cluster. Die Offline-Edition bedient die native API v1, bis ihr Image v2 enthält. Die v1-Routen und die Verträge für Azure, AWS und Google bleiben verfügbar.
Mit den Fähigkeiten beginnen
Lesen Sie die Fähigkeiten einmal beim Start. Sie nennen die Modelle, Sprachen, Eingabearten, Stufen und Grenzen Ihrer Bereitstellung.
export SHINRAI_API_KEY=shr_live_...
curl -s https://api.shinrai.innovius.io/v2/capabilities -H "Authorization: Bearer $SHINRAI_API_KEY"
Jede Eingabeart senden
Ein einfacher Text braucht keine Hülle. Senden Sie eine Textdatei oder ein Bild direkt als Anfrage-Body und die Optionen im Query-String.
| Eingabe | So senden Sie sie | Hinweise |
|---|---|---|
| Text | {"text": "..."} oder text/plain | JSON oder die Rohdatei senden |
| Tabellen | "kind": "table" | Spalten und Zeilen |
| JSON | "kind": "json" | Alle Zeichenketten des Werts |
| Transkripte | "kind": "transcript" | Formen und Wortatome mit Zeitangaben |
| Seiten | "kind": "page" | Text plus Wortboxen aus Ihrer eigenen OCR oder der PDF-Textebene |
| Bilder | image/png, image/jpeg, image/bmp, image/tiff, image/webp | Bis 6 MiB: OCR, Pixelboxen pro Entität und das geschwärzte Bild |
| Dokumente | POST /v2/jobs | PDF und DOCX über einen Job (Beta) |
curl -s https://api.shinrai.innovius.io/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" -d '{"text": "Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"}'curl 'https://azure.api.shinrai.innovius.io/language/:analyze-text?api-version=2023-04-01' \
-H "Ocp-Apim-Subscription-Key: $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"PiiEntityRecognition","analysisInput":{"documents":[{"id":"1","language":"en","text":"Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"}]},"parameters":{"modelVersion":"latest","stringIndexType":"Utf16CodeUnit"}}'Kompatibilitäts-APIs begrenzen, was ShinrAI zurückgeben kann. Für volle Qualität verwenden Sie die native PII-API v2.
# Once: create SigV4 credentials with your ShinrAI key
# curl -X POST https://aws.api.shinrai.innovius.io/providers/aws/credentials -H "Authorization: Bearer $SHINRAI_API_KEY"
import boto3, os
client = boto3.client(
"comprehend",
region_name="eu-central-1",
endpoint_url="https://aws.api.shinrai.innovius.io",
aws_access_key_id=os.environ["SHINRAI_AWS_ACCESS_KEY_ID"],
aws_secret_access_key=os.environ["SHINRAI_AWS_SECRET_ACCESS_KEY"],
)
print(client.detect_pii_entities(Text="Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00", LanguageCode="en"))Kompatibilitäts-APIs begrenzen, was ShinrAI zurückgeben kann. Für volle Qualität verwenden Sie die native PII-API v2.
curl 'https://google.api.shinrai.innovius.io/v2/projects/my-project/locations/global/content:inspect' \
-H "x-goog-api-key: $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"item":{"value":"Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"},"inspectConfig":{"includeQuote":true}}'Kompatibilitäts-APIs begrenzen, was ShinrAI zurückgeben kann. Für volle Qualität verwenden Sie die native PII-API v2.
curl -s https://api.shinrai.innovius.io/v2/protect?preset=label -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: text/plain" -H "Accept: text/plain" --data-binary @letter.txt
Schutzart wählen
Eine Voreinstellung legt eine Richtlinie für alle Typen fest. Regeln legen eine Aktion pro Typ fest.
| Einstellung | Werte |
|---|---|
| Voreinstellung | pseudonymize, mask, label, strict |
| Aktion pro Typ | surrogate, label, mask, partial, generalize, replace, remove, keep |
- Pseudonymize schreibt realistische Ersatzwerte, die Sie wiederherstellen können.
- Partial behält, was nicht identifiziert: die E-Mail-Domain, die Ländervorwahl, die letzten vier Ziffern einer Karte oder eines Kontos, das Jahr eines Datums.
- Generalize schreibt eine Umschreibung für die Art des Namens, Orts oder der Organisation, in der Sprache der Eingabe.
- Partial und generalize sind nicht umkehrbar.
curl -s https://api.shinrai.innovius.io/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Anna Weber aus Biberach, anna@example.org, Karte 4111 1111 1111 1111", "language": "de",
"policy": {"default": {"action": "generalize"}, "rules": [{"types": ["EMAIL", "CREDIT_CARD"], "action": "partial"}]}}'
Erkennung steuern
- Legen Sie eine Mindestkonfidenz für alle Typen, pro Typ oder pro Sprache fest.
- Schließen Sie Typen über ihre kanonischen Namen oder über die Namen von Google, AWS, Azure oder Presidio ein oder aus.
- Schließen Sie Werte aus, die nie gemeldet werden dürfen, etwa Ihren Firmennamen, oder fügen Sie eigene Werte hinzu.
- Fordern Sie Annotationen an: Jahre, Beträge, Rechtsverweise und Bias-Begriffe. Protect ändert sie nie.
- Fordern Sie das Verknüpfungsrisiko an: eine Schätzung, wie wahrscheinlich eine Eingabe eine Person herausgreift. Es ist eine Heuristik, keine Zählung.
Wiederherstellen und eine Zuordnung behalten
Fordern Sie die Zuordnung an, wenn Sie eine Antwort später wiederherstellen müssen. Die Zuordnung enthält die Originalwerte. Speichern Sie sie als sensible Anwendungsdaten und halten Sie sie aus Modell-Prompts heraus.
curl -s https://api.shinrai.innovius.io/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Anna Weber lives in Darmstadt.", "policy": {"preset": "pseudonymize"}, "output": {"include": ["entities", "mapping"]}}'# Azure returns the masked text as redactedText.
curl 'https://azure.api.shinrai.innovius.io/language/:analyze-text?api-version=2023-04-01' \
-H "Ocp-Apim-Subscription-Key: $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"PiiEntityRecognition","analysisInput":{"documents":[{"id":"1","language":"en","text":"Anna Weber lives in Darmstadt."}]},"parameters":{"modelVersion":"latest","stringIndexType":"Utf16CodeUnit"}}'Kompatibilitäts-APIs begrenzen, was ShinrAI zurückgeben kann. Für volle Qualität verwenden Sie die native PII-API v2.
curl 'https://google.api.shinrai.innovius.io/v2/projects/my-project/locations/global/content:deidentify' \
-H "x-goog-api-key: $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"item":{"value":"Anna Weber lives in Darmstadt."},"deidentifyConfig":{"infoTypeTransformations":{"transformations":[{"primitiveTransformation":{"replaceWithInfoTypeConfig":{}}}]}}}'Kompatibilitäts-APIs begrenzen, was ShinrAI zurückgeben kann. Für volle Qualität verwenden Sie die native PII-API v2.
curl -s https://api.shinrai.innovius.io/v2/restore -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"mapping": {"known": [{"original": "Anna Weber", "replacement": "Julia Brandt"}]}, "inputs": [{"id": "1", "text": "Julia Brandt replied."}]}'
- Innerhalb einer Anfrage behält ein Wert einen Ersatzwert.
- Die nächste Anfrage zieht neue Ersatzwerte. Wiederholte Anfragen können Ersatzwerte daher nicht auf Originale zurückführen.
- Für dieselben Ersatzwerte über mehrere Anfragen verwenden Sie eine Sitzung oder senden die früheren Paare als bekannte Zuordnungen.
- Kontoweite Konsistenz ist als Option verfügbar. Sie ist schwächer: Jeder mit dem Schlüssel kann dann durch Wiederholung eine Tabelle der Originale aufbauen.
- Andere Kunden erhalten immer andere Ersatzwerte.
Eine Sitzung hält eine Zuordnung höchstens 24 Stunden auf dem Server. Die Zuordnung wird verschlüsselt gespeichert, und nur Ihr Schlüssel kann sie lesen.
SESSION=$(curl -s -X POST https://api.shinrai.innovius.io/v2/sessions -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" -d '{"ttl_s": 3600}' | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -s https://api.shinrai.innovius.io/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" -d '{"text": "Anna Weber called.", "mapping": {"session": "'$SESSION'"}}'
curl -s https://api.shinrai.innovius.io/v2/sessions/$SESSION/mapping -H "Authorization: Bearer $SHINRAI_API_KEY"
Screenshots und Scans schützen
- Die OCR liest jede Sprache, die das Modell bedient. Senden Sie bei arabischen, hebräischen, japanischen und koreanischen Bildern die Sprache mit.
- Jede Entität kommt mit Pixelboxen zurück, eine pro Textzeile oder eine pro Wort.
- Protect liefert das Bild mit gefüllten Bereichen zurück.
- Die Echtzeitstufe nimmt ein Bild pro Anfrage an, bis 4,2 Megapixel und 3 MiB.
curl -s "https://api.shinrai.innovius.io/v2/detect?language=de" -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: image/png" --data-binary @screenshot.png
curl -s https://api.shinrai.innovius.io/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: image/png" -H "Accept: image/png" --data-binary @screenshot.png -o redacted.png
Große Stapel und Dokumente als Jobs ausführen
Verwenden Sie einen Job, wenn die Arbeit für eine Anfrage zu groß ist: viele Texte oder eine PDF- oder Word-Datei. Ein Job läuft im Hintergrund mit dem Batch-Gewicht und hält seine Ergebnisse 24 Stunden bereit. Jobs sind in der Beta.
- Laden Sie eine JSONL-Datei mit einer Eingabe pro Zeile oder eine PDF- oder DOCX-Datei hoch.
- Starten Sie den Job mit der Upload-ID.
- Fragen Sie den Job-Status ab und laden Sie die Artefakte herunter.
{"custom_id": "row-1", "text": "Anna Schmidt, anna@example.com"}
{"custom_id": "row-2", "text": "Call +49 30 1234567", "language": "de"}
{"custom_id": "row-3", "input": {"kind": "table", "columns": [{"name": "email"}], "rows": [["max@example.org"]]}}
curl -s https://api.shinrai.innovius.io/v2/uploads \
-H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/x-ndjson" \
--data-binary @rows.jsonl
curl -s https://api.shinrai.innovius.io/v2/jobs \
-H "Authorization: Bearer $SHINRAI_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: rows-2026-09-28" \
-d '{"kind": "text_batch",
"inputs": [{"kind": "file", "source": {"upload": "up_..."}}],
"output": {"artifacts": ["protected", "entities"]}}'
curl -s https://api.shinrai.innovius.io/v2/jobs/$JOB -H "Authorization: Bearer $SHINRAI_API_KEY"
Ein Dokumentjob schützt den Text des Dokuments. Das geschwärzte PDF und seine Wortboxen folgen in einem späteren Release.
Stufen, Wiederholungen und Nutzung
| API-Stufe | Gewicht | Geeignet für |
|---|---|---|
| Standard | ×1 | Standardwert |
| Batch | ×0.5 | Halber Preis, niedrigste Priorität |
| Echtzeit | ×1.6 | Kleine Eingaben und geringe Latenz, ab Tarif Team |
- Senden Sie einen Idempotency-Key-Header, um sicher zu wiederholen. Eine Wiederholung mit demselben Schlüssel und Body wird einmal berechnet.
- Wiederherstellung, Sitzungen, Fähigkeiten, Typen und Nutzung sind kostenlos.
- Fehlgeschlagene Aufrufe werden nicht berechnet.
curl -s https://api.shinrai.innovius.io/v2/usage -H "Authorization: Bearer $SHINRAI_API_KEY"
Als Nächstes geplant
Audioeingabe und Streaming sind für die native API v2 geplant. Beides ist noch nicht verfügbar.