ShinrAISTACKITでホスティング

実践的なAPI使用例

合成例をすぐに試すか、同じワークフローを実際のShinrAI APIで実行できます。

既定では合成データ

キーを使う前にワークフローを確認

各シナリオは記録済みの合成結果から始まり、APIリクエストは行いません。自分のキーと利用枠を使う場合はライブモードに切り替えてください。

1

サポートメッセージを保護

ケースを外部アシスタントへ送る前に顧客の身元情報を置換し、返信をローカルで復元します。

Original→Protected→Restored reply
{"protected":"Nora Winter needs help with order 4815.","restored_reply":"Emma Weber can reset order 4815."}
自分で実行

前提条件

SHINRAI_API_KEY と必要に応じて SHINRAI_API_URL を設定します。テスト中は合成されたサポート文のみを使用してください。

コマンド

curl "${SHINRAI_API_URL:-https://api.getshinrai.com}/v2/protect"   -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json"   -d '{"text":"Emma Weber needs help with order 4815.","policy":{"preset":"pseudonymize"},"output":{"include":["entities","mapping"]}}'

期待される結果

レスポンスには保護済みテキスト、ローカルマッピング、検出エンティティ、使用量が含まれます。アプリケーション内でマッピングを使い、アシスタントの返信を復元します。

トラブルシューティング

保護に失敗した場合は後続の送信を停止する必要があります。エラー情報で、無効な認証情報、利用枠、ペイロードサイズ、処理不可を確認してください。

ネイティブAPI v2ガイド · APIオペレーション · Secure AI Suite

2

CRMレコードを一貫して保護

リクエスト内で1つのマップを使用し、複数レコードの同一人物に同じ置換値を割り当てます。

{"results":[{"output":"Nora Winter owns account A-17."},{"output":"Email Nora Winter at nora@example.net"}],"mapping":{"delta":[{"original":"Emma Weber","replacement":"Nora Winter"}]}}
自分で実行

前提条件

SHINRAI_API_KEY を設定し、評価中は合成CRMレコードのみをエクスポートしてください。

コマンド

curl "${SHINRAI_API_URL:-https://api.getshinrai.com}/v2/protect"   -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json"   -d '{"texts":["Emma Weber owns A-17.","Email Emma Weber at emma@example.com."],"policy":{"preset":"pseudonymize"},"output":{"include":["entities","mapping"]}}'

期待される結果

両方の結果でEmma Weberに同じ置換値が使われ、レスポンスにはリクエスト単位のマッピングと合計使用量が返されます。

トラブルシューティング

関連レコードは1つのバッチで送信します。別々のリクエストで一貫性を保つには、アプリケーションから以前のマッピングを渡す必要があります。

ネイティブAPI v2ガイド · APIオペレーション · n8n連携

3

AIリクエスト前にコンテキストを保護

保護済みの検索コンテキストをモデルへ送り、置換マップはアプリケーション内に保持します。

Retrieved context→ShinrAI→AI→Local restore
{"model_input":"Summarize Nora Winter's account.","restored_reply":"Emma Weber's account is ready for review."}
自分で実行

前提条件

ShinrAIキーに加え、OpenAI互換エンドポイント用の MODEL_ENDPOINT、MODEL_NAME、MODEL_API_KEY を設定します。

コマンド

curl -O https://getshinrai.com/downloads/examples/shinrai-ai-workflow-python.py
SHINRAI_API_KEY=... MODEL_ENDPOINT=https://model.example/v1   MODEL_NAME=your-model MODEL_API_KEY=... python shinrai-ai-workflow-python.py

期待される結果

スクリプトは保護済みのモデル入力とローカルで復元した返信を出力します。置換マッピングがモデルリクエストに入ることはありません。

トラブルシューティング

保護に失敗すると、スクリプトはモデルを呼び出す前に終了します。両方のエンドポイントと認証情報を個別に確認し、合成コンテキストで再試行してください。

ネイティブAPI v2ガイド · APIオペレーション · Pythonの例 · JavaScriptの例 · Open WebUI

4

文書を保護

合成のPDFまたはDOCXファイルをアップロードし、ジョブを追跡して、マスキング済みPDFと保護済みテキストをダウンロードします。

{"id":"job_5e2a","kind":"document","status":"succeeded","artifacts":{"protected":"/v2/jobs/job_5e2a/artifacts/protected","text":"/v2/jobs/job_5e2a/artifacts/text","entities":"/v2/jobs/job_5e2a/artifacts/entities"}}
自分で実行

前提条件

合成のPDFまたはDOCXファイルを作成し、SHINRAI_API_KEY を設定します。

コマンド

UPLOAD=$(curl -s "${SHINRAI_API_URL:-https://api.getshinrai.com}/v2/uploads" \
  -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/pdf" \
  --data-binary @sample.pdf | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -i "${SHINRAI_API_URL:-https://api.getshinrai.com}/v2/jobs" \
  -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"kind":"document","inputs":[{"kind":"file","source":{"upload":"'$UPLOAD'"}}]}'

期待される結果

202レスポンスにはジョブIDとLocationが含まれます。succeededになるまでそのURLをポーリングし、一覧の成果物をダウンロードします。

トラブルシューティング

ポーリング時は Retry-After に従ってください。デプロイによっては未対応のファイル形式や成果物形式が拒否されるため、再試行前にジョブエラーを確認します。

文書ガイド · APIオペレーション · Nextcloud連携

完全なAIワークフローをローカルで実行

ダウンロード可能な例はネイティブPII API v2を呼び出し、保護済みテキストだけをOpenAI互換のモデルエンドポイントに渡し、回答をローカルで復元します。モデルとShinrAIの認証情報は環境変数から読み込みます。