Logo Lanfrica

Fidelisaboke/african-culinary-chatbot

Domain:

natural language processing

Record type:

software
Creator:
Fid
Host:
AI-powered recipe discovery chatbot that helps users explore African recipes. # African Culinary RAG Assistant ## Project Overview The African Culinary RAG Chatbot is an AI-powered, recipe discovery chatbot that helps users explore, query, and retrieve African recipes with their ingredients, steps, and nutritional information. It uses a **Retrieval-Augmented Generation (RAG)** approach to combine semantic search over a curated recipe dataset with a Large Language Model (LLM) for context-aware answers. Users can ask questions like _“How do I cook Egusi Soup?”_ or _“What ingredients do I need for Jollof Rice?”_ and receive both a natural language answer and the relevant recipe context. ## Table of Contents - Tech Stack - Installation & Setup - Pre-requisites - Setup Instructions - Basic Usage - Streamlit Application - CLI Application - Project Structure - Example Queries and Answers - Known Issues - Acknowledgement - License ## Tech Stack - **Backend (AI)**: LangChain, HuggingFace Embeddings, ChatGroq - **Frontend**: Streamlit - **Data**: JSON recipes dataset of African cuisine, collected from recipes websites. ## Installation & Setup ### Pre-requisites - Python 3.10 or above - Groq API Key ### Setup Instructions 1. Clone the repository: ```bash git clone github.com cd african-culinary-chatbot ``` 2. Create a Python virtual environment: ```bash python3 -m venv .venv source .venv/bin/activate # Linux / macOS .venv\Scripts\activate # Windows ``` 3. Install Dependencies: ```bash pip install -r requirements.txt ``` 4. Set environment variables - Copy `.env.example` to `.env`: ```bash cp .env.example .env ``` - Set environment variables listed in the `.env` to your secret environment values. - Alternatively, create the `.streamlit/secrets.toml` file: ```bash mkdir .streamlit touch .streamlit/secrets.toml ``` - Add the Groq API Key and model name to the TOML file: ```bash GROQ_API_KEY = "your-api-key" # GROQ Model - The app uses the one set by default GROQ_MODEL_NAME = "llama-3.3-70b-v …