AAYMA
RU
Войти

Tirek

Платформа рекомендаций пополнения склада: импорт XLSX Systeme Electric и IEK, 28-дневный прогноз продаж CatBoost, расчёт количества заказа с…

Доведённый продукт
Команда «Tirek Systems and Solutions» 15💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Tirek Systems and Solutions
Кейс HackAlem.ai: Логистика — Электрокомплект · ekt.kz
Стадия: Доведённый продукт

Задача кейса: Автоматический расчёт заказов поставщикам для пополнения склада, с утверждением менеджером

Суть

Платформа рекомендаций пополнения склада: импорт XLSX Systeme Electric и IEK, 28-дневный прогноз продаж CatBoost, расчёт количества заказа с MOQ/кратностью, корректировка и утверждение менеджером, экспорт CSV.

Как устроено

XLSX проверяются (SHA-256, версия набора), нормализуются; прогноз v2 (CatBoost-модели по поставщику/единице, ridge, смеси с baseline, выбранные по трём временным validation-окнам) даёт спрос на 28 дней. Модуль решения учитывает свободный запас, поступления, обязательства, MOQ и кратность партии; модуль регулярного спроса отделяет разовые крупные покупки в 7-дневных окнах. FastAPI + SQLite с аутентификацией и рабочими пространствами, React-интерфейс для проверки, корректировки с причиной и утверждения; опциональный AI-review.

Ключевые решения

  • CatBoost
  • Ridge regression
  • Poisson loss
  • temporal backtesting
  • WAPE
  • MOQ/кратность партии
  • stockout correction
  • ablation

Метрики

WAPE v2: SE шт. 33.92% (baseline v1 37.73%), IEK м 56.64%, IEK упак. 26.89%, IEK шт. 33.30%

Особенности

Очень честная методология: null вместо нулей для неизвестных данных, блокировка итогового количества при недостатке данных, отдельный testbed с аудитом утечек, OpenAPI-контракты и e2e-тесты Playwright; явно признаётся, что цель WAPE ≤10% не достигнута.

Стек

Python · FastAPI · SQLite · pandas · SciPy · CatBoost · React 19 · TypeScript · Vite · Recharts · Playwright · Docker


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-e1c6f154-tirek-systems-and-solutions.

README

README.md

Tirek — рекомендации по пополнению склада

Проект команды Tirek Systems and Solutions для HackAlem AI. Кейс ТОО «Электрокомплект»: автоматический расчёт заказов поставщикам.

Tirek помогает закупщику перейти от ручного сведения Excel к списку закупок с объяснением каждой позиции. Система учитывает прогноз продаж, остатки, поступления и ограничения партии. Менеджер проверяет рекомендации, меняет количество с указанием причины, утверждает снимок заказа и скачивает CSV. Цель — уменьшить дефицит, излишки и время подготовки заказа; экономический эффект в эксплуатации пока не измерен.

Жюри: запуск · проверка за 5 минут · метрики · подробный сценарий · анализ соответствия условиям.

Что можно проверить

  • Регистрацию, вход, восстановление сессии, выход и смену пароля. Каждый аккаунт получает отдельное рабочее пространство: файлы, расчёты и решения не видны другим аккаунтам.
  • Встроенного помощника: локальная справка доступна без ключа; внешний ИИ подключается администратором через серверные переменные окружения.
  • Обзор склада, поиск и группировку рекомендаций по поставщику, карточку товара, историю спроса, причины решения и отсутствующие данные.
  • Полный демонстрационный цикл: корректировка → утверждение → экспорт → повторное скачивание сохранённого снимка.
  • Импорт совместимых XLSX Systeme Electric и IEK, нормализацию, прогноз v2 и расчёт потребности при наличии подтверждённого текущего остатка и условий партии.
  • Скачивание учебного ZIP в «Источниках данных»: синтетические Excel проходят настоящий расчёт, отдельно от встроенного демо с заранее подготовленными числами.
  • Сохранённые веса, протокол временной проверки, сравнение с baseline и тесты бизнес-правил.

