Интеллектуальный инструмент для генерации и приоритизации научно-технологических гипотез в НИИ и промышленных лабораториях. Работа в рамках "Норникель AI Science Hack"
  • Python 64.3%
  • TypeScript 33.4%
  • Nix 1.1%
  • JavaScript 0.5%
  • CSS 0.3%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-24 22:05:59 +05:00
.github/workflows fix: change postgres port 2026-07-11 13:51:28 +05:00
docs feat(ml_worker): add domain validator to hypothesis generation pipeline 2026-07-05 02:50:19 +05:00
media/screenshots docs(readme): add screenshots section 2026-07-05 08:09:03 +05:00
services test(ml_worker): fix async marker and regclass cast in postgres ingestion test 2026-07-24 22:05:59 +05:00
.dockerignore chore(build): add dockerignore and expand gitignore patterns 2026-07-04 08:44:31 +05:00
.env.example Test/test data (#14) 2026-07-05 07:56:44 +05:00
.gitignore feat(api-gateway): implement full API contract endpoints and schemas 2026-07-04 20:37:10 +05:00
.pre-commit-config.yaml feat(ml_worker): ingest document tables into postgres per session 2026-07-24 21:30:36 +05:00
.python-version feat(workspace): initialize uv monorepo with api gateway and ml worker 2026-07-03 17:46:50 +05:00
docker-compose.yaml Test/test data (#14) 2026-07-05 07:56:44 +05:00
init.sql Fix/ml and api integration (#10) 2026-07-05 00:10:19 +05:00
LICENSE update: add LICENSE 2026-07-11 11:34:05 +05:00
pyproject.toml Services/api gateway user (#8) 2026-07-04 18:24:00 +05:00
README.md docs(readme): add screenshots section 2026-07-05 08:09:03 +05:00
uv.lock feat(ml_worker): migrate yandex ai studio client to openai-compatible api 2026-07-04 21:06:32 +05:00

Фабрика гипотез

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

Скриншоты

Скриншоты интерфейса размещаются в папке media/screenshots/.

Авторизация

Страница входа

Чат

Главный экран чата

Гипотеза

Карточка гипотезы

Граф знаний

Визуализация графа знаний

Архитектура

Проект представляет собой монорепозиторий на uv с несколькими сервисами:

  • services/api_gateway — HTTP API для пользователей (FastAPI): аутентификация, сессии, загрузка файлов, запуск задач.
  • services/ml_worker — фоновый ML/Celery worker: ingestion документов, NER, RAG, генерация и ревью гипотез.
  • services/frontend — веб-интерфейс (React + Vite).

Инфраструктура поднимается через docker-compose.yaml:

  • PostgreSQL — пользователи, сессии, сообщения, результаты.
  • Redis — брокер Celery.
  • ChromaDB — векторное хранилище.

Быстрый старт

  1. Скопируйте .env.example в .env и заполните обязательные переменные:
cp .env.example .env

Обязательно задайте:

  • YANDEX_API_KEY — ключ доступа к Yandex AI Studio.
  • YANDEX_FOLDER_ID — идентификатор каталога Yandex Cloud.

Остальные переменные заполнены разумными значениями по умолчанию.

  1. Запустите инфраструктуру и сервисы:
docker compose up -d
  1. Создайте первого администратора:
uv run --package api-gateway python scripts/create_admin.py admin <password>

Или внутри запущенного контейнера:

docker compose exec api_gateway /app/.venv/bin/python /app/scripts/create_admin.py admin <password>
  1. Откройте веб-интерфейс:
  • Frontend: http://localhost:4173
  • API Gateway: http://localhost:8000
  • Документация API: http://localhost:8000/docs

По умолчанию frontend в Docker обращается к API по относительному пути /api/v1, что позволяет использовать один домен с nginx. Для локальной разработки вне Docker можно переопределить адрес:

VITE_API_BASE_URL=http://localhost:8000/api/v1 npm run dev

Локальная разработка

Проект использует uv для управления зависимостями. Чтобы установить все необходимые dev-зависимости (линтеры, форматеры, pre-commit), выполните:

uv sync --group dev

После этого инструменты ruff, mdformat и pre-commit станут доступны в окружении проекта.

Pre-commit

Хуки настраиваются через .pre-commit-config.yaml и используют локальные утилиты из dev-зависимостей. Для установки хуков выполните:

pre-commit install
# Или через uv
uv run pre-commit install

Чтобы проверить все файлы вручную до коммита:

pre-commit run --all-files
# Или через uv
uv run pre-commit run --all-files

Хуки будут запускаться автоматически при каждом git commit.

Переменные окружения

Основные переменные описаны в .env.example:

  • POSTGRES_* — подключение к PostgreSQL.
  • POSTGRES_DSN / DATABASE_URL — DSN для ML Worker и API Gateway.
  • CELERY_BROKER_URL, CELERY_RESULT_BACKEND — подключение к Redis.
  • CHROMA_HOST, CHROMA_PORT — подключение к ChromaDB.
  • SECRET_KEY — ключ для подписи JWT.
  • YANDEX_API_KEY, YANDEX_FOLDER_ID — доступ к Yandex AI Studio.
  • YANDEX_EMBED_MODEL, YANDEX_LLM_MODEL — модели для эмбеддингов и генерации.
  • YANDEX_LLM_TEMPERATURE, YANDEX_LLM_MAX_TOKENS — параметры генерации.
  • NER_MODEL_NAME, HF_TOKEN — модель GLiNER и токен HuggingFace.
  • API_GATEWAY_PORT, FRONTEND_PORT — внешние порты сервисов.
  • UPLOAD_DIR — директория для загружаемых файлов.
  • REPORT_DIR — директория для отчётов ML worker.

Статус реализации

Реализовано:

  • Приём и предобработка документов (PDF, Excel, Word, Markdown, TXT, базы данных).
  • Извлечение сущностей и связей (NER), построение графа знаний.
  • Генерация и ревью гипотез с обоснованием, оценкой новизны, рисков и ценности.
  • Валидация сгенерированных гипотез с возможностью fallback на экспертную проверку.
  • Ранжирование по настраиваемым весам критериев.
  • Сессионная модель: чат-проект с сохранением ограничений, весов, истории сообщений и результатов.
  • Итеративное улучшение гипотез на основе предыдущих результатов (previous_hypothesis, previous_review) и RAG-истории.
  • Формирование JSON/HTML отчётов по каждому сообщению.
  • Docker Compose развёртывание всех сервисов.

Ещё не реализовано:

  • Визуальный конструктор дорожных карт проверки гипотез с оценкой ресурсов и сроков.
  • Явный механизм обучения на фидбэке эксперта (подтверждено/опровергнуто). Обратная связь учитывается косвенно через previous_review и RAG-историю, но в схеме БД нет отдельного статуса верификации гипотезы.

Документация по сервисам