This repository showcases the implementation of a GraphRAG (Graph-based Retriever-Augmented Generation) meal planning assistant. The project leverages a Neo4j graph database, semantic search, and LLM-driven reasoning to generate personalized recipe recommendations and shopping lists based on user preferences and dietary needs.
- Docker & Docker Compose
- Python 3.10+
- OpenAI API key (for LLM features)
- Neo4j (runs in Docker)
-
Clone the repository:
git clone <repo-url> cd meal-planner-graphrag
-
Configure environment variables:
- Example environment files are provided as
.env.exampleand.env-docker.examplein theapp/directory, and.env.neo4j.examplein theneo4j/directory. - To configure your environment:
- Copy the example files to their active counterparts:
cp app/.env.example app/.env cp app/.env-docker.example app/.env-docker cp neo4j/.env-docker.example neo4j/.env-docker
- Edit these files to set your API keys, database credentials, Neo4j settings, and other configuration as needed.
- These files are required for both local development and Docker-based deployment.
-
Start Neo4j and the app:
docker-compose up --build
-
Access the application:
- The app will be available at
http://localhost:8501 - The neo4j database will be available at
http://localhost:7474
- The app will be available at
- Main application logic is in
app/app.py. - Prompts and LLM logic are in
app/core/prompts.py. - Evaluation tools are in
evaluation/.
- Use
evaluation/eval.ipynbto assess the quality of generated research plans and retrieval outputs.