Два режима проверки: встроенное демо содержит 12 синтетических товаров и работает без партнёрских файлов и API-ключей. Его числа подготовлены заранее, forecast.method=contract_example. Реальный адаптер запускает сохранённую модель на локальных XLSX; исходные данные партнёра в Git не включены. При переданных точных интервалах stockout и обезличенных клиентских метках адаптер применяет модуль регулярного спроса к затронутым товарам; метод и поправки видны в обосновании и требуют ручной проверки. Без этого контекста используется сохранённый прогноз v2, а отсутствие данных явно указывается. В исходных партнёрских XLSX таких меток нет: это не доказательство качества коррекции на реальном бизнесе. Проверка MVP.

Быстрый запуск

Нужны Git, Python 3.12, Node.js 20.19+ и npm. Команды выполняются из корня проекта. Для первой установки зависимостей нужен интернет. Docker, внешняя база, обучение модели и ключ LLM не требуются.

git clone https://github.com/BAITC-Hacks/hack-e1c6f154-tirek-systems-and-solutions.git
cd hack-e1c6f154-tirek-systems-and-solutions

Windows / PowerShell

py -3.12 -m venv .venv-ml
.\.venv-ml\Scripts\python.exe -m pip install -r backend/requirements-ml.txt
npm --prefix frontend ci

В первом терминале запустите API:

.\.venv-ml\Scripts\python.exe -m uvicorn backend.app.main:app --host 127.0.0.1 --port 8000

Во втором терминале из того же корня:

npm --prefix frontend run dev

Также доступен общий скрипт ./scripts/dev.ps1: он запускает оба сервера, проверяет доступность API через Vite и сохраняет логи в .logs/. Если PowerShell запрещает выполнение скрипта, используйте две команды выше.

Linux / macOS

python3.12 -m venv .venv-ml
.venv-ml/bin/python -m pip install -r backend/requirements-ml.txt
npm --prefix frontend ci
.venv-ml/bin/python -m uvicorn backend.app.main:app --host 127.0.0.1 --port 8000

Во втором терминале: npm --prefix frontend run dev. Локальная проверка сдачи выполнялась на Windows.

АдресНазначение
http://127.0.0.1:5173Приложение для жюри
http://127.0.0.1:8000/docsИнтерактивная документация API
http://127.0.0.1:8000/api/v1/healthПроверка работы API

Первый запуск автоматически создаёт SQLite. Создайте аккаунт в форме регистрации: имя, название рабочего пространства, email и пароль от 12 символов. В личном пространстве появится явно помеченный демонстрационный набор. Данные сохраняются в data/; другой каталог задаётся переменной DATA_DIR. Остановка — Ctrl+C в каждом терминале. Настройки.

Проверка за 5 минут

  1. Откройте приложение, зарегистрируйтесь или войдите. Если раньше использовались другие данные, нажмите «Новый расчёт», выберите синтетический набор и стандартные параметры: 28 дней = 7 дней поставки + 21 день пересмотра.
  2. В «Рекомендациях» найдите EZ9F34116 и откройте карточку: доступны история, прогноз, остаток, партия и обоснование.
  3. В «Корректировке» введите 13 и причину: приложение должно отклонить количество, не кратное 12. Введите 156 и причину «Уточнён план монтажа», сохраните.
  4. Отметьте позицию, нажмите «Утвердить (1)», затем «Утвердить и скачать CSV». Проверьте в файле final_quantity=156 и причину. Заказ поставщику не отправляется.
  5. В «Истории решений» повторно скачайте снимок. Найдите A9R41240 в рекомендациях: неизвестный остаток показан как —, указана причина отсутствия количества.

Полный сценарий, формат CSV и проверка реальных XLSX.

Технологии и архитектура

