BooksAI is an offline, AI-powered book recommendation application designed to provide personalized book recommendations based on user preferences. Using a fine-tuned language model, this application delivers suggestions for genres, themes, and authors that align with individual reading tastes.
- Personalized Book Recommendations: Generate book suggestions based on user-provided preferences.
- Offline Model Inference: Operate locally without requiring internet access, ensuring data privacy and security.
- Customizable Model: Easily adapt and fine-tune the recommendation model for specific genres or user feedback.
These instructions will help you set up a local instance of BooksAI for development and testing purposes.
- Python 3.8+
- GPU (optional but recommended for faster model inference)
-
Clone the Repository:
git clone https://github.com/ashrithssreddy/BooksAI.git cd BooksAI
-
Set Up a Virtual Environment:
python -m venv venv source venv/bin/activate # For MacOS/Linux venv\Scripts\activate # For Windows
-
Install Dependencies: Install the required Python packages listed in
requirements.txt
:pip install -r requirements.txt
-
Download the Model:
- Use the Hugging Face Transformers library to download the GPT-2 model or another suitable model. More details are available in
docs/model_setup.md
.
- Use the Hugging Face Transformers library to download the GPT-2 model or another suitable model. More details are available in
-
Run the App: After completing the setup, start the application with:
python app.py
-
Provide Book Preferences: Enter genres, themes, or favorite authors to receive personalized book recommendations.
-
Customizing Recommendations: To fine-tune the model for improved recommendations, refer to
docs/fine_tuning.md
.
BooksAI/
├── data/ # Datasets for model fine-tuning
├── models/ # Directory for storing downloaded model files
├── scripts/ # Utility scripts for data processing
├── app.py # Main application code
├── requirements.txt # Project dependencies
├── README.md # Project documentation
└── docs/ # Additional documentation
Contributions are welcome! For major changes, please open an issue to discuss what you would like to change. Make sure to follow the project's code of conduct.
This project is licensed under the MIT License - see the LICENSE file for details.