Skip to main content
Glama
nalugomesv

book-recommender

by nalugomesv
README.md
# šŸ“˜ Book Recommender

## šŸ“ Description
This project builds a **Book Recommendation System** powered by **Generative AI** and the **Model Context Protocol (MCP)**.  
It uses real data from the **Goodreads dataset** (via Kaggle) and combines Python-based data processing with an AI agent capable of understanding user prompts, translating genres, and recommending books based on **genre**, **page count**, and **ratings**.

The project was developed collaboratively to practice version control, team workflows, and AI tool integration in a real-world Data Science scenario.

---

## āš™ļø Technologies and Tools Used
- **Python 3.11**
- **pandas** – data manipulation  
- **numpy** – numerical operations  
- **tqdm** – progress tracking  
- **OpenAI API** – language model for the AI agent  
- **LangGraph** – for building the ReAct-style reasoning agent  
- **MCP (Model Context Protocol)** – connects the AI agent to external tools  
- **Jupyter Notebook** – exploratory data analysis and prototyping  

---

## šŸ’» How to Run the Project

Step-by-step instructions to run it locally:

```
# Clone the repository
git clone https://github.com/nalugomesv/book-recommender.git

# Enter the project folder
cd book-recommender

# (Optional) Create a virtual environment
python -m venv .venv
.\.venv\Scripts\activate    # Windows
# or
source .venv/bin/activate   # Linux/Mac

# Install dependencies
pip install -r requirements.txt

# Run the core script
python -m src.buscador --genero "romance" --paginas 120

# Or search by title
python -m src.buscador --titulo "Dune"
```
---

## 🧩 Project Structure
.

ā”œā”€ā”€ src/

│   ā”œā”€ā”€ buscador.py         # Core search functions (genre,  pages, title)

│   └── server_mcp.py       # Local MCP server exposing tools to the AI agente

ā”œā”€ā”€ notebooks/              # Exploratory and test notebooks

ā”œā”€ā”€ data/                   # Dataset (not versioned)

ā”œā”€ā”€ outputs/                # Generated artifacts (ignored)

ā”œā”€ā”€ .env.example            # Environment variable example

ā”œā”€ā”€ requirements.txt        # Dependencies

└── README.md               # Project documentation

---

## šŸ‘„ Collaborators

⦁	Ana Luiza Gomes Vieira (@nalugomesv)
⦁	Arthur Mendes Fernandes (@thuplex)

---

## šŸŽÆ Future Improvements

- Add more filtering options (author, publication year, etc.)
- Integrate external MCP APIs (HTTP/SSE)
- Add evaluation metrics (Precision@K, MAP)
- Improve LLM reasoning prompts for more accurate recommendations

---

## šŸ“„ License

This project is licensed under the [MIT License](LICENSE).

---

## 🧠 Acknowledgments

This project was inspired by the **PrograMaria – Data & Generative AI Sprint**,  
specifically the *Workshop on Predictive Query Models (MCP)* and *Book Recommendation System using Generative AI*.