ЧастьТехнологии и назначение
ИнтерфейсReact 19, TypeScript, Vite 7, React Router, Recharts, Radix Dialog
API и хранениеPython, FastAPI, Pydantic / JSON Schema, SQLite, фоновые задачи
Данные и прогнозopenpyxl, pandas, NumPy, SciPy, CatBoost; baseline и смеси моделей
Расчёт заказаPython, дневные траектории, поступления, экономика, MOQ и кратность
Проверкиpytest, unittest, Playwright, OpenAPI 3.1
flowchart LR
    XLSX[Локальные XLSX] --> N[Проверка и нормализация]
    N --> F[Прогноз v2 на 28 дней]
    F --> D[Расчёт потребности]
    D --> API[FastAPI и SQLite]
    DEMO[Синтетический набор] --> API
    API <--> UI[React: проверка менеджером]
    UI --> A[Утверждённый снимок]
    A --> CSV[Экспорт CSV]

Методология

  1. Источники проверяются и получают SHA-256 и версию набора. Помесячные продажи и детализация сверяются, а не складываются. Неизвестные значения остаются null.
  2. Прогноз v2 оценивает положительные наблюдаемые продажи на следующие 28 дней. Методы выбирались по трём временным validation-окнам; признаки используют только прошлое, финальные веса нельзя применять к более ранним датам.
  3. Расчёт учитывает свободный запас, даты поступлений, обязательства, внешний прирост и экономический профиль либо явно заданную политику категории. Неизвестные ограничения партии требуют проверки, недостаточные данные блокируют окончательное количество. Бюджет проверяется при утверждении.
  4. Подключённый модуль регулярного спроса оценивает спрос по доступным дням и группирует крупные клиентские покупки в семидневные окна. Повторяемые покупки сохраняются, разовый избыток помечается и исключается из регулярной оценки без удаления исходных событий. Это эвристика; в реальной выгрузке нет точных интервалов stockout и клиентских ID для подтверждения её качества.

Проверка модели на учебных Excel

.\.venv-ml\Scripts\python.exe scripts/generate_sample_data.py --output .local-data/samples

Генератор создаёт синтетические данные с сезонностью, stockout и разовой покупкой. Это функциональный пример, а не данные партнёра или доказательство точности. Во вкладке «Источники данных» выберите Systeme Electric, загрузите шесть XLSX из .local-data/samples, вставьте содержимое additional-context.SYNTHETIC.json в дополнительный контекст и нажмите «Проверить и загрузить». Затем «Перейти к расчёту»:

  • дата 22.09.2026, срок 7 дней, сценарный режим;
  • категория политики: Учебная категория, квантиль 90%, явное обоснование;
  • нажмите «Применить политику к расчёту», затем «Подготовить рекомендации».

Появятся четыре товара. Их числа рассчитываются моделью и правилами при запуске; готовые числа встроенного демо не используются. Откройте SYN-ONE-003: в обосновании показан исключённый разовый объём 300 шт. У SYN-OUT-002 учтён интервал отсутствия. Выберите позиции, изучите предупреждения и утвердите CSV. В снимке есть явные поля «Минимальная партия» и «Склад»; если их убрать, система запросит подтверждённые ограничения вместо скрытой подстановки.

Качество прогноза

Результаты сохранённой v2 на двух ретроспективных 28-дневных окнах:

Поставщик / единицаWAPE v2MAE на товар × окно
Systeme Electric / шт.33,92%212,00
IEK / м56,64%257,26
IEK / упаковки26,89%13,77
IEK / шт.33,30%24,81

WAPE = Σ|прогноз − продажи| / Σпродажи; меньше — лучше. Для SE baseline v1: 37,73%, улучшение v2: 3,82 процентного пункта по неокруглённым значениям. Это ошибка объёма продаж, а не доля верных решений. Последние два окна уже использовались при разработке v1 и не являются новым независимым тестом. Цель WAPE ≤10% не достигнута. Разные единицы не суммируются.

Полный отчёт · сохранённые метрики · воспроизведение и веса.

Автоматические проверки

Из корня после установки зависимостей (Windows; на Linux/macOS замените .\.venv-ml\Scripts\python.exe на .venv-ml/bin/python):

