SaaS-ускоритель для опытного тендерного специалиста МСБ в РФ. Загружаешь PDF тендерной документации (44-ФЗ / 223-ФЗ) — через 30–60 сек получаешь структурированный отчёт с цитатами, сверку с профилем компании (светофор), календарь дедлайнов и Telegram-уведомления.
Статус: Day 0 завершён — каркас инфраструктуры готов, код MVP ещё не написан.
План: см. C:\Users\REDMI\.claude\plans\silly-orbiting-puddle.md.
PRD / spec: см. .claude/TenderBot_PRD_v2.md и .claude/spec.md в родительской папке.
- Web: Next.js 16 App Router + TypeScript + Tailwind 4
- БД: PostgreSQL 16 + Prisma 7 (через
@prisma/adapter-pg) - Очередь: BullMQ (Redis) — Node продюсер, минималистичный Python consumer
- LLM: Anthropic Claude Sonnet 4.6 (primary, подтверждается spike W0); OpenAI / YandexGPT — fallback
- PDF: pdfplumber (MIT) + vision-fallback для сканов
- Storage: Yandex Object Storage (S3-совместимое, 152-ФЗ)
- Auth: magic link через Resend
- Биллинг: ЮKassa (РФ)
- Telegram: grammY
- Мониторинг: Sentry + PostHog
app/ Next.js App Router (UI + API routes + Server Actions)
components/ UI: pdf-viewer/, report/, ui/
lib/ Server-side TS: db, storage, llm, queue, matching, telegram, yookassa
worker/ Python 3.12+ воркер (PDF → LLM → JSON)
prisma/ schema.prisma + migrations
datasets/golden/ Эталонные ТД для eval (PDF не коммитятся, truth.json — да)
scripts/ compare-providers.py, eval-llm.py, seed-profile.ts
docs/ spike-report.md, runbook.md
- Node.js 20+ (проверено на 24.13), pnpm 10+ (поставлен глобально)
- Python 3.12+ ← не установлен на текущей машине, нужен к неделе 0 для spike. Ставь отсюда: https://www.python.org/downloads/
- Docker Desktop ← не установлен, нужен к неделе 1 для Postgres + Redis. https://www.docker.com/products/docker-desktop
# 1. Зависимости Node
pnpm install
# 2. Секреты
cp .env.example .env
# Заполни ANTHROPIC_API_KEY, DATABASE_URL, REDIS_URL как минимум
# 3. Postgres + Redis локально (после установки Docker Desktop)
docker compose up -d postgres redis
# 4. Prisma
pnpm prisma migrate dev
pnpm prisma generate
# 5. Python-воркер (после установки Python)
python -m venv worker/.venv
worker/.venv/Scripts/activate # Windows
pip install -r worker/requirements.txt
# 6. Dev-сервер
pnpm dev
# 7. Воркер (в другом терминале)
python worker/main.py# Собери 5-10 ТД с zakupki.gov.ru вручную в datasets/golden/tender_XX.pdf
# Заполни ground truth: datasets/golden/tender_XX.truth.json (структура — worker/schema.py)
python scripts/compare-providers.py --providers anthropic
# → datasets/spike-results.json
# → docs/spike-report.md
# Gate-критерии (план §2.3):
# accuracy ≥ 85%, quote validity ≥ 95%, cost ≤ $0.30/tender, p95 latency ≤ 40s
python scripts/eval-llm.py --fail-under 85| Команда | Что делает |
|---|---|
pnpm dev |
Next.js dev-сервер |
pnpm build / pnpm start |
Production-сборка |
pnpm lint |
ESLint |
pnpm prisma validate |
Проверить schema.prisma |
pnpm prisma generate |
Сгенерировать PrismaClient |
pnpm prisma migrate dev |
Создать/применить миграцию |
python worker/main.py |
Запустить Python воркер |
python scripts/compare-providers.py |
Spike — сравнение LLM провайдеров |
python scripts/eval-llm.py |
Quality gate на golden-датасете |