ネイティブPII API v2
1つの契約で、テキスト、表、JSON、文字起こし、画像、文書の個人データを検出・保護・復元します。
同じリクエスト本文が、ホスト型API、サンドボックス、自社クラスターへのインストールで動作します。オフライン版は、イメージがv2に対応するまでネイティブAPI v1を提供します。v1ルートとAzure、AWS、Googleの契約も引き続き利用できます。
まずcapabilitiesを確認
起動時にcapabilitiesを一度読み込みます。導入環境のモデル、言語、入力の種類、処理区分、上限が一覧で返ります。
export SHINRAI_API_KEY=shr_live_...
curl -s https://api.shinrai.innovius.io/v2/capabilities -H "Authorization: Bearer $SHINRAI_API_KEY"
あらゆる種類の入力を送信
プレーンテキストに包むための構造は不要です。テキストファイルや画像はファイル自体をリクエスト本文として送り、オプションはクエリ文字列に指定します。
| 入力 | 送信方法 | 備考 |
|---|---|---|
| テキスト | {"text": "..."} または text/plain | JSONまたはファイルをそのまま送信 |
| 表 | "kind": "table" | 列と行 |
| JSON | "kind": "json" | 値に含まれるすべての文字列 |
| 文字起こし | "kind": "transcript" | 形式と時刻付きの単語アトム |
| ページ | "kind": "page" | 独自のOCRまたはPDFテキストレイヤーからのテキストと単語枠 |
| 画像 | image/png, image/jpeg, image/bmp, image/tiff, image/webp | 最大6 MiB:OCR、エンティティごとのピクセル枠、マスキング済み画像 |
| 文書 | POST /v2/jobs | ジョブによるPDF・DOCX(ベータ) |
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"}}'互換APIでは、ShinrAIが返せる内容が制限されます。最高の品質にはネイティブ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"))互換APIでは、ShinrAIが返せる内容が制限されます。最高の品質にはネイティブ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}}'互換APIでは、ShinrAIが返せる内容が制限されます。最高の品質にはネイティブ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
保護方法を選択
プリセットはすべての種類に1つのポリシーを設定します。ルールは種類ごとにアクションを設定します。
| 設定 | 値 |
|---|---|
| プリセット | pseudonymize, mask, label, strict |
| 種類ごとのアクション | surrogate, label, mask, partial, generalize, replace, remove, keep |
- pseudonymizeは復元可能な現実的な代替値を書き込みます。
- partialは個人を特定しない部分を残します:メールのドメイン、電話の国番号、カードや口座の下4桁、日付の年。
- generalizeは名前、場所、組織の種類を表す語句を入力と同じ言語で書き込みます。
- partialとgeneralizeは元に戻せません。
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"}]}}'
検出を制御
- 信頼度の下限を、全種類、種類ごと、または言語ごとに設定できます。
- 種類は正規名、またはGoogle、AWS、Azure、Presidioの名称で含めたり除外したりできます。
- 社名など報告してはならない値を除外したり、独自の値を追加したりできます。
- 注釈を要求できます:年、金額、法令参照、バイアス語。protectはこれらを変更しません。
- 連結リスクを要求できます:入力が個人を特定する可能性の推定値です。これはヒューリスティックであり、件数ではありません。
復元と1つのマップの保持
後で回答を復元する必要がある場合はマッピングを要求します。マッピングには元の値が含まれます。機密性の高いアプリケーションデータとして保存し、モデルのプロンプトには含めないでください。
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"}}'互換APIでは、ShinrAIが返せる内容が制限されます。最高の品質にはネイティブ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":{}}}]}}}'互換APIでは、ShinrAIが返せる内容が制限されます。最高の品質にはネイティブ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."}]}'
- 1つのリクエスト内では、同じ値は同じ代替値を保ちます。
- 次のリクエストでは新しい代替値が選ばれるため、リクエストを繰り返しても代替値から元の値を割り出せません。
- 複数のリクエストで同じ代替値を使うには、セッションを使うか、以前のペアを既知のマッピングとして送信します。
- アカウント全体での一貫性はオプションとして利用できます。ただし保護は弱くなり、キーを持つ人は繰り返しにより元の値の対応表を作れます。
- 他の顧客には常に異なる代替値が使われます。
セッションはサーバー上で1つのマップを最大24時間保持します。マップは暗号化して保存され、読み取れるのはあなたのキーだけです。
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"
スクリーンショットとスキャンを保護
- OCRはモデルが対応するすべての言語を読み取ります。アラビア語、ヘブライ語、日本語、韓国語の画像では言語を指定してください。
- 各エンティティはピクセル枠付きで返されます。枠はテキスト行ごと、または単語ごとです。
- protectは該当領域を塗りつぶした画像を返します。
- リアルタイム区分では、1リクエストにつき1枚、最大420万画素・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
大きなバッチと文書をジョブとして実行
1回のリクエストには大きすぎる作業(多数のテキスト、PDFやWordファイル)にはジョブを使います。ジョブはバッチの重みでバックグラウンド実行され、結果を24時間保持します。ジョブはベータ版です。
- 1行に1入力のJSONLファイル、またはPDFかDOCXファイルをアップロードします。
- アップロードIDでジョブを開始します。
- ジョブの状態を確認し、成果物をダウンロードします。
{"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"
文書ジョブは文書のテキストを保護します。マスキング済みPDFと単語枠は今後のリリースで提供されます。
処理区分、再試行、利用量
| 処理区分 | 重み | 用途 |
|---|---|---|
| Standard | ×1 | 既定 |
| Batch | ×0.5 | 半額、最低優先度 |
| リアルタイム | ×1.6 | 小さな入力と低レイテンシ、Teamプラン以上 |
- 安全に再試行するにはIdempotency-Keyヘッダーを送信します。同じキーと本文による再送は1回分のみ課金されます。
- 復元、セッション、capabilities、types、usageは無料です。
- 失敗した呼び出しは課金されません。
curl -s https://api.shinrai.innovius.io/v2/usage -H "Authorization: Bearer $SHINRAI_API_KEY"
今後の予定
音声入力とストリーミングはネイティブAPI v2で予定されています。現在はまだ利用できません。