A powerful Retrieval-Augmented Generation (RAG) chatbot application built with JavaFX
When working with large knowledge bases and document collections, getting accurate and contextual answers from AI can be challenging. Traditional chatbots don't have access to your specific documents, and manually searching through files is time-consuming and inefficient.
RAGent combines the power of AI language models with intelligent document retrieval. It indexes your knowledge base, understands your questions in context, retrieves relevant information, and generates accurate responses based on your actual documents - all through an elegant, native desktop interface.
- 📚 Knowledge Base Management - Index and organize multiple document collections
- 🔍 Advanced RAG Pipeline - Multi-query retrieval with query transformation
- 🎯 Smart Reranking - Combines embedding similarity with RRF and MMR for optimal results
- 💬 Contextual Chat - Maintains conversation history for coherent multi-turn dialogues
- 📊 Message Details - View context references and query variations for each response
- 🎨 Modern UI - Clean, dark-mode togglable interface built with JavaFX
- 🔌 Multi-Provider Support - Works with OpenAI, Groq, and other LLM providers
- ⚙️ Customizable - Adjust temperature, top-k, and enable/disable query transformation
If you want to run the application on your local machine:
-
Clone the repository:
git clone https://github.com/melvinchia3636/rag-assignment cd rag-assignment -
Set up API keys:
- Copy
.env.exampleto.env - Add your API keys.
- Copy
-
Build the project:
mvn clean package
-
Run the application:
java -jar target/rag-1.0-SNAPSHOT-standalone.jar
This project is mostly completed. Core features are complete and functional. If any bugs are found, please file an issue, and I'll resolve it ASAP. Contributions are welcome!
This project was inspired by the group assignment of the ITS66704 Advanced Programming course at Taylor's University. This is far beyond the final version submitted for the assignment, as I am afraid that the teacher might doubt the authenticity of such a sophisticated project and also the work distribution if it were to be a group project. After all, it's quite hard to believe that a single first-year undergraduate student could have developed such an advanced RAG application all by himself within less than a week.
Copyright © 2025 Melvin Chia
Licensed under MIT.