This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass What I Built For most people, "touch grass" is a joke. For millions of smallholder farmers in Nigeria, the grass is the job, and getting it wrong costs a season. The question every farmer asks at this time of year is simple: "Rain don start. Make I plant maize now?" Plant too early, on a false start, and the seedlings die in the dry spell that follows. Wait too long and you miss the window. The answer depends on how much rain actually fell in your village, what's coming this week, and what the season allows for your crop. That information exists, but it lives in English-language weather apps and extension PDFs, not in the languages farmers speak. Ugbo (Igbo for "farm") is a voice-first weekly field plan. A farmer picks their town and crops, asks a question in Nigerian Pidgin, Hausa, Yorùbá, Igbo or English, and Ugbo: Checks the real rain at their village for the last 14 days and the next 7 Works out what the season allows for each crop in their zone (South, Middle Belt, North) Speaks back a short plan in a Nigerian voice, ending with the one job to do in the field today The screen is the shortest part of the experience. Ask, listen, go to the farm. A real answer for Suleja (Niger State), maize and yam, this week: See your week for Suleja. Rain wey fall for the last 14 days: 85 mm. Rain wey go fall for the next 7 days: 17 mm. The soil don wet well well. How sure: I sure. For your maize, na time to harvest. For your yam, na time to harvest... The main work for today: Waka round your farm, check for weed and insect. Demo Live app: https://cipoklean-ugbo.hf.space/ Hugging Face Space: https://huggingface.co/spaces/Cipoklean/ugbo Try it: set your town, tick your crops, pick a language, type or say "Make I plant maize now?" and tap Get my week plan. The plan plays aloud automatically. Code title Ugbo emoji 🌱 colorFrom green colorTo yellow sdk gradio sdk_version 6.30.0 python_version 3.12 app_file app.py pinned false license mit 🌱 Ugbo — talk to your farm Ugbo means "farm" in Igbo. Ugbo is a voice-first weekly field plan for smallholder farmers in Nigeria A farmer taps one button and asks, in Pidgin, Hausa, Yorùbá, Igbo or English, something like "Rain don start, make I plant maize now?" Ugbo checks the real rain at their village, works out what the season allows for their crops, and speaks back a short plan that ends with the one job to do in the field today. The screen is the shortest part of the experience. Ask, listen, go to the farm. Try it: huggingface.co/spaces/Cipoklean/ugbo How it works 🎤 voice ──► NaijaVox-2.0 (open ASR) ──► question text │ town ──► Open-Meteo / MET Norway / NASA POWER ──► rain facts (14 days back, 7… How I Built It voice ──► NaijaVox-2.0 (open ASR) ──► question text town ──► Open-Meteo / MET Norway / NASA POWER ──► rain facts crops ──► plain-rule Nigerian crop calendar ──► this week's signals Gemma 3 12B (open weights) ──► plan in the farmer's language fact check ──► templated plan if Gemma drifts Nigerian neural voice ──► spoken plan Enter fullscreen mode Exit fullscreen mode Listening: NaijaVox-2.0. An Apache-2.0 Whisper-large-v3 fine-tune for Nigerian languages. Ugbo echoes back "You asked: ..." so a farmer can catch a mishearing before acting on the answer. Thinking: rules decide the facts, Gemma decides the words. This was the most important design choice. A language model should never invent a planting date for someone whose harvest depends on it. So the facts come from transparent rules in season.py: planting and harvest windows per crop and zone, heavy-rain warnings (don't spray or fertilize before 25 mm+), dry-spell checks, and a soil-moisture estimate from rain minus evapotranspiration. Gemma 3 12B, running in-process on Hugging Face ZeroGPU, only explains those facts in the farmer's language. Then Ugbo checks Gemma's work: every number in its answer must appear in the facts it was given. If Gemma invents a rainfall figure or a fertilizer rate, its answer is thrown away and a templated plan built from the rules is used instead. Catching false starts. Early rain followed by a dry spell is the classic way to lose a season. Ugbo only treats the rains as established after 3+ rainy days in the last week, 20 mm+ in two weeks, and no 4-day dry spell in the forecast. Until then it says "wait", and every plan says how sure it is: sure, fairly sure, or not sure. Always answering. Free GPU quota runs out, and a farmer shouldn't get an error. When Gemma is unavailable, Ugbo answers from the rules: a hand-written Pidgin template, machine-translated Hausa, Yorùbá and Igbo, or English. Speaking. I first used the phone's built-in Web Speech voice, then found it didn't play on my own Android phone. The web app now uses a Nigerian English neural voice for English and Pidgin and a Hausa voice for Hausa, delivered as a small MP3 that plays in any browser. The CLI can still speak with open voices (Naija TTS and Meta's MMS-TTS), which I'd like to bring back to the web app once I can afford the GPU time. Free to run. Every weather source is free and keyless. The whole thing runs on a free Hugging Face Space, and the Gemma backend is swappable: ollama for fully local, or hosted Gemma when you don't have the hardware. Why Does Open Innovation Matter? Because the people Ugbo is for are the people closed AI forgets. Nigerian languages exist in open models because Nigerians built them. NaijaVox, Naija TTS and MMS exist because researchers fine-tuned and released open weights for Pidgin, Hausa, Yorùbá and Igbo. No closed speech API I looked at understood a Pidgin farm question as well, and I couldn't have fine-tuned one if it didn't. I can make the model behave. With open weights I control the whole pipeline: the prompt, the fact check, the fallback. I can guarantee Ugbo never states a number the rules didn't produce. That matters more than eloquence when the advice is about someone's harvest. It costs nothing to run. A farmer in Suleja shouldn't need a credit card, and neither should the developer serving them. Open weights on free compute, free open weather data, and an MIT license mean any extension office, co-op or student can fork it and run it for their own state. It can go where farmers are. Gemma runs on ollama on a laptop. The next step is a WhatsApp voice-note or phone-call front end served from a cheap local machine, so farmers without smartphones or steady data can ask too. A closed API would make every one of those calls a bill. What's not done yet. I haven't measured speech accuracy on real farm questions (Igbo is weaker), and the crop calendar still needs checking row by row against IITA and state ADP calendars. If you speak one of these languages or work in agricultural extension, that's the most useful contribution you could make. CONTRIBUTING.md has the details. Prize Categories Best Use of Gemma: Gemma 3 12B writes every plan, constrained by a rules engine and a number-level fact check so it explains real data instead of inventing it. Ugbo is a rule of thumb, not a replacement for your local extension officer. Rain data comes from weather models, not a gauge on your farm.
Ugbo: Ask Your Farm in Pidgin, Go Outside
Full Article
Original Source
Read the full article at Dev →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.