実践的なAPI使用例
合成例をすぐに試すか、同じワークフローを実際のShinrAI APIで実行できます。
既定では合成データ
キーを使う前にワークフローを確認
各シナリオは記録済みの合成結果から始まり、APIリクエストは行いません。自分のキーと利用枠を使う場合はライブモードに切り替えてください。
キーはこのページのメモリ内だけに保持され、再読み込み時に消去されます。成功したライブリクエストはレコードを消費します。
サポートメッセージを保護
ケースを外部アシスタントへ送る前に顧客の身元情報を置換し、返信をローカルで復元します。
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"]}}'期待される結果
レスポンスには保護済みテキスト、ローカルマッピング、検出エンティティ、使用量が含まれます。アプリケーション内でマッピングを使い、アシスタントの返信を復元します。
トラブルシューティング
保護に失敗した場合は後続の送信を停止する必要があります。エラー情報で、無効な認証情報、利用枠、ペイロードサイズ、処理不可を確認してください。
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つのバッチで送信します。別々のリクエストで一貫性を保つには、アプリケーションから以前のマッピングを渡す必要があります。
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
文書を保護
合成の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 に従ってください。デプロイによっては未対応のファイル形式や成果物形式が拒否されるため、再試行前にジョブエラーを確認します。
完全なAIワークフローをローカルで実行
ダウンロード可能な例はネイティブPII API v2を呼び出し、保護済みテキストだけをOpenAI互換のモデルエンドポイントに渡し、回答をローカルで復元します。モデルとShinrAIの認証情報は環境変数から読み込みます。