Evaluation
Achievements
Key Functionalities: 100% Completed
Optional Functionalities: 100% Completed
Known Bugs
Individual Contribution Table for System Artefacts
Individual Contribution Table for Report Website
Critical Evaluation
User Interface and Experience
Reflecting on the development of our system’s user interface, we are happy with the outcome and its impact on usability. Using Gradio allowed us to create a clean, intuitive, and responsive interface that seamlessly supports multiple use cases. Rigorous testing ensured compatibility across devices, and interactive chat interfaces, drag-and-drop file uploads, and a structured metrics dashboard made the experience effortless and engaging. Also, the option to toggle between light and dark mode further enhanced accessibility. Most importantly, client feedback has been very positive, confirming that our approach successfully balanced functionality with ease of use. Overall, and we are confident our UI/UX decisions have resulted in a system that exceeds expectations.
Functionality
As the project progressed, the functionality of our system expanded beyond its original scope, evolving into a more comprehensive solution than initially envisioned. While the core objective remained providing insights for each use case, iterative development led to the integration of additional features that enhanced usability and efficiency. Early prototypes focused on fundamental retrieval and response generation, but through continuous refinement, we incorporated broader analytical capabilities, and improved document handling. This growth was driven by a combination of practical testing and feedback, ensuring the system became more robust and adaptable. The result is a highly functional tool that extends beyond its initial concept, offering a more versatile experience for users.
Stability
In evaluating the stability of the system, we are pleased to report that all known bugs have been thoroughly addressed and fixed, resulting in a smooth and reliable user experience. The system operates consistently across different use cases, and performance is stable even under varying loads. However, due to the nature of our project involving offline AI, the system requires a significant amount of computational power, which serves as a limitation for some users. While the system performs well on powerful machines, those with less capable hardware may experience slower response times or other performance issues. Despite this, we believe that the stability and reliability of the system make it a valuable tool for users with the necessary resources, and we would look into further optimising its performance in future updates.
Efficiency
In evaluating the efficiency of our system, we find that while it significantly outperforms manual human efforts in speed and accuracy, its efficiency is inherently tied to the hardware it runs on. Since our system relies on offline AI models, it requires a high-end machine with substantial computational power to operate at peak performance. On powerful hardware, it delivers rapid responses and processes complex queries very efficiently. However, on lower-end machines, users may experience slower processing times due to the system's resource-intensive nature. Despite this limitation, the automation and intelligence it provides make it a far more efficient alternative to manual data retrieval and analysis, and we aim to explore further optimisations to enhance its performance across a wider range of devices.
Compatibility
In evaluating the compatibility of our system, we are pleased to report that it is designed to be highly accessible across different platforms. Since it is built as a Gradio interface, the system runs seamlessly in a browser window, eliminating the need for complex installations. It is also compatible with a wide range of web browsers, ensuring a smooth user experience regardless of preference. Additionally, it functions reliably on different operating systems, including Windows and macOS, providing flexibility for users across various devices. While performance may vary depending on hardware capabilities, the browser-based nature of the system enhances its accessibility, allowing users to interact with it without requiring specialised software or configurations.
Maintanability
In reflection on the maintainability of our system, we are very happy with the way that the codebase has been structured in a clear and organised manner to ensure long-term sustainability. The code is written following object-oriented principles, making it modular and easy to extend or modify as needed. Detailed comments have been included throughout the code to explain key functionalities, aiding future developers in understanding its implementation. Additionally, functions and variables have been given meaningful identifier names to enhance readability and reduce ambiguity. Proper use of whitespace further improves the clarity of the code, making it more human-readable and easier to navigate. We believe that these best practices contribute to a well-documented and maintainable system that can be efficiently updated or expanded in future iterations.
While the system is designed with maintainability in mind, there are areas that could be improved. Since our project integrates multiple advanced technologies, including LLMs, vector databases, SQL agents, and NLP, there is a high barrier of entry for new developers looking to contribute. Understanding how these components interact requires familiarity with a range of frameworks and AI concepts, which can slow down onboarding. Additionally, our reliance on external libraries introduces potential challenges, as features we depend on may become deprecated or removed in future updates. Regular documentation updates and clear dependency management will be crucial in ensuring the system remains easy to maintain and extend over time.
Project Management
In evaluating the project management of our system, we are pleased to report that our team maintained strong and effective communication throughout the development process. We coordinated efficiently through email and WhatsApp, ensuring that all team members remained aligned on tasks, deadlines, and any challenges that arose. GitHub was extensively used to manage version control, track issues, and collaborate on code, helping to streamline development and prevent conflicts. We held multiple meetings each week to discuss progress, address any roadblocks, and plan upcoming tasks, which kept the project on schedule and ensured continuous improvement. Additionally, responsibilities were clearly assigned among team members, allowing for smooth and efficient collaboration. This structured approach resulted in a productive workflow and contributed to the overall success of the project.
Future Work
- Adding a lightweight LLM option would make the system more accessible to users with lower-end machines. The current model requires significant computational power, which limits its usability for those without high-performance hardware. By integrating a smaller and less advanced LLM, users could choose between high-performance and lightweight models based on their needs. This flexibility would ensure that the system remains usable across a wider range of devices while still maintaining core functionality.
- Switching from a web browser-based interface to a standalone desktop application would provide a more seamless and efficient user experience. A dedicated application would allow for better system resource management, and deeper integration with system hardware. By eliminating potential browser-based inefficiencies, a desktop version could improve performance, particularly for AI processing tasks that require GPU acceleration. This change would also give users more control over settings and configurations, making the system more adaptable to different workflows and use cases.
- Adding support for uses to choose between different models would enhance the system’s versatility and make it more useful for different tasks. Instead of relying on a single LLM, users could select from multiple AI models, each fine-tuned for specific applications such as summarisation, document retrieval, or domain-specific analysis. Implementing an adaptive model-switching mechanism could further optimise efficiency by dynamically selecting the best model for a given task. This addition would provide users with more tailored AI-driven insights and improve the overall performance of the system across a variety of use cases.
- Adding accessibility features would make the system more inclusive for a wider range of users. Implementing screen reader support and text-to-speech functionality would help visually impaired users interact with the system more effectively. Providing options to modify colour themes, including high-contrast and colourblind-friendly modes, would improve readability for users with visual impairments. Additionally, allowing users to customise the layout, resize text, and adjust interface elements would create a more flexible experience tailored to individual needs.
- Adding more security features would enhance the protection of user data and stored documents. Implementing encryption for all stored documents would ensure that sensitive information remains secure, preventing unauthorised access even if the database is compromised.
- Expanding the system's support to handle additional file types beyond PDFs and Excel spreadsheets, such as Word documents or PowerPoint presentations, would significantly increase its versatility and usability. Additionally, implementing robust file conversion tools would also enhance the system's ability to intelligently process and extract relevant information from various file types.