Nautichat
AI-powered assistant for Ocean Networks Canada.
Overview
The Nautichat capstone project was about building an AI-powered assistant for Ocean Networks Canada (ONC). The idea was to make ONC's Oceans 3.0 data archive easier to use by letting people interact with it in plain language. This will help researchers, students, employees find and explore ocean data without needing technical knowledge. My main role was to design and develop an interface that felt simple but still powerful. I wanted the system to feel approachable for first-time users, while still giving researchers the tools they needed to dig deeper into the data.
Process
The system was built on a modern, full-stack architecture. Next.js was chosen for the frontend to create a clean and responsive interface for users. The backend was built with FastAPI, providing a fast and solid foundation for the application's logic. The core of the project's intelligence was an AI system implementing a Retrieval-Augmented Generation (RAG) pipeline, connected to a Qdrant vector database. This setup ensured that the assistant provided answers grounded in specific, relevant information from ONC's data archive. A full CI/CD pipeline using Docker and GitHub Actions was also established to automate the process of building and deploying updates, ensuring a smooth development cycle.
Demo
Project media



Outcome
The result is Nautichat, a fully functional web application that makes complex oceanographic data easy to explore. Users can ask questions in plain English and get back clear answers, complete with data visualizations and source citations. The assistant can handle ambiguous queries by asking clarifying questions and can generate the API calls needed for users to download the datasets they're interested in. A secure admin portal was also delivered, fulfilling a key client requirement for managing the system's knowledge base.
Key Learnings
- Full-Stack AI Development: The project required building an end-to-end AI system, connecting a Next.js frontend, a FastAPI backend, and the PostgreSQL and Qdrant databases that powered the AI model.
- DevOps and Deployment: Practical experience in DevOps was applied by setting up an automated CI/CD pipeline with Docker and GitHub Actions to streamline the development and deployment process.
- AI System Design: The project involved designing the complex architecture for a hybrid RAG system, including the logic for managing conversation history, retrieving context, and deciding when to use external tools.