I’ve been stress-testing graphify on a high-end local workstation (Ryzen 9 9950X3D, RTX 5090). While the tool is conceptually brilliant, the current hardcoded limits and environment-variable-only configuration create significant bottlenecks for local-first workflows.
Current Bottlenecks Identified:
- CPU Underutilization: In
extract.py, max_workers is capped at 8. On a 32-thread CPU, this limits AST extraction performance by 400%.
- Local API Timeouts: The default
token_budget (60k) and max_concurrency (4) are ideal for Cloud APIs but cause Request timed out or VRAM OOMs on local Ollama/llama.cpp instances during semantic extraction.
- Authentication Friction: The CLI blocks execution if
OLLAMA_API_KEY is missing, even when targeting a local instance where no auth is required.
Proposed Solution: The graphify.yaml Configuration Layer
To support the growing segment of local power users, I suggest introducing an optional configuration file (graphify.yaml) to override defaults persistently.
Example graphify.yaml Structure:
# Performance Tuning
extraction:
max_workers: 32 # Fully utilize high-end CPUs (9950X3D)
token_budget: 16384 # Optimized for 24GB+ VRAM (Gemma 4 31b)
max_concurrency: 1 # Avoid local API queue congestion
# Backend Overrides
backend:
name: "ollama"
model: "gemma4:31b"
base_url: "http://127.0.0.1:11434/v1"
# Suggested: bypass API_KEY check if backend is Ollama and base_url is loopback
# Model Parameters
parameters:
temperature: 0.3 # Deterministic graph generation
seed: 42
num_ctx: 65536
Why this is a "Win-Win":
- User Experience: Removes the need to re-export
set/export commands in every terminal session.
- Scalability:
graphify becomes the gold standard for high-performance local knowledge graph extraction.
- Maintainability: Decouples hardware-specific tuning from the core logic.
Verified Performance:
By manually patching these values in my local instance, I achieved 95% GPU saturation on an RTX 5090 and reduced AST extraction time significantly. I’m happy to provide more telemetry or contribute code snippets if this aligns with the project roadmap!
I’ve been stress-testing
graphifyon a high-end local workstation (Ryzen 9 9950X3D, RTX 5090). While the tool is conceptually brilliant, the current hardcoded limits and environment-variable-only configuration create significant bottlenecks for local-first workflows.Current Bottlenecks Identified:
extract.py,max_workersis capped at 8. On a 32-thread CPU, this limits AST extraction performance by 400%.token_budget(60k) andmax_concurrency(4) are ideal for Cloud APIs but causeRequest timed outor VRAM OOMs on local Ollama/llama.cpp instances during semantic extraction.OLLAMA_API_KEYis missing, even when targeting a local instance where no auth is required.Proposed Solution: The
graphify.yamlConfiguration LayerTo support the growing segment of local power users, I suggest introducing an optional configuration file (
graphify.yaml) to override defaults persistently.Example
graphify.yamlStructure:Why this is a "Win-Win":
set/exportcommands in every terminal session.graphifybecomes the gold standard for high-performance local knowledge graph extraction.Verified Performance:
By manually patching these values in my local instance, I achieved 95% GPU saturation on an RTX 5090 and reduced AST extraction time significantly. I’m happy to provide more telemetry or contribute code snippets if this aligns with the project roadmap!