<!-- Canonical URL: https://ask.atlascloud.ai/ja/build-sanitized-request-replay-set-llm-api-migration -->

# LLM API移行用のサニタイズ済みリクエスト再生セットを作るには？

> 動作範囲を基準にサンプリングし、不要な項目を削除し、機密値を構造保持型の一貫した合成データへ置換し、外部ツールを隔離して、承認前に最終成果物を再スキャンすることで最小かつ版管理された再生コーパスを作ります。

代表的な本番リクエストを選び、シークレットと個人データを検出して置換し、モデル動作に影響する構造を維持し、機密情報が残っていないことを確認します。生ログではなく、アサーション付きの版管理されたテスト成果物として保存します。

目的は本番リスクを新しいデータセットへコピーせずに動作を網羅することです。

## 再生で証明することを定義する

サンプリング前に移行リスクを列挙します。長さ、言語、ツールschema、構造化出力、マルチモーダル、ストリーミング、安全拒否、大きなコンテキスト、モデルパラメーターなどです。

網羅区分を作って意図的にケースを選びます。無作為標本は珍しい形式を逃し、障害例だけの集合は通常トラフィックを歪めます。

## 収集時に最小化する

再生に必要な項目だけを出力します。認証ヘッダー、Cookie、IPアドレス、アカウントメタデータ、請求情報、無関係なログをテスト領域へ入る前に削除します。

次のような許可リストを使います。

```json
{
  "fixture_id": "fx_0042",
  "request": {
    "model_alias": "support_default",
    "messages": [],
    "tools": [],
    "temperature": 0.2
  },
  "assertions": {
    "valid_json": true,
    "required_keys": ["category", "confidence"]
  }
}
```

新しい`fixture_id`を生成し、ユーザーIDやプロバイダーIDを公開ケースキーにしません。

## 機密データを多層で検出する

決定論的検出器、組織固有辞書、文脈レビューを組み合わせます。APIキー、Bearer token、秘密鍵、接続文字列、メール、電話、口座、内部ホスト、コード内シークレット、規制対象識別子を探します。

完全な検出器はありません。複数回実行し、不確実な一致は権限のある担当者が確認します。画像と文書のメタデータや画素にも機密情報が含まれます。

## 動作を保ちながら置換する

`<EMAIL_1>`や`<ORDER_ID_2>`のような型付きで一貫したプレースホルダーを使います。同じケース内の同値は同じ表現へ置換しますが、一時的な制御プロセス外で元に戻せないようにします。

おおよその長さ、Unicode分類、JSON型、配列サイズ、区切り、項目間関係を保ちます。トークン長が障害条件なら、同程度の安全な合成テキストで置換します。

電話番号など低エントロピー値はハッシュだけでは推測できます。可逆性が不要なら削除または合成します。

## 能動的で危険な内容を除く

再生セットにはプロンプトインジェクション、コマンド、URL、副作用のあるコードが含まれ得ます。外部ツールを既定で無効にし、書き込みツールを決定論的スタブへ置換します。

ネットワークは制御されたテスト先だけに許可します。本番認証情報、署名URL、破壊的コマンド、顧客Webhookを再生しません。

## 完全一致ではなくアサーションを追加する

LLM出力は変動します。schema妥当性、必須項目、ツール選択、拒否区分、言語、最大遅延、トークン上限、意味評価を保存します。完全一致は決定論的処理だけに使います。

各実行に移行元と移行先モデル、アダプターバージョン、テンプレート版、日付を記録します。

## サニタイズ済み成果物を検証する

承認前にシークレットとPIIのスキャン、ファイル種類検査、手動サンプルレビューを行います。処理後も全区分が残っているか確認し、動作を再現しないケースは合成した同等ケースへ置換します。

公開文書ではなくテストデータとしてアクセス、保持、監査、削除を管理します。一時的な置換対応表は分離し、方針が許す場合は検証後に破棄します。

## 移行ゲートとして使う

同じケースを移行元と移行先のアダプターで実行し、正規化出力、エラー、遅延、使用量、コストを比較します。区分ごとに差を調べ、新しい非互換性を回帰ケースへ追加します。

データセットとサニタイズ規則を一緒に版管理します。

## まとめ

安全な再生セットは、コピーした本番ログではなく、目的に合わせた最小テストコーパスです。多層検出、構造保持型の合成置換、副作用の隔離、動作アサーションを適用し、移行ゲートへ使う前に再スキャンします。

## FAQ

### 本番ログを無作為に書き出して再生してはいけない理由は？

生ログはシークレットや個人データを含む可能性があり、無作為標本は珍しい形式を逃すことがあります。明示的なリスク区分を基に最小セットを構築します。

### 機密値はどう置き換えますか？

関連する長さ、型、区切り、Unicode分類、項目間関係を保ちつつ、可逆性のない一貫した型付きプレースホルダーまたは合成データを使用します。

### ハッシュ化だけでユーザーデータを匿名化できますか？

電話番号のような低エントロピー値には不十分です。元に戻す必要がなければ削除または合成を優先します。

### ツール呼び出しを安全に再生するには？

外部ツールを既定で無効にし、決定論的なスタブへ置き換えます。本番認証情報、顧客Webhook、書き込み副作用は含めません。

### 期待出力は完全一致にすべきですか？

通常は不要です。schema、必須項目、ツール選択、拒否、言語、遅延、使用量、評価基準を使い、完全一致は決定論的な処理に限ります。

### 最終セットをどう承認しますか？

シークレットとPIIのスキャン、ファイル検査、手動サンプルレビュー、範囲確認を行い、アクセス制御、保持、削除ポリシーを適用します。