.\.venv-ml\Scripts\python.exe scripts/validate_contract.py
.\.venv-ml\Scripts\python.exe -m pytest backend/tests model -q
npm --prefix frontend run build

При запущенных API и frontend, из каталога frontend/:

npx playwright install chromium --no-shell
npm run test:e2e:service

Playwright создаёт аккаунты, расчёты и утверждения: перед запуском API задайте отдельный DATA_DIR=./.local-data/browser-service. Для ML-сценария сначала создайте учебные файлы командой выше. Старый набор npm run test:e2e:legacy запускается отдельно с другим DATA_DIR и TIREK_AUTH_DISABLED=1; не используйте этот режим на рабочей базе. Подтверждено после объединения с обновлениями команды: 162 backend-теста / 10 подтестов, 181 модельный тест / 966 подтестов, 17 браузерных сценариев, включая SE и IEK XLSX → ML → CSV. Ещё два браузерных прогона прошли на готовой сборке без Vite. Подробности и границы: отчёт проверки MVP. Дополнительно прошли 12 проверок складского шаблона IEK: дубли SKU, склад, единицы, противоречивые остатки, ETA и неизвестный шаг единицы. Метрики прогноза и успешность функциональных тестов оценивают разные свойства.

Ограничения и навигация

  • Реальный веб-адаптер поддерживает расчёт SE, Алматы, штуки и IEK, Алматы, штуки/метры/упаковки. Старый импорт и прогноз IEK ранее проверены на 2 149 товарах. Новый текущий снимок IEK проверяется на учебных данных; без свободного остатка IEK заказ остаётся неопределённым. Образец снимка доступен в учебном ZIP IEK. Запуск на своих файлах и настройка ИИ. Универсального импорта Excel нет.
  • «Настройки» содержат синтетическую симуляцию уровней остатка 40/30/20%. Состояния и события сохраняются отдельно для каждого аккаунта; намерение пересчёта фиксируется, но worker автоматического пересчёта ещё не подключён.
  • При неизвестном MOQ и неподтверждённом складском снимке количество предварительное; утверждение неполных условий блокируется сервером.
  • В реальном адаптере используется одна дневная траектория; вероятностная гарантия уровня обслуживания не подтверждена.
  • LLM-проверка подключается настройками backend/.env; без провайдера и модели она честно недоступна. Реальной отправки поставщикам, живой интеграции с 1С и подтверждённого импорта в конкретную конфигурацию 1С нет.
  • Сервис MVP рассчитан на один сервер и один процесс API. Есть cookie-сессии, защита CSRF, хеширование паролей, изоляция аккаунтов и журнал действий. Приглашения коллег, роли внутри компании, подтверждение email и восстановление забытого пароля по почте пока не реализованы. Партнёрские файлы и секреты не публикуются.

Аккаунты и помощник

Регистрация создаёт личное пространство, вход восстанавливает доступ к сохранённым расчётам. «Настройки» позволяют изменить пароль; при этом прежние сессии отзываются. Утверждение и ручные изменения записывают автора в журнал /api/v1/audit. Cookie недоступна JavaScript, сессия действует 12 часов; запросы изменения данных требуют CSRF-токен. TIREK_AUTH_DISABLED=1 предназначен только для изолированных старых тестов. Не используйте его при общем развёртывании.

Помощник работает только на чтение. Без ключа он показывает локальную справку по навигации и фактам выбранного расчёта, помеченную «Локальная справка». Для внешнего диалога задайте в локальном backend/.env:

OPENAI_API_KEY=<новый ключ, не публикуйте его>
TIREK_ASSISTANT_MODEL=<доступная вашему проекту модель>

Перезапустите API. Текст вопроса передаётся OpenAI; выбранные факты расчёта — только при включённом согласии в панели. Исходные Excel и клиентские события помощник не отправляет. Используется Responses API с store=false; это не равнозначно соглашению Zero Data Retention. Ошибка провайдера отображается как ошибка, а не как успешный ответ ИИ. Опциональная проверка одной позиции использует отдельные TIREK_LLM_* настройки.

