Смета Ассистент

Веб-приложение для автоматизации создания смет на изыскательские работы с ИИ-ассистентом.

Возможности

  • Чат с ИИ: Извлечение данных из текста ТЗ или PDF файлов
  • Конструктор смет: Визуальный редактор позиций сметы
  • Справочники базовых цен: СБЦ геодезия, геология, экология
  • Автоматический расчёт: Коэффициенты, перевод в текущие цены, НДС
  • Экспорт в PDF: Генерация готовой сметы (при наличии Python — через модуль на ReportLab с корректной кириллицей)

Структура проекта

├── backend/                 # Node.js + Express + Prisma
│   ├── prisma/
│   │   ├── schema.prisma   # Схема БД
│   │   └── seed.ts         # Начальные данные
│   └── src/
│       ├── routes/         # API роуты
│       └── services/       # Бизнес-логика
├── frontend/               # React + Vite + Tailwind
│   └── src/
│       ├── components/     # React компоненты
│       └── api/            # API клиент
└── data/
    └── price-books/        # JSON справочники цен

Требования

  • Node.js 18+
  • PostgreSQL 14+
  • npm или yarn

Установка

1. База данных

Создайте базу данных PostgreSQL:

CREATE DATABASE estimate_assistant;

2. Backend

Для корректной кириллицы в PDF рекомендуется использовать Python-модуль (ReportLab): установите Python 3.8+, в папке backend/pdf_generator выполните pip install -r requirements.txt. На Windows скрипт использует системный Arial; иначе положите TTF в backend/pdf_generator/fonts/ (см. backend/pdf_generator/README.md). Если Python недоступен, backend использует генерацию на Node (нужен npm install в backend для шрифтов). После изменений перезапустите backend (npm run dev).

cd backend

# Установка зависимостей
npm install

# Скопируйте .env.example в .env и настройте
cp .env.example .env

# Создание таблиц в БД
npm run prisma:push

# Загрузка начальных данных
npm run prisma:seed

# Запуск сервера (порт 5000)
npm run dev

3. Frontend

cd frontend

# Установка зависимостей
npm install

# Запуск (порт 3000)
npm run dev

Конфигурация (.env)

# База данных
DATABASE_URL="postgresql://it:iiEasy348ax@@localhost:5432/estimate_assistant?schema=public"

# Сервер
PORT=5000

# AI провайдер: iieasy или lmstudio
AI_PROVIDER=iieasy

# ai.iieasy.ru
IIEASY_API_URL=https://ai.iieasy.ru/v1
IIEASY_API_KEY=your-api-key
IIEASY_MODEL=google/gemma-3n-e4b

# LM Studio (локальный)
LMSTUDIO_API_URL=http://localhost:1234/v1
LMSTUDIO_MODEL=local-model

# Настройки по умолчанию
DEFAULT_EXECUTOR=ООО "ГеоВектор"
DEFAULT_VAT_RATE=20
DEFAULT_COMPANY_COEF=0.2092

API

Сметы

  • GET /api/estimates - Список смет
  • POST /api/estimates - Создать смету
  • GET /api/estimates/:id - Получить смету
  • PUT /api/estimates/:id - Обновить смету
  • POST /api/estimates/:id/items - Добавить позицию
  • POST /api/estimates/:id/recalculate - Пересчитать
  • GET /api/estimates/:id/pdf - Скачать PDF

Справочники

  • GET /api/price-books - Список справочников
  • GET /api/price-books/items/search?query=... - Поиск позиций
  • GET /api/price-books/coefficients/all - Коэффициенты
  • GET /api/price-books/directions/all - Направления изысканий

Чат

  • POST /api/chat/sessions - Создать сессию
  • POST /api/chat/sessions/:id/messages - Отправить сообщение
  • POST /api/chat/sessions/:id/upload - Загрузить файл

Настройки

  • GET /api/settings - Получить настройки
  • PUT /api/settings/:key - Обновить настройку

Администрирование

  • GET /api/admin/stats - Статистика БД
  • POST /api/admin/price-books/import-json - Импорт справочника

Справочники базовых цен

Данные извлечены из официальных СБЦ:

  • СБЦ "Инженерно-геодезические изыскания" (2004)
  • СБЦ "Инженерно-геологические и инженерно-экологические изыскания" (1999)

JSON файлы находятся в data/price-books/.

Формула расчёта сметы

Базовая_стоимость = Цена_СБЦ × Объём × К1 × К2 × К3
Итого_изыскания = Сумма_работ + Транспорт + Орг_ликв
С_районным_коэф = Итого × Районный_коэф
Текущиеены = С_районным_коэф × Инфляционный_индекс
Итого_без_НДС = Текущиеены × Коэф_компании × Коэф_исполнителя
НДС = Итого_без_НДС × Ставка_НДС
Всего = Итого_без_НДС + НДС

Лицензия

MIT

Description
No description provided
Readme 102 MiB
start Latest
2026-02-03 20:30:40 +00:00
Languages
Python 96.5%
TypeScript 3.3%