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

# Как создать очищенный набор повторного воспроизведения запросов для миграции LLM API?

> Создайте минимальный версионируемый корпус: выбирайте примеры по покрытию, удаляйте ненужные поля, последовательно заменяйте чувствительные значения синтетическими данными с сохранением структуры, изолируйте внешние инструменты и повторно сканируйте итоговый артефакт.

Выберите репрезентативные производственные запросы, обнаружьте и замените секреты и персональные данные, сохраните влияющую на поведение структуру и убедитесь, что чувствительных данных не осталось. Храните результат как версионируемый тестовый артефакт с проверками, а не как экспорт сырых логов.

Цель — покрыть поведение, не копируя производственные риски в новый набор.

## Определить, что должно доказать воспроизведение

До выборки перечислите риски: длину, языки, schema инструментов, структурированный вывод, мультимодальные части, streaming, отказы безопасности, большой контекст и параметры модели.

Создайте категории покрытия и выбирайте случаи намеренно. Случайная выборка может пропустить редкие формы, а набор только из ошибок искажает обычный трафик.

## Минимизировать данные при сборе

Экспортируйте только необходимые поля. Удаляйте заголовки авторизации, cookies, 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 как открытый ключ случая.

## Многоуровнево обнаруживать чувствительные данные

Совмещайте детерминированные сканеры, словари организации и контекстную проверку. Ищите API-ключи, tokens, закрытые ключи, строки подключения, почту, телефоны, счета, внутренние хосты, секреты кода и регулируемые идентификаторы.

Ни один сканер не полон. Делайте несколько проходов и передавайте сомнительные совпадения авторизованному проверяющему. Метаданные и пиксели изображений и документов также могут быть чувствительными.

## Заменять с сохранением поведения

Используйте последовательные типизированные заполнители вроде `<EMAIL_1>` и `<ORDER_ID_2>`. Одинаковое значение внутри случая должно заменяться одинаково, но соответствие не должно быть обратимым вне временного контролируемого процесса.

Сохраняйте примерную длину, класс Unicode, тип JSON, размер списков, разделители и связи полей. Если сбой зависит от длины в tokens, используйте безопасный синтетический текст похожего размера.

Не ограничивайтесь хешированием телефонов и других значений с низкой энтропией. Удаляйте или синтезируйте, если обратимость не нужна.

## Удалять активное и опасное содержимое

Случаи могут содержать prompt injection, команды, URL или код с побочными эффектами. По умолчанию отключайте внешние инструменты и заменяйте записывающие инструменты детерминированными заглушками.

Разрешайте сеть только к контролируемым тестовым endpoint. Не воспроизводите производственные учетные данные, подписанные URL, разрушительные команды и клиентские webhook.

## Добавлять проверки вместо точных ответов

Вывод LLM может меняться. Храните проверки schema, обязательных полей, выбора инструмента, категории отказа, языка, максимальной задержки, лимитов tokens и семантической оценки. Точное совпадение используйте лишь для детерминированных задач.

Для каждого запуска записывайте исходную и целевую модель, версию адаптера, шаблон и дату.

## Проверить очищенный артефакт

До утверждения запустите поиск секретов и PII, проверку типов файлов и ручной просмотр выборки. Подтвердите, что каждая категория сохранилась. Безопасный, но уже не воспроизводящий поведение случай замените синтетическим эквивалентом.

Защищайте набор как тестовые данные, а не как публичную документацию. Применяйте доступ, хранение, аудит и удаление. Временную таблицу соответствий храните отдельно и уничтожьте после проверки, если политика позволяет.

## Использовать как шлюз миграции

Прогоняйте одинаковые случаи через исходный и целевой адаптеры. Сравнивайте нормализованные результаты, ошибки, задержку, использование и стоимость. Исследуйте различия по категориям и добавляйте регрессионные случаи.

Версионируйте набор и правила очистки вместе.

## Итог

Безопасный набор воспроизведения — спроектированный минимальный тестовый корпус, а не копия производственных логов. Используйте многоуровневое обнаружение, синтетические структуросохраняющие данные, изоляцию побочных эффектов и проверки поведения. Повторно просканируйте артефакт до использования в качестве шлюза миграции.

## FAQ

### Почему нельзя воспроизвести случайную выгрузку производственных логов?

Сырые логи могут раскрыть секреты и персональные данные, а случайная выборка может пропустить редкие формы запросов. Создавайте минимальный набор по явным категориям риска.

### Как заменять чувствительные значения?

Используйте последовательные типизированные заполнители или синтетические данные, сохраняющие длину, тип, разделители, класс Unicode и важные связи без обратимости.

### Достаточно ли хеширования для анонимизации данных?

Нет для значений с низкой энтропией, например телефонов, которые можно угадать. Если обратимость не нужна, удаляйте или синтезируйте.

### Как безопасно воспроизводить вызовы инструментов?

По умолчанию отключайте внешние инструменты и заменяйте их детерминированными заглушками. Не включайте производственные учетные данные, клиентские вебхуки и операции записи.

### Должен ли ожидаемый ответ совпадать дословно?

Обычно нет. Используйте проверки schema, обязательных полей, выбора инструмента, отказа, языка, задержки, использования и рубрики; точное совпадение оставьте детерминированным задачам.

### Как утвердить итоговый набор?

Запустите поиск секретов и PII, проверьте файлы, вручную просмотрите выборку, подтвердите покрытие и примените контроль доступа, сроки хранения и удаление.
