Профили и спецификации¶
English · Русский
Профиль описывает наблюдаемую структуру и ограниченные агрегаты источника; DatasetSpec задаёт исполняемый проверенный контракт. Generation использует spec, а не исходные строки. Профиль может содержать nullable/distinct/length/distribution evidence и кандидаты связей, но не source rows, PII или secrets.
Новые DatasetSpec используют 1.1, legacy 1.0 поддерживается без decimal. Import payload без версии трактуется как 1.0, новый Python DatasetSpec по умолчанию — 1.1. Укажите версию явно.
SQL query-source policy 1.1 допускает ограниченный single-table SELECT, scalar expressions и aliased SUM/COUNT/MIN/MAX/AVG с ограниченным GROUP BY. JOIN/CTE/subqueries/windows/HAVING/неизвестные функции отклоняются. Профиль хранит fingerprint, а не SQL text или result rows. has_unmodeled_expressions=true (в том числе aggregate) блокирует automatic infer-spec: напишите независимо проверенный spec. Direct column aliases могут выводиться автоматически; старые query profiles без marker нужно получить заново.
Практика: раздельный процесс, поля DatasetSpec, конфигурация.
Проект создаёт новые синтетические данные для тестирования программ. Он анализирует структуру CSV или разрешённые агрегаты базы, составляет DatasetSpec, генерирует значения и проверяет результат. Исходные строки не копируются в результат.
Например, команде разработки нужны 25 заказов с корректными ссылками на покупателей, но реальные покупатели не должны попадать в тестовую среду. Можно использовать вымышленный CSV, проверить выведенную спецификацию и получить новый набор с явным seed.
Проект подходит для воспроизводимых тестовых фикстур, проверки схем, связей и формализованных бизнес-правил. Он не гарантирует полную статистическую точность исходного набора, анонимность, юридическое соответствие или сохранение всех правил предметной области.
flowchart LR
A[CSV или разрешённые агрегаты БД] --> B[Безопасный профиль]
B --> C[DatasetSpec]
C --> D[Проверка человеком]
D --> E[Генерация с seed]
E --> F[Валидация]
F --> G[Файлы и отчёты]
AI-сервис необязателен. Он может предложить изменения спецификации; генерацию и проверки выполняет детерминированный код.
Далее: возможности, затем установка.
Термины¶
| Термин | Значение |
|---|---|
| Синтетические данные | Новые значения, созданные генератором по спецификации |
| CSV | Текстовая таблица с заголовком и разделителями |
| Сущность / entity | Одна таблица; обычно имя CSV без расширения |
| Поле / field | Один столбец таблицы |
| Профиль / DatasetProfile | Метаданные: типы, количества, диапазоны, распределения и кандидаты связей |
| DatasetSpec | Проверяемый контракт генерации и валидации, YAML или JSON |
| DECIMAL | Точное десятичное число с precision (числом цифр) и scale (числом дробных разрядов) |
| Mixed-origin | Артефакт трансформации с происхождением ячеек replacement/synthetic/original; не является целиком synthetic |
| Receipt | Локальное подтверждение сохранения значений, привязанное к точному snapshot; выдаётся человеком в управляющем терминале |
| Seed | Начальное число локального генератора случайных значений |
| Детерминированность | Повтор результата при одинаковых входах, seed и окружении |
| Primary key | Поле уникального идентификатора строки |
| Foreign key | Ссылка дочерней строки на ключ родительской таблицы |
| Distribution | Правило распределения значений: например категории или числовой диапазон |
| Constraint | Структурированное ограничение, например порядок дат или формула |
| Manifest | generation_manifest.json: сведения о генерации, seed, проверках и окружении |
| Валидация | Проверка результата по заданным правилам |
| PII | Personally Identifiable Information: персональные и позволяющие идентификацию данные |
| Allowlist | Явный список разрешённых объектов или полей |
| CLI | Command-line interface: команды в терминале |
| MCP | Model Context Protocol: протокол вызова инструментов клиентом |
| Advisor | Необязательный AI-провайдер, предлагающий изменения spec |
| Workspace | Выделенная рабочая папка артефактов |
| SHA-256 / fingerprint | Отпечаток точного содержимого; изменение файла меняет отпечаток |
| Extra | Необязательная группа зависимостей Python-пакета |
| Exit code | Числовой код завершения команды; проверяется автоматизацией |
confidence — оценка уверенности, status — статус предположения. Они не превращают найденную связь в доказанный закон предметной области. unique_ratio_kind=lower_bound означает нижнюю границу уникальности, а не точную долю.
Далее: требования.
Границы дат и времени¶
В проверенной спецификации date_range и datetime_range задают границы
генерации. Пропущенные границы заменяются на 2020-01-01 и 2025-01-01.
Для более раннего или позднего периода укажите обе границы в правильном
порядке: частичная граница, противоречащая значению по умолчанию, теперь
вызывает отказ с подсказкой. Прежние выходные файлы при этом сохраняются.
Смещение времени по-прежнему выбирается с точностью до целой секунды и сохраняет микросекунды нижней границы. Для длинных интервалов используется целочисленная длительность, чтобы не выйти за максимум при округлении. Минимум и максимум не доказывают месячную или иную календарную гранулярность; соответствие периодам источника остаётся неизмеренным.