Skip to main content

Auto_BI

CI Coverage Python BI targets DWH License

Агент «запрос → дашборд» поверх DM-слоя DWH. Принимает запрос текстом, drag&drop-раскладкой полей витрин или авто-обзором витрины (детерминированный курируемый дашборд без LLM), уточняет детали только при реальных расхождениях с данными, честно предупреждает о не предусмотренных витриной паттернах (engine-aware Feasibility Advisor — вплоть до «это запрос на новую витрину»), строит дашборд в выбранной BI и возвращает ссылку.

Скоуп v1 (RU-рынок, release-gated в CI): ClickHouse (DM) + Apache Superset (BI). v2 experimental: Greengage/Greenplum (offline advisor/golden в CI; live DWH — operator stand) + Yandex DataLens (unit compile offline; live contract Mac-only, не default release gate). Универсальность — в швах (IR, адаптеры), не в имплементации. LLM: прямой Anthropic Messages API (по умолчанию — нужен только ANTHROPIC_API_KEY); локальный сервис GraceKelly — документированная опция (AUTO_BI_LLM_PROVIDER=gracekelly, см. USER_GUIDE §6).

Демо

Живое демо: https://juliome20-auto-bi-demo.hf.space — публичная песочница (Hugging Face Space, один контейнер ClickHouse + Superset + Auto_BI): выберите витрину, соберите авто-обзор и откройте готовый дашборд в Superset без логина. Работает детерминированный путь без LLM; полный текстовый цикл — на видео ниже. Данные синтетические, всё пересоздаётся при рестарте (холодный старт ~3 мин).

Auto_BI — полный цикл: текст → уточнение → спецификация + advisor → сборка → дашборд Superset

Живой цикл (сжаты только паузы ожидания LLM): запрос «средний чек по месяцам, Парето по магазинам, динамика количества» → агент уточняет неоднозначное «количество» (orders vs items) → превью спецификации с вердиктом Feasibility Advisor (CRITICAL: запрос сканирует 100% витрины в 20 млн строк — предложение сузить период) → сборка → готовый дашборд Superset на реальных данных ClickHouse: средний чек как производная метрика sum(revenue)/sum(orders) по месяцам, Парето — накопленная доля выручки по магазинам. Видео в лучшем качестве — docs/screenshots/demo.mp4.

Веб-UI: запрос → спецификация + Feasibility Advisor Собранный дашборд (Superset)
Auto_BI web UI — превью спецификации с вердиктами advisor Auto_BI дашборд — топ-10 городов по выручке, Superset

Слева — естественно-языковой запрос, уточнения агента, превью спецификации (IR) и вердикты Feasibility Advisor (CRITICAL → заявка владельцу DM, WARN → правка спеки). Справа — собранный из той же спецификации дашборд Superset на реальных данных ClickHouse.

Статус

Phase 0–4 + бэклог адекватности дашбордов (B1–B4) закрыты. Работает end-to-end: текст/поля → spec → валидация → сборка дашборда. v1-стек (ClickHouse + Superset) и v2-стек (Greenplum/Greengage интроспекция + advisor; self-hosted DataLens-адаптер) live-проверены; web UI с двумя режимами ввода, итерациями, Feasibility Advisor, заявками владельцу DM и панелью наблюдаемости.

Актуальное состояние и residual roadmapdocs/CURRENT_STATE.md. История фаз — docs/PLAN.md. Полный env inventory (generated) — docs/ENV_REFERENCE.md.

Чем отличается

Зрелого бесплатного инструмента «диалог → целый дашборд поверх DWH с выбором BI» нет ни в России, ни глобально (обзор с проверкой первоисточников — docs/MARKET.md). Три отличия от существующих NL→chart-решений:

  • Grounding по конкретному DM, а не свободный чат — уточнения только при реальных расхождениях запроса с витриной; однозначный запрос → ноль вопросов.
  • Дашборд целиком из BI-агностичного IR (layout, фильтры, N чартов) — а не один чарт по готовому датасету (отличие от DataLens «Нейроаналитик»). Один spec → Superset и DataLens.
  • Engine-aware Feasibility Advisor — детерминированно сверяет запрос с физикой витрины (ключи сортировки/партиции, EXPLAIN) и прямо говорит «такой дашборд витриной не предусмотрен, вот evidence и заявка владельцу DM». Этого нет ни у одного конкурента.
