CVE Intelligence Platform
A production vulnerability-intelligence platform that continuously ingests the global CVE corpus and answers natural-language security questions grounded in real vulnerability data.
- Built an autonomous delta-ingestion agent that pulls incremental updates from the official CVEProject GitHub every three hours with idempotent UPSERTs and full run observability.
- Implemented vectorless RAG retrieval using MySQL FULLTEXT with BM25 re-ranking — accurate semantic search without the operational cost of a dedicated vector database.
- Designed a pluggable multi-LLM layer (Strategy pattern) across Ollama, Claude, and Gemini, switchable by a single environment variable to route on cost and quality.
- Added stateful per-user conversation memory with source citations, JWT + bcrypt auth, and role-based access control across public, user, and admin tiers.
Technical deep dive
The ingestion agent runs on APScheduler and performs change-detected upserts into MySQL, recording per-run metrics so ingestion failures surface immediately rather than silently degrading retrieval quality.
Retrieval deliberately avoids a vector store: for a corpus this structured and keyword-dense, FULLTEXT + BM25 re-ranking matched embedding-based retrieval at a fraction of the infrastructure cost — a reminder that RAG does not always require a vector database.
The full stack is FastAPI, MySQL, Jinja2, and Tailwind CSS with clean separation of concerns between ingestion, retrieval, generation, and presentation layers.
- Python
- FastAPI
- MySQL
- BM25
- APScheduler
- Claude
- Gemini
- Ollama
- JWT
- Tailwind CSS