Personalised ai bot
Nathan Ai
Tech stack: Python, FastAPI, React, Vite, Docker, Groq API, Render, Vercel
This project began as an idea to make my portfolio more interactive and technically expressive. I wanted to build a live AI assistant that could represent my work, architecture decisions and technical background in a conversational format. This personalised AI assistant is embedded directly into my live portfolio website.
DESIGN
The system is structured as a modular FastAPI backend that acts as a gateway between the frontend and a hosted large language model via the Groq API. The backend manages structured prompt orchestration, context injection and response handling. Project knowledge and professional background are stored as version-controlled Markdown files bundled into the Docker image, ensuring responses remain aligned with factual project details while reducing hallucination risk.
The frontend is built using React and Vite, with asynchronous fetch-based communication and streaming-style loading states to create a responsive user experience. It is deployed via Vercel, while the backend is containerised with Docker and deployed to Render using environment-based configuration management. API credentials and configuration parameters are injected securely through environment variables at deployment time, ensuring separation between code and sensitive data. I also configured CORS policies to safely support multi-origin requests between the Vercel frontend and WordPress domain. The assistant is embedded directly into my live WordPress site, creating a hybrid architecture that combines static CMS infrastructure with a dynamically hosted AI service. The result is a fully deployed, full-stack LLM system that demonstrates prompt engineering, backend architecture, deployment strategy and production-level integration rather than simple experimentation.
Try it out for yourself!