This is a submission for the Gemma 4 Challenge: Build with Gemma 4
How I Built an Offline AI Crop Doctor for Indian Farmers Using Gemma 4
Every year, Indian farmers lose 20β30% of their harvest to crop diseases they cannot identify in time. Agricultural experts are concentrated in cities. Internet is unreliable in villages. And most existing tools are in English - a language most farmers don't read or speak.
I built KhetAI to change that.
What I Built
KhetAI is a fully offline AI crop diagnostic tool for Indian smallholder farmers. A farmer:
- Takes a photo of their affected crop
- Asks a question in their native language (Hindi, Kannada, Tamil, Telugu, and more)
- Gets an instant structured diagnosis with treatment steps, local remedies, and an escalation flag
No internet needed. No cloud. No data ever leaves the device.
Tech Stack:
| Layer | Technology |
|---|---|
| AI Model | Gemma 4 (gemma4:e4b) via Ollama |
| Backend | FastAPI (Python) |
| Frontend | HTML + Tailwind CSS (single file, no build step) |
| Inference | Ollama - fully on-device |
The result the farmer sees includes:
- Diagnosis with confidence level (High / Medium / Low)
- Numbered treatment steps
- Affordable local remedies like neem oil and copper sulfate
- Prevention tips
- A red escalation warning if they need to see a real expert
Demo
βΆοΈ Demo Video: Watch on YouTube
Real output from KhetAI - tested with a flower photo asking "What is it's name?":
{
"diagnosis": "Healthy crop - Black-eyed Susan (Rudbeckia family)",
"confidence": "Medium",
"treatment": [
"Ensure soil remains consistently moist but not waterlogged",
"Feed with balanced slow-release fertilizer at start of growing season"
],
"local_remedies": [
"Add compost around the base to improve soil nutrients",
"Light mulch layer of wood chips conserves moisture"
],
"prevention": [
"Avoid overhead watering - water the base instead",
"Deadhead spent flowers regularly to encourage new blooms"
],
"escalate": false,
"summary": "Your crop is healthy - maintain consistent watering and add compost for best yields"
}
Gemma 4 correctly identified the plant, gave practical advice, and suggested affordable local remedies - all in one response, in the farmer's chosen language.
Code
π GitHub Repository: https://github.com/Tech-Psycho95/KhetAI
Run it yourself:
# 1. Pull the model
ollama pull gemma4:e4b
# 2. Install dependencies
pip install fastapi uvicorn python-multipart ollama
# 3. Start the backend
uvicorn main:app --reload --port 8000
# 4. Open frontend
# Just double-click index.html in your browser
The backend /analyze endpoint accepts a crop photo + question, converts the image to base64, and sends both to Gemma 4 via Ollama:
response = ollama.chat(
model="gemma4:e4b",
messages=[
{
"role": "user",
"content": f"[Language: {language}]\nFarmer's question: {question}",
"images": [image_b64],
}
],
system=SYSTEM_PROMPT,
options={"temperature": 0.2},
)
The system prompt instructs Gemma 4 to always return a clean structured JSON object with diagnosis, treatment, remedies, prevention, and an escalation flag. Low temperature (0.2) ensures consistent, reliable output every time.
How I Used Gemma 4
I chose Gemma 4 E4B (gemma4:e4b) - here's why it was the right fit:
Multimodal out of the box
Gemma 4 processes both a crop photo and a text question together in a single API call. No separate vision pipeline, no extra model. The farmer uploads an image and asks their question β Gemma 4 analyzes both simultaneously.
Runs fully offline via Ollama
gemma4:e4b runs locally on a consumer GPU with no API key, no internet, and no subscription. This is non-negotiable for rural India deployment where connectivity is absent.
Multilingual natively
Gemma 4 handles Hindi, Kannada, Tamil, Telugu, Marathi, Bengali, Gujarati, and Punjabi without any translation layer. I simply pass the farmer's preferred language in the system prompt β the model responds in that language automatically.
Why E4B over E2B or 31B Dense?
- E2B is too small for reliable multimodal diagnosis accuracy
- 31B Dense requires expensive hardware beyond a typical village kiosk
- E4B hits the sweet spot β strong diagnostic accuracy, runs on a mid-range GPU, 9.6GB model size
Before Gemma 4, this project would have required a separate vision model, a separate language model, a translation layer, and a cloud API β meaning internet dependency. Gemma 4 collapses all four into a single local model call.
What's Next
KhetAI today runs on a single device for a single farmer. The roadmap:
- Phase 2 - Shared village kiosk over local WiFi, no internet needed
- Phase 3 - Fine-tune on Indian crop disease datasets using Unsloth + LoRA
- Phase 4 - Voice input in local languages + government scheme alerts
- Phase 5 - Federated learning across villages, models improve from anonymised farm data
The infrastructure cost to serve 1,000 farmers? Zero. Because everything runs locally.
Top comments (2)
This is beautiful, high-impact engineering. While many are using AI for desk jobs, youβre using Gemma 4 to protect someone's actual livelihood and food source where the internet can't reach. π
@zanne thank you for your kind words