feat(fabric): decommission Swapper from critical path, NCS = source of truth

- Node Worker: replace swapper_vision with ollama_vision (direct Ollama API)
- Node Worker: add NATS subjects for stt/tts/image (stubs ready)
- Node Worker: remove SWAPPER_URL dependency from config
- Router: vision calls go directly to Ollama /api/generate with images
- Router: local LLM calls go directly to Ollama /api/generate
- Router: add OLLAMA_URL and PREFER_NODE_WORKER=true feature flag
- Router: /v1/models now uses NCS global capabilities pool
- NCS: SWAPPER_URL="" -> skip Swapper probing (status=disabled)
- Swapper configs: remove all hardcoded model lists, keep only runtime
  URLs, timeouts, limits
- docker-compose.node1.yml: add OLLAMA_URL, PREFER_NODE_WORKER for router;
  SWAPPER_URL= for NCS; remove swapper-service from node-worker depends_on
- docker-compose.node2-sofiia.yml: same changes for NODA2

Swapper service still runs but is NOT in the critical inference path.
Source of truth for models is now NCS -> Ollama /api/tags.

Made-with: Cursor
This commit is contained in:
Apple
2026-02-27 04:16:16 -08:00
parent 90080c632a
commit 194c87f53c
11 changed files with 347 additions and 614 deletions

View File

@@ -25,9 +25,11 @@ services:
- XAI_API_KEY=${XAI_API_KEY}
- GROK_API_KEY=${XAI_API_KEY}
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
# ── Node Capabilities (multi-node model selection) ────────────────────
# ── Fabric Layer (NCS + Node Worker, no Swapper dependency) ──────────
- NODE_CAPABILITIES_URL=http://node-capabilities:8099/capabilities
- ENABLE_GLOBAL_CAPS_NATS=true
- OLLAMA_URL=http://host.docker.internal:11434
- PREFER_NODE_WORKER=true
# ── Persistence backends ──────────────────────────────────────────────
- ALERT_BACKEND=postgres
- ALERT_DATABASE_URL=${ALERT_DATABASE_URL:-${DATABASE_URL}}
@@ -121,7 +123,7 @@ services:
environment:
- NODE_ID=NODA2
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- SWAPPER_URL=http://swapper-service:8890
- SWAPPER_URL=
- LLAMA_SERVER_URL=http://host.docker.internal:11435
- CACHE_TTL_SEC=15
- ENABLE_NATS_CAPS=true
@@ -147,14 +149,12 @@ services:
- NODE_ID=noda2
- NATS_URL=nats://dagi-nats:4222
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- SWAPPER_URL=http://swapper-service:8890
- NODE_DEFAULT_LLM=qwen3:14b
- NODE_DEFAULT_VISION=llava:13b
- NODE_WORKER_MAX_CONCURRENCY=2
- NCS_REPORT_URL=http://node-capabilities:8099
depends_on:
- dagi-nats
- swapper-service
networks:
- dagi-network
restart: unless-stopped