feat(generator): добавлена модель связанного визита
- Зачем: - генератор должен создавать учебно полезный визит с общим click_id, правдоподобным путём и честным тиковым бюджетом событий. - Что: - добавлена марковская цепочка страниц, запланированные метки времени и потолок GEN_MAX_SESSION_EVENTS. - добавлен набор тикового батча из нескольких визитов до рассчитанного бюджета событий. - обновлены тесты, README, KNOWN_ISSUES и статусы задач 01/02. - Проверка: - uv run --with pytest --with-requirements generator/requirements.txt pytest generator/tests -q
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
Status: ready-for-agent
|
||||
Status: ready-for-human
|
||||
|
||||
# Минимальный связанный визит в новом ядре
|
||||
|
||||
@@ -18,16 +18,16 @@ Kafka-топиков. Kafka на этом шаге не нужна: задача
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Тест через публичный интерфейс генератора создаёт один визит с несколькими
|
||||
- [x] Тест через публичный интерфейс генератора создаёт один визит с несколькими
|
||||
browser-событиями под одним `click_id`.
|
||||
- [ ] У всех событий визита разные валидные `event_id`, а `click_id` не берётся
|
||||
- [x] У всех событий визита разные валидные `event_id`, а `click_id` не берётся
|
||||
из исходного сида.
|
||||
- [ ] Для каждого browser-события есть связанная location-запись с тем же
|
||||
- [x] Для каждого browser-события есть связанная location-запись с тем же
|
||||
`event_id`.
|
||||
- [ ] Для каждого события визита публикуются device- и geo-записи с тем же
|
||||
- [x] Для каждого события визита публикуются device- и geo-записи с тем же
|
||||
`click_id`; их содержимое в рамках визита одинаковое, как в сиде.
|
||||
- [ ] Один `click_id` связан ровно с одним `user_domain_id`.
|
||||
- [ ] Старый тестовый контракт "одно событие = один новый click_id" удалён или
|
||||
- [x] Один `click_id` связан ровно с одним `user_domain_id`.
|
||||
- [x] Старый тестовый контракт "одно событие = один новый click_id" удалён или
|
||||
заменён на новый контракт визита.
|
||||
|
||||
## Blocked by
|
||||
@@ -35,4 +35,3 @@ Kafka-топиков. Kafka на этом шаге не нужна: задача
|
||||
None - can start immediately.
|
||||
|
||||
## Comments
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Status: ready-for-agent
|
||||
Status: ready-for-human
|
||||
|
||||
# Путь визита по страницам и монотонное время
|
||||
|
||||
@@ -17,17 +17,17 @@ Status: ready-for-agent
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Тест через публичный интерфейс генератора показывает, что
|
||||
- [x] Тест через публичный интерфейс генератора показывает, что
|
||||
`event_timestamp` внутри одного `click_id` строго возрастает.
|
||||
- [ ] Метки времени событий являются запланированными моментами визита, а не
|
||||
- [x] Метки времени событий являются запланированными моментами визита, а не
|
||||
одинаковым `now()` для всего набора событий.
|
||||
- [ ] Паузы внутри визита меньше 30 минут; 95-й перцентиль на симуляции лежит в
|
||||
- [x] Паузы внутри визита меньше 30 минут; 95-й перцентиль на симуляции лежит в
|
||||
масштабе единиц минут.
|
||||
- [ ] Визит не может зациклиться бесконечно: длина ограничена потолком
|
||||
- [x] Визит не может зациклиться бесконечно: длина ограничена потолком
|
||||
`GEN_MAX_SESSION_EVENTS` или его новым эквивалентом.
|
||||
- [ ] Доля визитов, дошедших до `/confirmation`, на симуляции сопоставима с
|
||||
- [x] Доля визитов, дошедших до `/confirmation`, на симуляции сопоставима с
|
||||
ориентиром сида около 25%.
|
||||
- [ ] Визит может продолжаться после `/confirmation`; `/confirmation` не
|
||||
- [x] Визит может продолжаться после `/confirmation`; `/confirmation` не
|
||||
считается обязательным последним событием визита.
|
||||
|
||||
## Blocked by
|
||||
@@ -35,4 +35,3 @@ Status: ready-for-agent
|
||||
- `.scratch/feature-data-generator/issues/01-minimal-connected-visit.md`
|
||||
|
||||
## Comments
|
||||
|
||||
|
||||
Reference in New Issue
Block a user