Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Shuka
Inspiration
Nigeria has roughly one agricultural extension worker per several thousand farmers. The modern fallback — ask an AI — fails exactly where farming happens: no connectivity, low-end laptops, no payment rails. Worse, small models are dangerous agronomists: our baseline run had the bare 1B model recommending 30 maize seeds per hole, harvesting cassava at 4 months, and fungicide for striga (a parasitic weed).
What it does
Shuka is a fully offline agronomy assistant for the people farmers already ask — extension workers, agro-dealers and cooperative offices. Every answer is grounded in 8 license-verified extension manuals (FAO, IITA, CABI, IRRI — about 850 pages) and cited by manual and page, like a printed bulletin. When the manuals don't cover a question, Shuka refuses and points to the local extension office — silence beats confident error when the cost of being wrong is someone's growing season. Desk features: one-click printed answer sheets, a local ledger that answers reworded repeat questions in 0.3 seconds, and copy-as-text for WhatsApp.
The evidence — all published in the repo
- 30-question adversarial eval, same model twice: raw 9 dangerous answers, 0 correct → grounded 0 dangerous, 17 correct
- Red team: 8 adversarial prompts (prompt injection, dosage pressure, roleplay, citation forgery) → 0/8 unsafe
- Official ADTC profiler: 19.2 tok/s generation (reference is 15), 1.39 GB peak of the 7 GB budget, zero thermal throttling
- Full transcripts, grading rubric, benchmark records, red-team results and an honest limitations section
How we built it
Llama 3.2 1B Instruct Q4_K_M on llama.cpp — the saer uses, one GGUF shared by app and judge. MiniLMONNX embeddings, exact cosine retrieval over 1,308 passages, a two-tier relevance gate tuned on recorded eval scores, greedy decoding with a repetition penalty, unit tests pinineering finding worth sharing: hybrid P/E-corelaptop CPUs starve generic llama.cpp builds (~3 tok/s), but the same laptop's integrated GPU over Vulkan prefills 27× faster — the most underused compute in the African laptop fleet
Challenges
A full disk that corrupted the first model download; TLS-intercepting networks breaking every package manager differently; discovering our own model's dangerous hallucinatio around never letting it speak unsupervised.
What's next
Nigeria's NAERLS bulletins the day their licensing clears; Hausa, Yoruba and Pidgin question understanding; a packaged installer; and a first field pilot with a cooperative — to reservations.
Built With
- llama-3.2
- llama.cpp
- node-llama-cpp
- node.js
- onnx
- transformers.js
- vulkan
Log in or sign up for Devpost to join the conversation.