flowchart LR
    Q["Запрос<br/>текст · поля"] --> G["GROUNDING<br/>по semantic model"]
    G --> C{"уточнения?"}
    C -->|да| G
    C -->|нет| S["DashboardSpec<br/>IR · валидируется по модели"]
    S --> SQL["SQL-guard<br/>sqlglot · EXPLAIN · LIMIT"]
    S -.->|вердикты| ADV["Feasibility Advisor<br/>engine-aware"]
    SQL --> A1["Superset adapter"]
    SQL --> A2["DataLens adapter"]
    A1 --> D[("Дашборд")]
    A2 --> D

Как пользоваться

Установка, команды CLI, web UI, конфигурация — docs/USER_GUIDE.md. Подключение новой витрины DWH за ≤ 1 ч — docs/ONBOARDING_DWH.md.

Local-first — три ступени:

  1. Офлайн golden path — без DWH, BI, LLM и API-ключа:
uv run python scripts/demo_golden_path.py
  1. HF Space — детерминированный auto-only, пользовательский ключ не нужен; текстовый режим там намеренно недоступен (см. «Демо» выше).

  2. Полный локальный путь. Скопируйте .env.example в .env (cp .env.example .env; PowerShell: Copy-Item .env.example .env). Задайте свой ANTHROPIC_API_KEY или AUTO_BI_LLM_PROVIDER=gracekelly и AUTO_BI_GRACEKELLY_URL. Для DWH/BI — AUTO_BI_CH_HOST, AUTO_BI_CH_PASSWORD, AUTO_BI_SUPERSET_URL, AUTO_BI_SUPERSET_PASSWORD (полный inventory — docs/ENV_REFERENCE.md). docker compose up -d поднимает только ClickHouse и Superset, не Auto_BI; агент локально: auto_bi servehttp://127.0.0.1:8200.

pip install autobi-agent                          # или pip install -e . из корня репозитория
auto_bi introspect --output semantic/model.yaml   # DWH -> черновик модели
auto_bi build "Выручка по магазинам за июнь 2026"  # текст -> дашборд
auto_bi build --auto dm.sales_daily                # витрина -> обзорный дашборд (без LLM)
auto_bi serve                                     # web UI на http://127.0.0.1:8200

Хотите увидеть весь конвейер за минуту, без стенда и без LLM — на синтетической витрине из репозитория:

uv run python scripts/demo_golden_path.py

Скрипт прогоняет детерминированную часть end-to-end: семантическая модель → курируемый обзорный дашборд → скомпилированные примеры SQL для KPI и разреза с JOIN → вердикт Feasibility Advisor (включая dm_change_request — «витрина не предусматривает такой разрез, вот evidence»). Живым остаётся только финальный BUILD (HTTP к Superset/DataLens + EXPLAIN на стенде).

Документация

Файл Что внутри
docs/USER_GUIDE.md Руководство пользователя: установка, команды CLI, web UI, два режима ввода, advisor, наблюдаемость, конфигурация
docs/ONBOARDING_DWH.md Подключение нового DWH за ≤ 1 ч: доступы, .env, интроспекция, обогащение, проверка (ClickHouse + Greenplum)
docs/ARCHITECTURE.md Архитектура: скоуп, IR-first, семантическая модель с физическим слоем, агент, Feasibility Advisor, адаптеры, LLM-слой, решения D1–D10, риски
docs/DEPLOYMENT.md Деплой в проде: workers=1, reverse-proxy/TLS, готовность, docker-compose, бэкап SQLite, ротация логов, чеклист секретов
CHANGELOG.md История версий по Keep a Changelog — что вошло в каждый релиз
docs/PLAN.md План: Phase 0–4, задачи, exit criteria; полезный продукт после Phase 2 (~2.5–3 мес FTE)
docs/MARKET.md Рынок на 06.2026: RU (СУБД, BI, AI-фичи конкурентов, статус Superset) + глобальный контекст

