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