Inspiration

What it does

AgriPadi is an offline AI farming advisor for Nigerian and West African smallholder farmers and extension officers. Ask it about crop disease symptoms, livestock husbandry, or market timing in plain language, no internet connection required after the one-time model download. It runs entirely on-device: no API calls, no data plan, no dependency on the power grid staying up.

How I built it

  • Base model: Llama 3.2 3B Instruct, quantized to GGUF Q4_K_M (~2GB) small enough to leave comfortable headroom under the 7GB RAM ceiling, strong enough to follow multi-symptom diagnostic questions.
  • Runtime: llama.cpp, compiled from source, CPU-only inference ,no GPU required.
  • Grounding: a small offline corpus of public agricultural extension material, retrieved via lightweight SQLite full-text search rather than a heavy embedding model, to protect the RAM budget.

Challenges I ran into

Getting the toolchain working on constrained hardware was half the battle. I hit an upstream llama.cpp bug where the newer threaded CLI wrapper crashes on model load (pure virtual method called), worked around by driving llama-server directly. I also had to tune WSL2's memory allocation and the model's context/slot settings, since the naive defaults (4 parallel slots × 18k context) blew past what an 8GB laptop can realistically spare for a single-user app.

Accomplishments that I am proud of

A working end-to-end pipeline: model loads, answers real agriculture questions coherently, and the official ADTC profiler confirms it holds at ~3.4GB peak RAM with zero thermal throttling , well inside the disqualification ceiling.

What I learned

That the hardware constraint is the real design problem, not the model, most of the engineering effort went into memory/context tuning and diagnosing environment-specific crashes, not prompting or model selection.

What's next for AgriPadi

Wiring in the retrieval corpus over Nigerian/West African agricultural extension sources, tuning accuracy against real farmer-style questions, and polishing the local chat interface.

Built With

Share this project:

Updates

Submission history