Projects
A mix of internship projects (private) and public projects. More to come...
Internal LLM Chatbot w/ Role-Scoped Retrieval
Private (NDA)JLG Industries (Oshkosh)
Production internal assistant using vector search + clustering over embedded internal docs. Role-restricted spaces ensure precise, compliant answers for each department.
- Cut knowledge lookup time across departments by hours/week per user
- Higher answer precision via department-aligned embedding spaces
- Pipeline prepared for scale (ingestion → embedding → retrieval → evals)
PythonFastAPILangChainOpenAIDatabrickstext-embedding-ada-002
Email Classification + Smart Reply Generation
Private (NDA)JLG Industries (Oshkosh)
End-to-end ML + LLM flow for routing emails, summarizing threads, and proposing context-aware replies that users can one-click approve.
- Reduced manual triage time; consistent routing & responses
- Unified pipeline from raw inbox → model → user interface
PythonScikit-learnOpenAIPandasNumPyOutlook
This Portfolio: AI Assistant with Vector Retrieval
Next.js + Tailwind portfolio with a custom chat widget backed by a FastAPI service on Railway. Uses Llama-3.1-8B-Instruct for responses, all-MiniLM-L6-v2 for embeddings, and FAISS for fast vector search. The assistant performs semantic retrieval over my resume/notes to answer recruiter questions.
- Interactive, grounded answers about my experience (semantic retrieval > keyword search).
- Clear separation of concerns: frontend on Vercel, backend on Railway with CORS/secrets configured.
- Low-latency retrieval and stable responses using FAISS + carefully constrained prompts.
Next.jsTailwindFastAPILangChainLlama-3.1-8B-Instructall-MiniLM-L6-v2FAISSVercelRailway