You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v0.4.0: local embeddings via quantized Gemma 4 (no API cost) #7
Add an optional local embedding pass using a quantized model — leading candidate is Gemma 4 (Q4/Q8 via llama.cpp or ollama) — to generate semantically_similar_to edges across all nodes without any API calls.
Motivation
Currently, semantic similarity edges come from Claude's judgment during extraction — one pass per file, subjective, and costs API tokens. A local embedding pass would:
Generate embeddings for every node (label + docstring) after the AST and semantic passes
Add cosine-similarity edges above a configurable threshold, marked INFERRED
Make cross-file concept linking exhaustive rather than sampled
Work fully offline, cached per-node alongside the existing SHA256 file cache
Cost zero API tokens after the initial model download
The two approaches complement rather than replace each other — Claude finds the interesting cross-cutting edges, local embeddings find the exhaustive ones. Both end up in the same graph.
Design
Model: Gemma 4 Q4 or Q8 via llama.cpp or ollama. Produces strong semantic embeddings for code + text at ~2-4GB RAM, no GPU required.
Pipeline position: after Part C (build + cluster), before export. Reads all node labels + docstrings, generates embeddings in batch, computes pairwise cosine similarity, adds edges above threshold.
Threshold: configurable, default ~0.82. Exposed as --embed-threshold 0.82.
Backend: support both llama-cpp-python and ollama client, auto-detect which is available.
Caching: store embedding vectors in graphify-out/cache/embeddings.json keyed by node ID + content hash. Re-embedding only runs for new or changed nodes.
Skill flag: /graphify ./raw --embeddings to enable the pass. Off by default.
from my perspective, the local term should be extended to local network, for the ones using an embedding LLM on a local network PC with an OpenAPI compatible API at either IP address of FQDN. eg: http://192.168.10.10:8043/v1 or http://inference.local:8043/v1
Reacted by paulerbear, nebulakid and simonLouvet
FolatheDuckofDuckingburg commented on May 27, 2026
Would it be better to swap out Ollama for ONNX Runtime here, and pull Gemma 4 from Hugging Face instead.
If it sounds good and you'd want to go this route, I'm happy to start working on the PR.
Activity
paulerbear commentedon Apr 8, 2026
Great addition! Local inference support is deeply appreciated.
fix: defense-in-depth against list-typed edge source/target (Run Grap…
search: lap-21 Graphify-Labs#7 — `--by-symbol` collapses same-symbol …
navigate: lap-27 Graphify-Labs#7 — honor explicit --depth on dependen…
bcdiaconu commentedon May 12, 2026
from my perspective, the local term should be extended to local network, for the ones using an embedding LLM on a local network PC with an OpenAPI compatible API at either IP address of FQDN. eg:
http://192.168.10.10:8043/v1orhttp://inference.local:8043/v1FolatheDuckofDuckingburg commentedon May 27, 2026
How should we handle model downloads? Should graphify manage that or assume the user has ollama/llama.cpp already set up?
TPAteeq commentedon Jun 2, 2026
Would it be better to swap out Ollama for ONNX Runtime here, and pull Gemma 4 from Hugging Face instead.
If it sounds good and you'd want to go this route, I'm happy to start working on the PR.
@safishamsi
FolatheDuckofDuckingburg commentedon Jun 2, 2026
We should pull Gemma 4 from Hugging Face so we should work on the PR.
@TPAteeq
Fix remaining #1392 skill bugs: --directed propagation, content-only …
Fix remaining Graphify-Labs#1392 skill bugs: --directed propagation, …