Ani Kɛse
AI-powered family wellness network for Ghanaian elders
In many Ghanaian families, care already works through a living network: aunties, uncles, siblings, cousins, children abroad, neighbors, church friends, and the one person who somehow coordinates everyone. The problem is not that nobody cares. The problem is that the signal is scattered.
Someone has not replied for days. Someone says "I'm fine" when they are not. A relative promises to visit, but nobody records whether the visit happened. The coordinator keeps a mental checklist across WhatsApp chats, phone calls, and family memory.
Ani Kɛse turns that into an autonomous care loop.
It watches for silence, sends check-ins, routes follow-up to the right relative, accepts text or voice replies, translates Akan/Twi/Fante responses for structured analysis, and keeps the loop open until a human confirms what happened.
Space: https://huggingface.co/spaces/build-small-hackathon/family-care-network
GitHub: https://github.com/teckedd-code2save/adwuma-pa
Ani Kɛse is built around one operating question:
Who needs attention, who should be contacted, what did they say, and has the family closed the loop?
The coordinator registers family members, locations, WhatsApp numbers, preferred language, and care affiliations. A family member can also be a coordinator. Affiliations describe who can help whom: first-party contact, nearby relative, caregiver, emergency contact, primary coordinator, or backup coordinator.
Each family member has their own care policy:
Autopilot runs on a Modal cron every 30 minutes. The app also has its own scan interval setting, with a tolerance so scheduled ticks do not skip just because the previous scan completed a few seconds late.
When a scan finds a due family member, Ani Kɛse opens or reuses one care case. It does not keep creating duplicate requests. It chooses the strongest stage for that scan, so urgent follow-up supersedes check-soon and routine reminders.
Then it chooses the best contact path:
The interface is deliberately small:
The care board is designed like a family conversation, not like a spreadsheet. Each request is grouped with its reply:
Raw /checkin/... paths are hidden behind Open link and Copy link controls. The coordinator sees a clean care thread; WhatsApp keeps the actual link clickable for the person receiving it.
For this use case, the channel matters as much as the model.
Most families will not open a new dashboard every day. They will answer a WhatsApp message. That is why Ani Kɛse uses Twilio WhatsApp for check-in links and relative nudges.
The messages are intentionally human:
Hi Auntie Afia, Ani Kɛse is checking in because we have not heard from you recently. Please send a short update.
Hi Edward, Ani Kɛse has not heard from Auntie Afia for a while. Could you check on her and send a short family update?
Hi Edward, this needs urgent follow-up: Ani Kɛse has not heard from Auntie Afia past her urgent window. Please confirm she is okay.
The app avoids leaking internal reason codes like first_party_amber_silence into family messages. The person should understand the request without understanding the implementation.
The hackathon constraint made the design better. Instead of using one huge model for everything, Ani Kɛse separates the workflow into smaller pieces.
Current stack:
facebook/mms-1b-allQwen2.5-7B-InstructApproximate model budget:
The important rule is that Qwen is not asked to magically understand an opaque audio file. The intended pipeline is:
The structured output looks like this:
{
"summary": "...",
"concern_level": 0,
"flags": [],
"sentiment": "stable",
"evidence": [],
"recommended_action": "normal",
"confidence": "low|medium|high"
}
If transcription, translation, or analysis fails, Ani Kɛse does not invent a score. It marks the response as needs_review and keeps the original reply visible.
The most useful version of this product is not a manual check-in form. A coordinator can already send a WhatsApp message manually.
The value is the autonomous loop:
Frequency caps are critical. A family care system should not become noisy enough that people ignore it.
Ani Kɛse keeps separate daily caps for routine, check-soon, and urgent messages. Frequency caps affect WhatsApp sends, not case visibility. So if a person has reached their urgent-message cap, the case still appears on the board, but the system does not keep sending duplicate WhatsApp messages.
Replies are linked to the exact request they answer. This matters because a family can receive multiple nudges over time.
If a reply comes in early, it is attached to the open request and analysis runs immediately.
If a reply comes in late, it is still attached to its original request when possible. The UI keeps the request/reply pair together so the coordinator can see what the reply was answering.
After analysis:
This minimizes false positives in three ways:
Modal is used carefully because inference credits are finite.
The API uses scale-to-zero behavior, lazy model loading, and small endpoint boundaries:
/health/translate/transcribe/analyze/speakCron is deployed for autonomous scans, but the app-level scan interval, do-not-notify list, and frequency caps control actual work. During development, heavy tests were run manually and stopped when done.
This project was built with Codex as an active coding partner. The commit history is intentionally public so judges can see the build trail:
needs_review states when models fail.Codex was not used only for code generation. It was used as a debugging and product-shaping loop: reading the spec, inspecting the running Space, fixing persistence, tracing cron behavior, tightening copy, and keeping the implementation aligned with the care workflow.
The biggest open area is Akan/Twi/Fante model quality.
Early ASR experiments showed that generic multilingual models are useful but not enough. A Whisper small fine-tune trained on WaxalNLP Akan ASR produced better subjective results on some phrases, but the current system still needs a cleaner evaluation harness and targeted fine-tuning.
Next steps:
Ani Kɛse is not trying to replace family judgment. It is trying to reduce the chance that care falls through the cracks.
The best version of the system is quiet most of the time. When everything is fine, it stays out of the way. When silence stretches too long or a reply sounds concerning, it brings the right people into the loop, shows the evidence, and asks for closure.
That is the central nervous system I wanted for family care: not just alerts, not just check-ins, but coordinated attention.
AI-powered family wellness network for Ghanaian elders
More from this author