Inspiration
We were inspired by our experience as international students unfamiliar with Canadian laws. We wanted a reliable assistant that could cite its sources and handle questions out of its domain. This led to building CiteSmart, focused on answering questions about the Canadian Environmental Protection Act of 1999, combining precision with eco-friendly and privacy-preserving attributes.
What it does
CiteSmart answers questions about the Canadian Environmental Protection Act by retrieving relevant portions from a vectorized document and citing its sources. If the query is out of its scope, it uses the DuckDuckGo API to fetch relevant answers from the web, including citation links.
How we built it
In python, we split the document into chunks, embedded them using Sentence Transformers, and stored them in a vectorized database. We used the Llama 3.2 model to generate answers from relevant document chunks. A conditional router directs unanswered queries to DuckDuckGo, and a UI was created using Gradio.
Challenges we ran into
Resource limitations were a major hurdle, requiring us to optimize for efficiency on low compute. Tuning the model for accuracy and creating an intuitive UI also posed challenges.
Accomplishments that we're proud of
Creating a compact, private, and eco-friendly assistant is something we're proud of, especially one that operates effectively on limited resources.
What we learned
We deepened our knowledge of RAG, LLMs, and API integrations, particularly how to balance privacy with the need for reliable information retrieval.
What's next for CiteSmart
We aim to scale CiteSmart to handle broader datasets and make it customizable for various legal documents worldwide.
Built With
- duckduckgo
- google-collab
- gradio
- haystack
- kaggle
- llama-3.2
- python


Log in or sign up for Devpost to join the conversation.