Inspiration
Extension officers and farmers across Africa often lack reliable internet or grid electricity, yet they need fast, trustworthy answers to crop, livestock, weather, and soil questions every day. Most AI assistants assume you have a cloud connection. Farmobius doesn't.
What it does
Farmobius is an offline, on-device agricultural advisory assistant that runs entirely on an 8GB, CPU-only laptop — the kind of machine that's actually accessible across the continent, not a high-end workstation. It answers crop disease, livestock health, soil, and weather-planning questions in English or French, with:
- Grounded, sourced answers via retrieval over a curated bilingual knowledge base, so it doesn't just guess from memory
- A rule-based diagnostic layer that flags known symptom patterns explicitly and auditably, alongside the AI's own reasoning
- Voice input and output (fully offline speech-to-text and text-to-speech), since not every farmer wants to type
- Five visual themes, a persistent conversation sidebar, and streaming responses so it feels like a real product, not a prototype
How we built it
- Base model: Qwen3-4B-Instruct, quantized to GGUF Q4_K_M, served via
llama.cpp - RAG pipeline: BGE-M3 multilingual embeddings + a hand-curated, partly FAO-sourced knowledge base, retrieved via cosine similarity with a relevance threshold to avoid forcing irrelevant context onto simple greetings
- Rule engine: bilingual keyword-based symptom detection running alongside retrieval
- Voice: whisper.cpp (multilingual speech-to-text with real voice-activity detection) and Piper (offline text-to-speech)
- Interface: a Flask backend and a dependency-free frontend (no CDN calls, to stay genuinely offline) with token-by-token streaming, real mid-generation cancellation, and persistent conversation history
Challenges we ran into
The biggest challenge wasn't the AI — it was the hardware. Our development laptop consistently hit 99°C under sustained CPU inference, well past the competition's 85°C thermal penalty threshold. Diagnosing this properly took real detective work: we found the laptop's fans were reporting 0 RPM despite genuine airflow (a known Linux quirk on this hardware), then discovered that Secure Boot was silently blocking the kernel-level power management tools needed to fix it. Disabling Secure Boot and carefully tuning CPU power limits brought peak temperatures down to a stable 80-84°C with almost no performance cost.
We also built and ran our own 24-question bilingual agriculture evaluation set (since the standard benchmark only measures general reasoning, not domain knowledge) and found a real gap: the model scored 81% in English but only 62% in French on identical questions - a language-retrieval gap, not a knowledge gap. That single finding is what justified building the RAG layer in the first place.
Accomplishments that we're proud of
- Root-caused and fixed a genuine hardware thermal issue rather than just accepting a score penalty
- Built a real evaluation methodology (matching the official loglikelihood-based scoring approach) instead of guessing at quality
- Made deliberate, documented engineering trade-offs - including evaluating and not pursuing a LoRA fine-tune and a cutting-edge ternary quantization technique, both for clearly reasoned time/risk reasons - rather than chasing every possible feature
What we learned
That the real constraints in edge AI aren't just about the model - they're about the whole system: thermal management, power limits, retrieval precision, and honest evaluation methodology all matter as much as model choice.
What's next
Broader knowledge base coverage via structured document ingestion, revisiting LoRA fine-tuning with a real training dataset and more runway, and exploring recent post-training ternary quantization research to shrink the model further without sacrificing accuracy.
Built With
- bge-m3
- css
- flask
- gguf
- html
- javascript
- llama.cpp
- piper
- python
- qwen3
- rag
- server-sent-events
- ubuntu22.04
- web-audio-api
- whisper.cpp
Log in or sign up for Devpost to join the conversation.