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

# LLM API 마이그레이션을 위한 정제된 요청 재생 세트는 어떻게 만드나요?

> 동작 범위를 기준으로 표본을 선택하고 불필요한 필드를 제거하며 민감 값을 구조 보존형 합성 데이터로 일관되게 교체하고 외부 도구를 격리한 뒤 승인 전에 최종 산출물을 다시 검사해 최소화되고 버전 관리되는 재생 코퍼스를 만듭니다.

대표 운영 요청을 선택하고 비밀과 개인 데이터를 탐지해 교체하며 모델 동작에 영향을 주는 구조를 유지하고 민감 콘텐츠가 남지 않았는지 확인합니다. 원시 로그 내보내기가 아니라 어설션을 포함한 버전 관리 테스트 산출물로 저장합니다.

목표는 운영 위험을 새 데이터 세트에 복사하지 않으면서 실제 동작을 포괄하는 것입니다.

## 재생으로 증명할 내용을 정의합니다

표본을 선택하기 전에 마이그레이션 위험을 나열합니다. 일반적인 차원은 프롬프트 길이, 언어, 도구 schema, 구조화 출력, 멀티모달 부분, 스트리밍, 안전 거부, 큰 컨텍스트, 모델 매개변수입니다.

범주를 만들고 의도적으로 사례를 선택합니다. 무작위 표본은 드물지만 중요한 형식을 놓칠 수 있고 과거 실패만 모으면 정상 트래픽이 왜곡됩니다.

## 수집 단계에서 최소화합니다

재생에 필요한 필드만 내보냅니다. 데이터가 테스트 공간에 도달하기 전에 인증 헤더, 쿠키, 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, 파괴적 명령, 고객 웹훅을 재생하지 않습니다.

## 정확한 답 대신 어설션을 추가합니다

LLM 출력은 달라질 수 있으므로 schema 유효성, 필수 필드, 도구 선택, 거부 범주, 언어, 최대 지연, 토큰 한계, 의미 평가를 저장합니다. 정확 일치는 결정론적 변환에만 사용합니다.

각 실행에 원본 및 대상 모델 ID, 어댑터 버전, 프롬프트 템플릿 버전, 날짜를 기록합니다.

## 정제된 산출물을 검증합니다

승인 전에 비밀 및 PII 검사, 파일 유형 점검, 수동 표본 검토를 수행합니다. 정제 후에도 각 범주가 남아 있는지 확인합니다. 안전하지만 원래 동작을 실행하지 않는 사례는 합성 동등 사례로 교체합니다.

공개 문서가 아닌 테스트 데이터로 접근, 보존, 감사, 삭제를 관리합니다. 임시 원본 매핑은 분리해 두고 정책이 허용하면 검증 후 폐기합니다.

## 마이그레이션 게이트로 사용합니다

동일한 사례를 원본과 대상 어댑터에서 실행해 정규화 출력, 오류, 지연, 사용량, 비용을 비교합니다. 범주별 차이를 조사하고 새 비호환성을 회귀 사례로 추가합니다.

데이터 세트와 정제 규칙을 함께 버전 관리해 결과를 설명할 수 있게 합니다.

## 핵심 정리

안전한 재생 세트는 복사한 운영 로그가 아니라 목적에 맞게 최소화한 테스트 코퍼스입니다. 다층 탐지와 검토, 구조 보존형 합성 교체, 부작용 격리, 동작 어설션을 적용하고 마이그레이션 게이트로 사용하기 전에 다시 검사합니다.

## FAQ

### 운영 로그를 무작위로 내보내 재생하면 안 되는 이유는 무엇인가요?

원시 로그는 비밀과 개인 데이터를 노출할 수 있고 무작위 표본은 드문 요청 형식을 놓칠 수 있습니다. 명시적인 위험 범주에 따라 최소 세트를 구성합니다.

### 민감 값은 어떻게 교체해야 하나요?

관련 길이, 형식, 구분자, Unicode 범주, 필드 관계를 유지하면서 되돌릴 수 없는 일관된 형식화 플레이스홀더나 합성 데이터를 사용합니다.

### 해시만으로 사용자 데이터를 익명화할 수 있나요?

전화번호 같은 낮은 엔트로피 값에는 충분하지 않습니다. 복원이 필요하지 않다면 삭제하거나 합성하는 것이 좋습니다.

### 도구 호출을 안전하게 재생하려면 어떻게 하나요?

외부 도구를 기본적으로 비활성화하고 결정론적 스텁으로 교체합니다. 운영 자격 증명, 고객 웹훅, 쓰기 부작용을 포함하지 않습니다.

### 예상 출력은 정확한 문자열이어야 하나요?

일반적으로 아닙니다. schema, 필수 필드, 도구 선택, 거부, 언어, 지연, 사용량, 평가 기준을 사용하고 정확 일치는 결정론적 작업에만 사용합니다.

### 최종 재생 세트는 어떻게 승인하나요?

비밀 및 PII 검사, 파일 점검, 수동 표본 검토, 범위 확인을 수행하고 접근 제어, 보존, 삭제 정책을 적용합니다.