Ссылки вида internal/<дата>-<тема>.md в доках и докстрингах указывают на рабочие runbook'и и дизайн-ноты, которые живут во внутреннем репозитории и не публикуются: это разборы стендов, машин и ходов отладки. Всё, что имеет продуктовое значение, перенесено в поддерживаемые доки из таблицы выше — ссылка оставлена как след происхождения решения, а не как обязательное чтение.

Суть архитектуры в одном абзаце

LLM никогда не генерирует нативные форматы BI. Пайплайн: запрос (текст или раскладка полей) → grounding по семантической модели (model.yaml, включая физический слой движка) → уточнения при необходимости → DashboardSpec (BI-агностичный JSON, жёстко валидируется по модели) → SQL с проверкой (sqlglot/EXPLAIN/LIMIT) → детерминированный компилятор-адаптер строит дашборд через API выбранной BI. Параллельно детерминированный Feasibility Checker сверяет запрос с физикой витрины (ключи сортировки/партиции, размеры, EXPLAIN) — advisor прямо говорит, когда дашборд витриной не предусмотрен, и умеет оформить заявку владельцу DM. Один spec — N платформ.

Разработка

uv sync                                              # окружение из uv.lock (вкл. dev-инструменты)
uv run ruff check .                                  # линтер
uv run black --check auto_bi tests                   # формат
uv run --with duckdb pytest -q                       # тесты (integration-сьюты со стендом — deselected)
uv run --with duckdb --with pytest-cov pytest --cov=auto_bi --cov-report=term-missing   # покрытие
uv run python scripts/verify_live_clickhouse.py      # числа CH-путей на ЖИВОМ стенде (ratio/grain/yoy/compare-KPI/авто-обзор)

--with duckdb — эфемерная test-dep (проверяет numeric-корректность transform-SQL под postgres-семантикой окон; без неё те тесты importorskip). Те же шаги гоняет CI на push/PR (.github/workflows/ci.yml). Покрытие в бейдже выше генерируется самим CI на каждый push в main (.github/badges/coverage.json, из coverage report --format=total) — не статичное число.

Compatibility gates (plan_sol step 10): primary offline quality на Python 3.12; дополнительно job Lint & tests (Python latest) (3.13) и Windows package/CLI smoke. Dependency resolution matrix (locked / latest-compatible / lowest-direct) — step 6. Superset-контрактный сьют (tests/test_superset_contract.py) + живой auto_bi build --auto + browser E2E — job integration на docker-compose ClickHouse+Superset. Greenplum — offline advisor + golden replay в quality (live GP stand experimental). DataLens live contract (tests/test_datalens_contract.py) — Mac-only experimental, не в default CI. Матрица claims↔gates: tests/test_compatibility_matrix.py. Job docker собирает образ на каждый PR; на тег vX.Y.Z.github/workflows/release.yml → GHCR + GitHub Release из CHANGELOG.md.

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autobi_agent-0.5.0.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autobi_agent-0.5.0-py3-none-any.whl (338.4 kB view details)

Uploaded Python 3

File details

Details for the file autobi_agent-0.5.0.tar.gz.

File metadata

  • Download URL: autobi_agent-0.5.0.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for autobi_agent-0.5.0.tar.gz
Algorithm Hash digest
SHA256 cd2d5583616580bfbc2a19afb03b12c7debbbd933ff9b7df01f8286d4a993ce0
MD5 4750c8caf8879f6ea2546527b3528271
BLAKE2b-256 1fe136659a8c86dc10abcfffad948be2e8e5e0f01e247f4a155a6694bd519dc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for autobi_agent-0.5.0.tar.gz:

Publisher: release.yml on brownjuly2003-code/Auto_BI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file autobi_agent-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: autobi_agent-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 338.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for autobi_agent-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c18ff4d045e7cd5d7c4dd0e9351c95a5000684cf472cd65c5c142d30b2403f52
MD5 6866911808effb9d06ac14505c30c261
BLAKE2b-256 6c889cb5640d77dd86386f6dff003ca668c7f4812fb8bfae691035f45874259a

See more details on using hashes here.

Provenance

The following attestation bundles were made for autobi_agent-0.5.0-py3-none-any.whl:

Publisher: release.yml on brownjuly2003-code/Auto_BI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.0

2 files

0.3.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page