Spaces:
Running on Zero
Running on Zero
| title: Crop Guard AI | |
| emoji: π± | |
| colorFrom: green | |
| colorTo: green | |
| sdk: gradio | |
| sdk_version: 4.36.1 | |
| app_file: app.py | |
| pinned: false | |
| # π± Crop Guard AI | |
| **Crop Guard** is an AI-powered agricultural diagnostic tool built for smallholder farmers. It analyzes crop leaf images, identifies diseases using a Vision Transformer (ViT), and provides localized, organic, and accessible treatment recommendations via a lightweight Large Language Model (Qwen2.5 3B GGUF). | |
| --- | |
| ## π Features | |
| - **Vision Diagnosis:** Uses a fine-tuned `google/vit-base-patch16-224` to accurately classify 38 plant health and disease conditions (based on PlantVillage). | |
| - **Organic Agronomist AI:** Synthesizes the raw machine label into a localized context, passing it to a highly quantized LLM (`Qwen2.5-3B-Instruct-GGUF`) that runs entirely within the Gradio container. | |
| - **Responsive UI:** Built with Gradio Blocks and custom CSS to deliver a premium, mobile-friendly interface for field use. | |
| - **English-Only Diagnosis:** Strict constraints ensure the AI provides treatments focusing on natural remedies like neem oil and wood ash. | |
| --- | |
| ## π οΈ Project Structure | |
| - `app.py`: The core Gradio application combining the vision and text pipelines. | |
| - `requirements.txt`: The specific Python dependencies (includes pre-compiled CPU wheels for `llama-cpp-python` to prevent Hugging Face Spaces build timeouts). | |
| - `SETUP_GUIDE.md`: A detailed developer guide covering dataset preparation and model fine-tuning. | |
| --- | |
| ## π» Local Testing | |
| You can run this project locally to test the interface or make modifications. | |
| 1. **Clone the repository:** | |
| ```bash | |
| git clone https://github.com/Usefulmech/crop-guard.git | |
| cd crop-guard | |
| ``` | |
| 2. **Create and activate a virtual environment:** | |
| ```bash | |
| # Windows | |
| python -m venv venv | |
| .\venv\Scripts\activate | |
| # Mac/Linux | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| ``` | |
| 3. **Install the dependencies:** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. **Launch the app:** | |
| ```bash | |
| python app.py | |
| ``` | |
| *(Note: The first time you run this, it will download the 4.3GB LLM weights. Please be patient!)* | |
| --- | |
| ## π Deploying to Hugging Face via GitHub Sync | |
| Yes, you can manage this project on GitHub and automatically sync it to Hugging Face Spaces! This is the best way to handle deployments. | |
| ### Step-by-Step GitHub Sync | |
| 1. **Create a Space on Hugging Face:** | |
| - Name: `CropGuard-AI` | |
| - SDK: `Gradio` | |
| - Hardware: `Free CPU` (or `T4 GPU`) | |
| 2. **Connect via GitHub Actions:** | |
| You can push your code to your GitHub repository and set up a GitHub Action to automatically push to your Hugging Face Space whenever you commit to `main`. | |
| Create a file in your repo at `.github/workflows/sync_to_hub.yml`: | |
| ```yaml | |
| name: Sync to Hugging Face hub | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| sync-to-hub: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| lfs: true | |
| - name: Push to hub | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: git push https://your-hf-username:$HF_TOKEN@huggingface.co/spaces/your-hf-username/CropGuard-AI main | |
| ``` | |
| 3. **Add your HF_TOKEN Secret:** | |
| - Go to your Hugging Face Account Settings -> Access Tokens, and generate a new token with **write** permissions. | |
| - Go to your GitHub Repository -> Settings -> Secrets and Variables -> Actions -> **New repository secret**. | |
| - Name it `HF_TOKEN` and paste your token. | |
| Now, every time you `git push` to your GitHub repo, the changes will automatically be deployed to your Hugging Face Space! | |