RAG Architecture
VenomX grounds every response in a 250,000+ record security corpus (CVEs, exploits, and attack techniques) retrieved semantically and re-ranked before the model ever sees them.
Corpora
Each corpus is domain-specific, embedded offline, and HNSW-indexed for sub-millisecond retrieval at query time.
Sourced from the National Vulnerability Database, updated daily as NVD publishes new CVEs. HNSW indexing (not IVFFlat) was chosen specifically because IVFFlat degrades with incremental inserts. NVD publishes hundreds of CVEs daily.
Schema Fields
Full Exploit-DB dump with working code text, platform metadata, and CVE cross-references. Enables retrieval of actual exploit code alongside the vulnerability context: not just descriptions, but working proof-of-concept material.
Schema Fields
Complete MITRE ATT&CK framework covering every technique, sub-technique, tactic, detection method, and mitigation. Grounds the model's adversarial reasoning in the industry-standard taxonomy used by red teams, SOCs, and threat intel teams worldwide.
Schema Fields
How It Retrieves
From raw query to LLM context in five steps. The full round-trip adds less than 200ms.
Example Hybrid Query
-- Find CVEs relevant to a scan result, filtered by severity and product SELECT c.cve_id, c.cvss_score, c.severity, c.description, 1 - (e.embedding <=> $query_vec) AS similarity FROM cve_embeddings e JOIN cves c ON c.cve_id = e.cve_id WHERE c.cvss_score >= 7.0 AND c.affected_products @> ARRAY['apache'] ORDER BY similarity DESC LIMIT 20; -- retrieve 20, re-rank to top 5
Model Choices
Infrastructure Decisions
Pure vector stores like ChromaDB are built for one thing: semantic search. VenomX's queries are more complex than that, and the data scale doesn't forgive naive architecture choices.
SQL metadata predicates combined with vector cosine search in a single query. ChromaDB can't filter by CVSS score, product array, or severity efficiently at 330k+ scale. PostgreSQL handles both natively.
NVD publishes new CVEs every day. IVFFlat requires re-clustering when data changes significantly. HNSW handles incremental inserts cleanly with no re-index required when new CVEs arrive.
One database process handles both structured relational data and vector similarity search. No separate ChromaDB/Weaviate/Pinecone process, no sync overhead, no additional failure point.
HNSW vs IVFFlat
| Index | Dynamic updates | Query speed | Build time | Verdict |
|---|---|---|---|---|
| IVFFlat | Requires re-cluster | Fast | Fast | Wrong for daily CVE ingestion |
| HNSW ✓ | Clean incremental inserts | Fast | Slower | Correct for dynamic CVE updates |
Memory footprint: 250k vectors at 1024 dims × 4 bytes ≈ ~800MB. PostgreSQL shared buffers keep the entire embedding set hot in the 32GB DDR4 system RAM. No VRAM consumed (both GPUs are fully allocated to vLLM inference). At query time, retrieval is pure in-memory with no disk I/O.