Развёртывание одного экземпляра

Для запуска готового интерфейса без Vite:

npm --prefix frontend run build
.\.venv-ml\Scripts\python.exe -m uvicorn backend.app.main:app --host 127.0.0.1 --port 8000 --workers 1

Откройте http://127.0.0.1:8000: API и собранный интерфейс работают на одном адресе. Также подготовлены Dockerfile и compose.yaml: docker compose up --build -d, адрес http://127.0.0.1:8080, данные — в именованном томе tirek-data. Контейнерная сборка требует Docker; факт её проверки отдельно указан в отчёте.

Для внешнего сервера задайте HTTPS, TIREK_COOKIE_SECURE=1 и точный адрес фронтенда в TIREK_ALLOWED_ORIGINS. Обязательно сохраняйте том с базой и загрузками. SQLite и фоновые задачи рассчитаны на один процесс: после перезапуска незавершённая задача получает ошибку и требует повторного запуска. Несколько воркеров и автоматическое восстановление очереди в этот MVP не входят.

Где смотретьСодержание
Сценарий жюриПроверки, XLSX и CSV
Анализ сдачиУсловия, готовность и оставшиеся задачи
Аудит интеграцииПроверки платформы и технические ограничения
Матрица кейсаПять обязательных бизнес-требований
Backend, frontendЗапуск и устройство приложения
ML-интеграцияРеальный адаптер и расширение
Прогноз v2Текущая модель; v1 — предыдущий эксперимент
Расчёт заказаМатематика и ограничения
Синтетический testbedОтдельная среда и её результаты
OpenAPIAPI-контракт и типы
Спецификация, дизайнЦелевой продукт и интерфейс

Планы в docs/ описывают целевой объём. Фактическое состояние реализации и границы доказательств приведены в README и анализе сдачи.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
34
Авторы
3
Файлы
267
Ветки
7

Авторы коммитов

Perricheno 27Adilzhan17 5Codex 2

История коммитов

  • 2026-09-23 16:25test: cover malformed IEK inventory and document verificationCodex
  • 2026-09-23 16:20feat: deliver authenticated procurement MVP with verified ML workflowCodex
  • 2026-09-23 17:06fix: close review and constraint confirmation gapsPerricheno
  • 2026-09-23 17:04fix: align AI evidence and verification runtimePerricheno
  • 2026-09-23 17:01merge: integrate corrected testbed and business regressionsPerricheno
  • 2026-09-23 17:01feat: harden procurement logic and stock monitoringPerricheno
  • 2026-09-23 16:52docs(testbed): preserve full regression and real-data replay evidencePerricheno
  • 2026-09-23 16:48fix(testbed): close numeric and evidence gaps; connect real forecast reviewPerricheno
