Версия: 1.0 · Репозиторий: github.com/andreyivan4enkov/sdr_core
Интеграция с CRM: акторы Reactor v3 (pulse / probe / fold / gate / touch / face / wire)
Термодвижок — графовая AI-песочница для проектирования и наблюдения сложных динамических систем:
- физические поля (Изинг, Gray-Scott, LBM, Physarum);
- рои и стигмергия;
- LLM-цепочки и Python-вычисления;
- предиктор с surprise-gated learning (ядро, в UI пока не подключён).
Используется как научный и AI-слой под продуктовым Реактором CRM: те же идеи (триггер → чтение → преобразование → ветвление → действие → экран), но с типизированными пинами полей и симуляциями.
┌─────────────────────────────────────────────────────────┐
│ Frontend (React + @xyflow/react) │
│ GraphCanvas, 13 типов нод, 2D/3D, AI Chat │
└──────────────────────────┬──────────────────────────────┘
│ REST + WebSocket
┌──────────────────────────▼──────────────────────────────┐
│ Backend (FastAPI) │
│ simulation, ai, graph, execute │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────┐
│ Engine (NumPy) │
│ Field, Agents, ops, Predictor, EdgeController, modules │
└─────────────────────────────────────────────────────────┘
| Каталог | Содержание |
|---|---|
engine/ |
Ядро: field.py, ops.py, agents.py, predictor.py, edge_controller.py |
engine/modules/ |
ising, gray_scott, lbm, stigmergy, mycelium, replicator |
backend/app/ |
FastAPI: main.py, ai_adapter.py, routes/* |
frontend/src/ |
Редактор графа, визуализация, stores |
tests/ |
pytest для field, ising, agents, gray_scott |
# Windows
.\start.ps1# Linux / macOS / WSL
./start.shИли вручную:
# Backend
cd backend && python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
PYTHONPATH=.. uvicorn app.main:app --reload --port 8002
# Frontend
cd frontend && npm install && npm run dev- API: http://localhost:8002
- UI: http://localhost:5175
- Docs: http://localhost:8002/docs
| Нода | Модуль | Описание |
|---|---|---|
| Ising | ising.py |
Модель Изинга L×L, фазовые переходы, M/E/χ |
| Gray-Scott | gray_scott.py |
Реакция-диффузия, паттерны Тьюринга |
| Stigmergy Swarm | stigmergy.py |
Рой + феромонное поле |
| LBM Fluid | lbm.py |
Решётка Больцмана D2Q9 |
| Physarum | mycelium.py |
Сеть слизевика, проводимости рёбер |
| Нода | Описание |
|---|---|
| LLM Node | Стриминг LLM (15+ провайдеров) |
| Prompt Template | Шаблон {var} → промпт |
| AI Chat | Чат + JSON-команды set_param / sweep |
| Python Code | Sandbox /api/execute/python |
| Math | Арифметика над пинами |
| Loop | Цикл шагов симуляции по FPS |
| Нода | Описание |
|---|---|
| Field View | 2D превью поля |
| Metrics Chart | Временные ряды метрик |
Определены в frontend/src/lib/pinTypes.ts:
| Тип | Назначение |
|---|---|
field |
2D numpy-поле |
float / int |
Скаляры параметров |
string |
Промпты, текст |
signal |
События (tick, done) — аналог exec |
agents |
Объект Agents |
array / tensor |
Массивы |
image |
base64 кадр |
any |
Без типа |
Данные между нодами — через nodeDataStore (ручное чтение/запись пинов).
POST /create— тип: ising | lbm | gray_scott | stigmergy | mycelium | replicatorPOST /{id}/step?n=— шагиPOST /{id}/start?fps=/stop— авто-циклPATCH /{id}/param— изменить T, F, k, …GET /{id}/metrics— история
GET /providers— список LLMPOST /chat— SSE-стримPOST /chat/ws/{session_id}— через WebSocket
POST /{session_id}/save— nodes + edgesGET /presets/list— ising_basic, gray_scott_basic, swarm_turing
POST /python— выполнение кода ноды
Клиент: step, set_param, chat, get_state
Сервер: field_update, metrics, chat_chunk, param_changed
2D многоканальная сетка, периодические границы, sample, write, экспорт PNG.
N агентов с K-мерным состоянием; read_field, write_field (стигмергия), move_toward_gradient.
add, mul, conv, diffuse, laplacian, phase_mod — операции над полями.
Линейный предиктор W·x + b; обучение с surprise = ||error|| (lr растёт с сюрпризом).
Гомеостаз θ у критической грани: task_feedback, bifurcation_guard, soc.
| Reactor | Термодвижок |
|---|---|
| pulse | LoopNode, SimControls, WS step |
| probe | MetricsNode, VisualizerNode |
| fold | MathNode, PythonCodeNode, LLMNode, PromptTemplate |
| gate | LoopNode, EdgeController |
| touch | AI set_param, POST step/start |
| face | Field View, Metrics, 2D/3D режимы |
| wire | ReactFlow edges + nodeDataStore |
В CRM-редакторе продукта справка по каждому актору — панель «Справка» в инспекторе (данные из packages/reactor-core/src/node-help.ts).
pip install -r backend/requirements.txt pytest
python -m pytest tests/ -qai_docs/thermo-engine.md— JIT для AI-агентовai_docs/reactor-node-catalog-v3.md— каталог акторов v3ai_docs/reactor-compose.md— AI Compose