Inspiration
Small and medium business owners in Nigeria handle a constant stream of routine but time-consuming tasks: drafting payment reminders, calculating prices and margins, and communicating with customers — often without reliable internet access, and without the time or budget for a dedicated accountant or assistant. We wanted to build something that actually fits the hardware people really have, not a hypothetical high-end machine.
What it does
Naija Biz Assistant is an offline AI business assistant for Nigerian SME owners. It handles everyday business writing (like customer payment reminders) and basic business arithmetic (like pricing and margin calculations), running entirely on-device with zero cloud dependency after the model is downloaded.
How we built it
We built on Qwen2.5-3B-Instruct, quantized to GGUF Q4_K_M, running through llama.cpp — the only runtime accepted by the challenge. We chose a 3B-parameter model as a deliberate middle ground: large enough for genuinely coherent, competent business writing, small enough to leave a comfortable memory margin under the 7GB constraint. Q4_K_M quantization was selected as a well-established balance point between file size and output quality for llama.cpp deployments.
Development happened directly on an HP EliteBook (Intel Core i7, no discrete GPU, ~8GB RAM) — essentially the same hardware profile the competition targets — which let us catch real resource constraints firsthand rather than guessing at them on a more powerful dev machine.
Challenges we ran into
Several real environment issues came up during the build, each of which taught us something concrete:
- Windows long path limits broke both
llama-cpp-pythonandlm-evalinstalls, since both bundle deeply nested source files. Fixed by enablingLongPathsEnabledin the Windows registry. - A missing Visual C++ Redistributable caused
llama-bench.exeto crash immediately on load with an access violation — a very easy-to-misdiagnose failure that looked like a broken binary but was actually a missing system dependency. - A large model download over an unstable connection required switching to resumable, retry-aware
curlflags (-C -with--retry) rather than restarting a ~1.9GB download from scratch every time the connection blipped. - A text-encoding bug mangled the Naira symbol (₦) in our test prompts; we resolved it by using
NGNinstead, avoiding the encoding risk entirely.
What we learned
Real-world on-device AI development is dominated by environment friction, not model selection. Every blocker we hit was a systems/tooling issue (path limits, missing runtime dependencies, network reliability, character encoding) rather than a machine-learning problem — which mirrors exactly the kind of friction a real small business owner would face trying to set this up themselves, and reinforced why "runs cleanly on modest, real hardware" has to be a first-class design goal, not an afterthought.
What's next
The natural next step is grounding responses in a small offline retrieval layer over real Nigerian SME reference material (invoice templates, basic tax guidance, sample price lists), so answers are anchored in actual local business context rather than general knowledge alone.
Log in or sign up for Devpost to join the conversation.