Все коммиты (34)
  • 2026-09-23 16:34feat: run IEK forecasts from uploaded data and add optional AI reviewAdilzhan17
  • 2026-09-23 16:33Record source review and verified corrected testbed resultsPerricheno
  • 2026-09-23 16:27Fix audited testbed defects and verify original procurement requirementsPerricheno
  • 2026-09-23 16:26test(testbed): record repaired candidate, source findings and regression resultsPerricheno
  • 2026-09-23 16:23fix(testbed): repair data boundaries, procurement checks and source auditPerricheno
  • 2026-09-23 16:15docs: prepare jury README, verification guide and submission analysisAdilzhan17
  • 2026-09-23 16:13fix: verify model runtime and connect real calculation controlsAdilzhan17
  • 2026-09-23 15:56fix: validate API responses and verify development startupAdilzhan17
  • 2026-09-23 15:54feat: connect forecast and procurement model to platformPerricheno
  • 2026-09-23 15:44Audit frozen testbed metrics, leakage and procurement boundariesPerricheno
  • 2026-09-23 15:39merge: добавить воспроизводимую тестовую среду и независимый аудитPerricheno
  • 2026-09-23 15:39merge: объединить прогноз v2 с платформой и расчётом закупокPerricheno
  • 2026-09-23 15:38fix(forecast): проверять совместимость весов и нулевые окнаPerricheno
  • 2026-09-23 15:33feat: add forecast v2 with temporal benchmarks and trained weightsPerricheno
  • 2026-09-23 15:22test(testbed): audit leakage metrics and procurement edge casesPerricheno
  • 2026-09-23 15:22feat: добавить проверяемую математику закупок и модель регулярного спросаPerricheno
  • 2026-09-23 15:13test(testbed): record frozen final evaluation and reproducibility auditPerricheno
  • 2026-09-23 15:11fix(testbed): write reproducible LF-terminated CSV reportsPerricheno
  • 2026-09-23 15:11chore(testbed): freeze candidate before final seed evaluationPerricheno
  • 2026-09-23 15:11feat(testbed): add isolated synthetic forecast and procurement evaluationPerricheno
  • 2026-09-23 15:10feat: add Tirek procurement platform and APIAdilzhan17
  • 2026-09-23 14:38feat: обучить CatBoost для 28-дневного прогноза продаж SEPerricheno
  • 2026-09-23 14:26revert: убрать симуляцию и вернуть объём к ТЗ и обучению моделиPerricheno
  • 2026-09-23 14:22feat: добавить интерактивную симуляцию уровней складского остаткаPerricheno
  • 2026-09-23 14:13docs: добавить уровни остатка и реакцию на складские событияPerricheno
  • 2026-09-23 14:09docs: подготовить ТЗ двух команд и API-контракт MVP на четыре часаPerricheno
