Локальная установка (Python + venv)¶
Эта инструкция — для локальной разработки (без Docker). Подойдёт, если запускать NLP, BIM и клиент MCP напрямую на машине.
1. Требования¶
- Python ≥ 3.11 (рекомендуется 3.11 — 3.13).
- Git.
- При тестировании MCP требуется локально установленный FreeCAD (MCP сервер работает внутри FreeCAD).
2. Клонирование репозитория¶
bash
git clone <репозиторий-git> draftai
cd draftai
3. Создание корневого виртуального окружения (рекомендуется) и устанвока зависимостей¶
Мы используем «гибрид»: предпочитаем корневой .venv, если его нет — используем компонентные .venv.
Windows (PowerShell)
cd nlp_core
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install -r requirements.txt
Linux / macOS python -m venv .venv source .venv/bin/activate pip install --upgrade pip setuptools wheel
ПРИМЕЧАНИЕ. В requirements.txt могут быть тяжёлые пакеты (transformers, ifcopenshell и т.д.) — установка займёт время.
Установка модели spaCy (обязательно для NLP)
python -m spacy download ru_core_news_sm
Если команда не срабатывает в текущем окружении — убедитесь, что активировали .venv перед запуском.
4. Запуск модулей¶
NLP Core¶
python .\nlp_core\run_cli.py --out .\OUT\result.json -v
либо, явно:
python -m nlp_core.run nlp_core/input/TZ_object.docx nlp_core/OUT/result.json
Проверь nlp_core/OUT/result.json.
BIM Core (после успешного NLP)¶
PowerShell (из корня репо):
автопоиск IFC в bim_core/samples:
python .\bim_core\bim_core\run_cli.py --tz .\nlp_core\OUT\result.json --out .\bim_core\runs -v
В результате в bim_core/runs/ появятся stubs.json, match_report.json, spaces.json.
MCP (FreeCAD) — локально¶
MCP-сервер нельзя полноценно запускать вне окружения FreeCAD (модуль FreeCAD отсутствует в обычном интерпретаторе).
Запустить MCP в FreeCAD:
Открой FreeCAD GUI.
В Python-консоли (View → Panels → Python console) выполнить:
exec(open(r"C:\path\to\draftai\mcp_server\mcp_serverV3.py", encoding="utf-8").read())
(подставь реальный путь к файлу)
Например: exec(open(r"C:\draftai\mcp_server\mcp_serverV3.py", encoding="utf-8").read())
После этого MCP будет слушать 127.0.0.1:9090
(или тот, что у тебя в коде).
Отправить примитивы на MCP:¶
python .\scripts\send_stubs_cli.py --stubs bim_core/runs/stubs.json -v
python scripts/send_stubs_cli.py --stubs bim_core/runs/stubs.json --host 127.0.0.1 --port 9090 -v
5. Советы / Troubleshooting¶
Если данные создаются внутри контейнера Docker (при использовании Docker) — см. docs/install/docker.md
и как монтировать тома.
- TZ файл не найден
Проверьте путь, откуда вы запускаете команду. Рекомендуется запускать из корня репозитория. Используйте абсолютный путь или корректируйте относительный.
- No spaces.json provided or generated from IFC
Убедитесь, что --ifc
указан или ifc_reader.export_spaces
успешно создал runs/spaces.json.
Проверьте логи bim_core
— возможно ifc_reader
упал из-за формата IFC.
- ModuleNotFoundError: No module named 'FreeCAD'
MCP можно запускать только внутри FreeCAD или с FREECAD_PATH, указывающим на папку с бинарными модулями FreeCAD.
Рекомендация: открыть FreeCAD GUI и выполнить exec(open(r'.../mcp_serverV3.py').read())
в Python Console.
- ConnectionRefusedError при отправке stubs
MCP не слушает указанный порт: убедитесь, что MCP запущен и слушает HOST:PORT.
Проверьте, что send_stubs_cli.py
посылает на тот же host/port
, что и MCP.
- .venv не коммитить. .venv должен быть в .gitignore.
6. Резюме¶
Для PoC удобнее локально: создать один .venv
, установить deps
, скачать spaCy модель, последовательно запускать nlp → bim → MCP в FreeCAD
и отправлять stubs.json.
7. Последовательный запуск скриптов (PowerShell)¶
setup_dev_env.ps1
- скрипт автоматического запуска виртуального окружения в корневой папке
запускается PowerShell командой: .\scripts\setup_dev_env.ps1
run_pipeline.ps1
- скрипт автоматического последовательного выполнения NLP-BIM-MCP
запускается PowerShell командой: .\scripts\run_pipeline.ps1
. !!! Нужно проверить предварительно установку python -m spacy download ru_core_news_sm!!! без неё будет ошибка Step 1/4
Запуск скриптов (Linux/MacOS) тестировал через git_bash работает
setup_dev_env.sh
- скрипт автоматического запуска виртуального окружения
run_pipeline.sh
- скрипт автоматического последовательного выполнения NLP-BIM-MCP