Projects
Five completed, evaluated AI systems — including a RAG service running
in production on self-hosted infrastructure — plus the flagships now in
progress. The grouping below is exact: completed means built, tested,
and in GitHub today.
Completed
A retrieval-augmented generation service that answers disaster-assistance questions with citations to official government sources, running in production on self-hosted infrastructure. Survivor-facing FEMA guidance is chunked and embedded into PostgreSQL + pgvector; each question gets vector retrieval and a single constrained Claude call with structured outputs, and citations are validated deterministically — fabricated references are stripped, and uncertain answers are never cached. Ships with a published evaluation harness (1.00 retrieval hit rate, 0.94 MRR, 1.00 grounding and off-topic abstention) and 47 offline tests with CI on every push.
FastAPI · PostgreSQL + pgvector · Redis · Claude (Anthropic API) · Docker · GitHub
Routes incoming messages per user — deliver now, hold for digest, or suppress — by combining 16 deterministic signals with a single constrained Claude reasoning step, plus vision-model OCR for images and local Whisper transcription for voice notes. Achieves 96.7% accuracy (macro-F1 0.967) against a 53.3% rules-only baseline, with perfect precision and recall on mute decisions. Built test-first for HackerRank's Orchestrate hackathon: 292 offline tests that run without an API key.
Python · Claude (Anthropic API) · Whisper · pytest · GitHub
An end-to-end retrieval-augmented generation pipeline that ingests unstructured community content (forum posts, transcripts), chunks and embeds it with sentence-transformers, stores vectors in ChromaDB, and generates grounded answers via an LLM with two-layer source attribution. Documented chunking tradeoffs and validated quality with a structured evaluation across multiple test queries and a failure-case analysis.
Python · ChromaDB · sentence-transformers · Groq · GitHub
A tool-using AI agent with an adaptive planning loop that maintains session state and branches on input — calling search, styling, and caption-generation tools only when preconditions are met. Explicit tool contracts and failure modes, verified by a 77-test pytest suite with LLM calls mocked for deterministic, offline testing.
Python · Groq · Gradio · pytest · GitHub
Hand-labeled a balanced 200-example dataset and fine-tuned DistilBERT to classify technical Q&A answers into four purpose-based categories, benchmarked against a zero-shot LLM baseline. Full evaluation reported — accuracy (46.7% vs 36.7% baseline), per-class precision/recall/F1, confusion matrix, error analysis — plus a diagnosed training-configuration bug that had stalled learning.
Python · Hugging Face Transformers · DistilBERT · scikit-learn · GitHub
In progress
FEMA Assist RAG — public demo — Public URL + lightweight chat UI for the deployed service
The service runs in production on self-hosted infrastructure today; next step is a public demo endpoint (Cloudflare Tunnel) with a lightweight chat interface so anyone can try grounded, cited disaster-assistance answers in the browser.
Cloudflare Tunnel · React
Full-Stack AI Assistant — Flagship — production-style AI web app
A complete AI web app with auth, chat, and conversation history: React front end, Spring Boot API tier, and a Python FastAPI AI microservice backed by a locally served LLM (Ollama) — self-hosted with Docker Compose, a reverse proxy, and a Cloudflare Tunnel for the public demo.
React · Spring Boot · FastAPI · Ollama · PostgreSQL