Структура репозитория (267 файлов)
.dockerignore
.gitattributes
.gitignore
AGENTS.md
DESIGN.md
Dockerfile
PRODUCT.md
README.md
backend/.env.example
backend/README.md
backend/app/__init__.py
backend/app/ai_review.py
backend/app/assistant.py
backend/app/auth.py
backend/app/contracts.py
backend/app/demand_context.py
backend/app/demo.py
backend/app/iek_adapter.py
backend/app/ingestion.py
backend/app/inventory_template.py
backend/app/main.py
backend/app/ml_adapter.py
backend/app/pipeline.py
backend/app/runtime.py
backend/app/samples.py
backend/app/stock.py
backend/app/storage.py
backend/app/web.py
backend/requirements-ml.txt
backend/requirements.lock.txt
backend/requirements.txt
backend/tests/test_ai_review.py
backend/tests/test_assistant.py
backend/tests/test_auth.py
backend/tests/test_demand_context.py
backend/tests/test_iek_adapter.py
backend/tests/test_import_cli.py
backend/tests/test_ingestion_identity.py
backend/tests/test_inventory_template.py
backend/tests/test_ml_adapter.py
backend/tests/test_platform.py
backend/tests/test_result_semantics.py
backend/tests/test_runtime.py
backend/tests/test_samples.py
backend/tests/test_stock.py
backend/tests/test_uploaded_sample.py
backend/tests/test_web.py
compose.yaml
contracts/README.md
contracts/example-schemas.json
contracts/examples/additional-context.json
contracts/examples/approval-request.json
contracts/examples/approval.json
contracts/examples/calculation-request.json
contracts/examples/dataset-report.json
contracts/examples/error.json
contracts/examples/item-detail.json
contracts/examples/job-succeeded.json
contracts/examples/override-request.json
contracts/examples/recommendations.json
contracts/monitoring-examples/event.json
contracts/monitoring-examples/result.json
contracts/openapi.yaml
contracts/requirements-dev.txt
contracts/stock-monitoring.openapi.yaml
docs/business-audit-2026-09-23.md
docs/decision-rules.md
docs/integration-audit.md
docs/integration.md
docs/jury-guide.md
docs/live-forecast.md
docs/ml-integration.md
docs/model-backend-spec.md
docs/mvp-verification.md
docs/plan-4h.md
docs/platform-spec.md
docs/product-spec.md
docs/requirements-matrix.md
docs/stock-monitoring.md
docs/submission-analysis.md
frontend/.env.example
frontend/.prettierrc.json
frontend/README.md
frontend/e2e/auth.spec.ts
frontend/e2e/ml-workflow.spec.ts
frontend/e2e/platform.spec.ts
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/playwright.config.ts
frontend/public/favicon.svg
frontend/src/App.tsx
frontend/src/api/client.ts
frontend/src/api/schema.d.ts
frontend/src/auth/AuthPage.tsx
frontend/src/auth/SessionProvider.tsx
frontend/src/components/AccountSettings.tsx
frontend/src/components/Assistant.tsx
frontend/src/components/DemandChart.tsx
frontend/src/components/ItemDrawer.tsx
frontend/src/components/RecommendationTable.tsx
frontend/src/components/StockSimulator.tsx
frontend/src/components/ui.tsx
frontend/src/main.tsx
frontend/src/pages/DataPage.tsx
frontend/src/styles.css
frontend/src/vite-env.d.ts
frontend/tsconfig.json
frontend/vite.config.ts
model/README.md
model/artifacts/evaluation.json
model/artifacts/manifest.json
model/artifacts/se-demand-28d.cbm
model/benchmark_protocol.json
model/decision/README.md
model/decision/__init__.py
model/decision/audit_math.py
model/decision/core.py
model/decision/math_audit.json
model/decision/rules.py
model/decision/test_core.py
model/decision/test_integration.py
model/decision/test_rules.py
model/forecast_v2/.gitignore
model/forecast_v2/README.md
model/forecast_v2/REPORT.md
model/forecast_v2/__init__.py
model/forecast_v2/ablation.py
model/forecast_v2/artifacts/IEK__metres-cb_mae_d4.cbm
model/forecast_v2/artifacts/IEK__metres-cb_scaled_mae_d6.cbm
model/forecast_v2/artifacts/IEK__packs-cb_scaled_poisson.cbm
model/forecast_v2/artifacts/IEK__pieces-cb_scaled_mae_d4.cbm
model/forecast_v2/artifacts/IEK__pieces-cb_scaled_poisson.cbm
model/forecast_v2/artifacts/SE__pieces-cb_scaled_poisson.cbm
model/forecast_v2/artifacts/SE__pieces-ridge_100.json
model/forecast_v2/artifacts/ablation.json
model/forecast_v2/artifacts/evaluation.json
model/forecast_v2/artifacts/manifest.json
model/forecast_v2/artifacts/selection.json
model/forecast_v2/artifacts/selection.lock.json
model/forecast_v2/artifacts/validation.json
model/forecast_v2/artifacts/verification.json
model/forecast_v2/data.py
model/forecast_v2/features.py
model/forecast_v2/methods.py
model/forecast_v2/protocol.json
model/forecast_v2/refine.py
model/forecast_v2/report.py
model/forecast_v2/reproduce.sh
model/forecast_v2/requirements.txt
model/forecast_v2/run.py
model/forecast_v2/test_forecast_v2.py
model/forecast_v2/verify.py
model/infer.py
model/lab/README.md
model/lab/__init__.py
model/lab/source_audit.json
model/lab/sources.py
model/lab/test_sources.py
model/pipeline.py
model/regular_forecast/README.md
model/regular_forecast/__init__.py
model/regular_forecast/predictor.py
model/regular_forecast/test_predictor.py
model/requirements.txt
model/test_pipeline.py
model/testbed/README.md
model/testbed/RESULTS.md
model/testbed/__init__.py
model/testbed/adapters.py
model/testbed/audits/2026-09-23/.gitignore
model/testbed/audits/2026-09-23/REPORT.md
model/testbed/audits/2026-09-23/audit.json
model/testbed/audits/2026-09-23/business-run.log
model/testbed/audits/2026-09-23/business.json
model/testbed/audits/2026-09-23/business.md
model/testbed/audits/2026-09-23/business.sh
model/testbed/audits/2026-09-23/generator-run.log
model/testbed/audits/2026-09-23/generator.json
model/testbed/audits/2026-09-23/generator.md
model/testbed/audits/2026-09-23/generator.sh
model/testbed/audits/2026-09-23/metrics-run.log
model/testbed/audits/2026-09-23/metrics.json
model/testbed/audits/2026-09-23/metrics.md
model/testbed/audits/2026-09-23/metrics.sh
model/testbed/audits/2026-09-23/replay-driver.log
model/testbed/audits/2026-09-23/replay.json
model/testbed/audits/2026-09-23/replay.log
model/testbed/audits/2026-09-23/replay.sh
model/testbed/audits/2026-09-23/run.sh
model/testbed/audits/2026-09-23/unit-tests.log
model/testbed/audits/corrections/REPORT.md
model/testbed/audits/corrections/business.md
model/testbed/audits/corrections/development.log
model/testbed/audits/corrections/example-orders.csv
model/testbed/audits/corrections/final.log
model/testbed/audits/corrections/metrics.md
model/testbed/audits/corrections/regression-evidence.json
model/testbed/audits/corrections/requirements.json
model/testbed/audits/corrections/run.sh
model/testbed/audits/corrections/source-inventory.json
model/testbed/audits/corrections/summary.json
model/testbed/audits/corrections/unit-tests.log
model/testbed/audits/review-2/.gitignore
model/testbed/audits/review-2/REPORT.md
model/testbed/audits/review-2/business/driver.log
model/testbed/audits/review-2/business/report.md
model/testbed/audits/review-2/business/results.json
model/testbed/audits/review-2/business/run.sh
model/testbed/audits/review-2/generator/driver.log
model/testbed/audits/review-2/generator/report.md
model/testbed/audits/review-2/generator/results.json
model/testbed/audits/review-2/generator/run.sh
model/testbed/audits/review-2/metrics/driver.log
model/testbed/audits/review-2/metrics/report.md
model/testbed/audits/review-2/metrics/results.json
model/testbed/audits/review-2/metrics/run.sh
model/testbed/audits/review-2/root/development-replay.log
model/testbed/audits/review-2/root/driver.log
model/testbed/audits/review-2/root/final-replay.log
model/testbed/audits/review-2/root/results.json
model/testbed/audits/review-2/root/run.sh
model/testbed/audits/review-2/root/unit-tests.log
model/testbed/audits/review-2/run.sh
model/testbed/audits/review-2/summary.json
model/testbed/baseline.py
model/testbed/business.py
model/testbed/corrected-freeze.json
model/testbed/correction_evidence.py
model/testbed/fixtures/business_cases.json
model/testbed/freeze.json
model/testbed/generator.py
model/testbed/metrics.py
model/testbed/protocol.json
model/testbed/reports/business.json
model/testbed/reports/corrected-development/report.json
model/testbed/reports/corrected-development/report.md
model/testbed/reports/corrected-development/rows.csv
model/testbed/reports/corrected-final/report.json
model/testbed/reports/corrected-final/report.md
model/testbed/reports/corrected-final/rows.csv
model/testbed/reports/development/report.json
model/testbed/reports/development/report.md
model/testbed/reports/development/rows.csv
model/testbed/reports/final/report.json
model/testbed/reports/final/report.md
model/testbed/reports/final/rows.csv
model/testbed/reports/unit-tests.txt
model/testbed/reports/verification.json
model/testbed/requirement_checks.py
model/testbed/run.py
model/testbed/seasonal.py
model/testbed/source_inventory.py
model/testbed/tests/__init__.py
model/testbed/tests/adapter_examples.py
model/testbed/tests/test_boundary_corrections.py
model/testbed/tests/test_business_corrections.py
model/testbed/tests/test_requirement_corrections.py
model/testbed/tests/test_source_inventory.py
model/testbed/tests/test_testbed.py
model/testbed/worker.py
model/train.py
scripts/dev.ps1
scripts/generate_sample_data.py
scripts/import_local.py
scripts/setup.ps1
scripts/validate_contract.py
Ветки (7)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.