System Requirements & Configuration
SynapCores is a multi-model engine — SQL, vector search, graph, document, AutoML — with optional in-database AI. The only component that needs a lot of RAM is the local chat LLM. The engine itself is light. So your footprint is a choice, not a fixed cost: run everything locally on a workstation, or run vector + graph + ML on a 2 GB VPS and send chat to a cloud model (or skip chat entirely).
Key rule: the embedding model stays in every configuration below — it's tiny (
all-minilm, ~45 MB) and it's what powersEMBED(),VECTORcolumns and semantic search. What you turn off to save memory is the 4.5 GB chat LLM, not embeddings.
What actually drives the RAM
| Feature | Needs a model? | Footprint |
|---|---|---|
| SQL, joins, transactions, triggers, procedures | No | light |
| Graph / Cypher / GraphRAG | No | light |
| AutoML — train, predict, anomaly detection | Its own small CPU models | light |
Vector storage + COSINE_SIMILARITY on given vectors |
No | light |
EMBED() / semantic search / RAG |
Embedding model (all-minilm, ~45 MB) |
light |
GENERATE(), AGENT_RUN(), AI Chat, NL2SQL |
Chat LLM (default qwen2.5-coder:7b, ~4.5 GB) |
heavy |
Only the last row is expensive. Everything else — including vector search — runs comfortably in ~2 GB.
Recommended sizing
| Mode | RAM | What you get |
|---|---|---|
| Full local AI (default) | 8 GB+ | Everything offline, incl. local chat/GENERATE/agents |
| Cloud AI | 2 GB | Chat/GENERATE via OpenAI/Anthropic/Gemini; vectors local |
| Vector + ML + Graph (no local chat) | 2 GB | Semantic search, RAG, graph, AutoML, SQL — no local chat LLM |
CPU: any x86-64 with SSE4.2+ (the CE build is portable, no AVX-512 required). Disk: ~1 GB for the engine; +45 MB for the embedding model; +4.5 GB only if you pull the local chat model.
Configuration modes
All settings go in your gateway.toml under [query.ai_service]. API keys always
come from environment variables — never put them in the file.
1. Full local AI (default — 8 GB+)
[query.ai_service]
provider = "local"
model = "qwen2.5-coder:7b" # ~4.5 GB local chat LLM
embedding_model = "all-minilm:latest" # ~45 MB
auto_pull = true # fetches both on first use / warm-on-boot
2. Cloud AI — small box, chat via a provider (2 GB)
Chat and completion go to a cloud API; embeddings stay local so vectors work offline and cheaply.
[query.ai_service]
provider = "openai" # or "anthropic" / "gemini"
model = "gpt-4o-mini" # completion via the cloud
embedding_model = "all-minilm:latest" # embeddings stay local (~45 MB)
auto_pull = true # only the tiny embedding model is pulled
export OPENAI_API_KEY=sk-... # or ANTHROPIC_API_KEY / GEMINI_API_KEY
(No 4.5 GB chat model is loaded — provider != "local" skips it.)
3. Vector + ML + Graph, no local chat LLM (2 GB) — the small-box default
Keep semantic search, RAG, graph, AutoML and SQL; drop only the heavy chat model.
First pull the embedding model once (with auto_pull = false, nothing is fetched
automatically):
synapcores pull all-minilm:latest # ~45 MB, one time
[query.ai_service]
provider = "local"
embedding_model = "all-minilm:latest" # ~45 MB — REQUIRED for vectors
auto_pull = false # do NOT auto-fetch the 4.5 GB chat model
EMBED(), VECTOR search, RAG, graph, AutoML and all SQL work. GENERATE() /
AGENT_RUN() / AI Chat return "no chat model" — by design. (Add a cloud provider
later if you want chat.)
Explicit recipe: run on a 2 GB Linux box
A step-by-step for a small VPS or edge box that gives you the full engine plus vector/semantic search in ~2 GB, with no 4.5 GB chat model.
# 1. Install SynapCores CE
curl -fsSL https://get.synapcores.com/install.sh | sh
# 2. Pull ONLY the embedding model (~45 MB) — NOT the 4.5 GB chat model
synapcores pull all-minilm:latest
# 3. Write a small-footprint config
sudo tee /etc/synapcores/gateway.toml >/dev/null <<'TOML'
data_dir = "/var/lib/synapcores"
[server]
listen_addr = "0.0.0.0:8080"
[auth]
enabled = true # JWT secret via AIDB_JWT_SECRET
[query.ai_service]
provider = "local"
embedding_model = "all-minilm:latest" # required for vector search — stays
auto_pull = false # never fetch the 4.5 GB chat model
TOML
# 4. Keep memory down: no chat-model warm-up, informational chat only
sudo systemctl edit synapcores # add under [Service]:
# Environment=AIDB_DISABLE_WARMUP=1
# Environment=AIDB_CHAT_AGENTIC_MODE=false
# 5. Restart
sudo systemctl restart synapcores
What you get on 2 GB: all SQL, graph/Cypher, AutoML train/predict, and full
vector/semantic search (EMBED, COSINE_SIMILARITY, RAG). What you don't:
local GENERATE() / AGENT_RUN() / AI Chat — add provider = "openai" (Mode 2)
if you want those without the local model.
Want local chat too, but still small? Pull a smaller quantized chat model
instead of the 7B — e.g. synapcores pull tinyllama:latest (~600 MB), set
model = "tinyllama:latest" and auto_pull = true. Fits in ~2–3 GB, lighter
quality.
Verifying your footprint
synapcores models list # lists what's pulled — expect only all-minilm on a small box
curl localhost:8080/version
# EMBED works:
# SELECT EMBED('hello world') IS NOT NULL;
If synapcores models list shows a 4.5 GB chat model on a box you wanted small, you had
auto_pull = true with provider = "local" — set auto_pull = false (Mode 3) and
remove it with synapcores models delete qwen2.5-coder:7b.