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

FEMA Assist RAG — Deployed production RAG service

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

Notification Triage — Multimodal AI routing system

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

The Unofficial Guide — RAG document assistant

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

FitFindr — Multi-tool AI agent

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

HelpfulnessMeter — Fine-tuned text classifier

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