Our Chatbot Journey: From Beginners to Innovators
Inspiration
What inspired us to build this chatbot was the idea of enhancing student interaction and providing quick, accurate information about our university—the University of Toledo. We noticed that many students, including ourselves, struggled to quickly find important information on the university website. We realized that creating an intuitive chatbot powered by AI could significantly streamline communication, simplify information retrieval, and genuinely help students and visitors.
What We Learned
Starting from zero experience, diving into this chatbot project opened an entirely new world for us:
ASP.NET and Blazor: We learned how the backend and frontend of an application interact. This was our first real exposure to building APIs, understanding controllers, and connecting services to UI elements.
Artificial Intelligence & Ollama: We decided to self host mistral-small on a remote workstation, and interface with it over a ZeroTier zero-trust network for testing. We learned quite a lot about getting remote connectivity working, and configuring the model to generate relevant results.
Retrieval-Augmented Generation (RAG): Before this project, we'd never even heard of RAG. Now, we appreciate how powerful it is—combining web-scraped content with AI to produce precise, accurate responses.
Python & SQLite: We had our first real experience integrating Python scripts within a C# environment, using scripts to embed webpage content into a SQLite database, which allowed the chatbot to fetch relevant context quickly.
How We Built the Project
Frontend (Blazor): First, we built a simple user interface using Blazor, designing a clean and intuitive chat window where users type questions.
Backend (ASP.NET): Next, we implemented the ASP.NET backend, which served as the bridge between the frontend and AI. The backend managed user inputs, processed them, and returned AI responses.
Ollama & AI Integration: Leveraging OllamaSharp, we connected our backend to a local AI model (mistral-small), allowing real-time generation of conversational responses.
Web Scraping & RAG: We wrote Python scripts to scrape relevant HTML from the university's website and embedded this information into a SQLite database. When a user asked a question, the backend pulled related context from the database and sent a detailed prompt to the AI.
Challenges Faced
As beginners, several hurdles challenged us:
Integrating Multiple Technologies: We initially struggled to understand how Blazor (frontend), ASP.NET (backend), Python, and SQLite could all work together harmoniously. Learning each individually was one thing, but combining them required a deeper understanding.
Prompt Engineering: Crafting effective prompts to ensure AI responses were both accurate and relevant was difficult. Initially, the AI frequently provided vague answers or irrelevant information until we refined the context and prompt structure.
Debugging & Learning Curve: Dealing with unexpected errors across multiple programming languages tested our patience. However, it significantly improved our debugging skills, teaching us resilience and systematic troubleshooting.
Conclusion
Building this chatbot was incredibly rewarding. Not only did we learn an extensive amount about web development, AI integration, and data handling, but we also created something valuable that could positively impact students at our university. Despite the challenges, seeing the chatbot function smoothly and assist users in real-time made the journey entirely worthwhile.
Log in or sign up for Devpost to join the conversation.