DEV Community

Cover image for Papa Explain
Aman Jain
Aman Jain

Posted on

Papa Explain

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

PapaExplain: Making AI Actually Personal

We talk a lot about personal AI assistants.

But I kept thinking: what actually makes them personal?

Maybe the future isn't just one giant AI assistant trying to do everything for everyone. Maybe it's also small AI tools built around the everyday problems of individual people.

So for this challenge, I decided to build one for my father.

What I Built

My father, like many people who aren't deeply technical, sometimes comes across messages where the actual information is simple, but the language isn't.

Banking notices. Bills. Account updates. Service notifications. Formal English with a paragraph of information when what you really want to know is:

“What does this mean, and what am I supposed to do?”

That's the problem behind PapaExplain 🧠.

Paste a confusing message, choose Simple English, Hindi or Hinglish and PapaExplain gives you two things:

  • a simpler explanation of what the message means
  • a clear “What should I do?” section

That's it.

I deliberately didn't build another general-purpose chatbot. PapaExplain has one job and I wanted it to do that job simply.

Demo

PapaExplain runs locally on my laptop, so instead of deploying the actual AI pipeline to a cloud service, I recorded the real application running with local inference.

Video demo:



GitHub:

https://github.com/MrCyberlord/ExplainBot

The localhost URL in the demo is intentional. The message is processed by an AI model running on my machine rather than being sent to a hosted LLM API.

How I Built It

The stack is deliberately small:

  • Python
  • Streamlit for the interface
  • Ollama for local inference
  • Gemma 3 270M as the open-weight model

The architecture is basically:

Message
   ↓
Streamlit
   ↓
Ollama (local)
   ↓
Gemma 3 270M
   ↓
Simple explanation + required action
Enter fullscreen mode Exit fullscreen mode

The prompt asks the model to do more than translate. It should simplify the message while preserving important information such as amounts, dates, deadlines and warnings, then separately explain what action the person needs to take.

Why such a tiny model?

This became one of my favourite parts of the project.

I could have reached for a much larger model, but PapaExplain has a narrow job.

That made me curious:

How small can a useful private AI assistant be?

Gemma 3 270M is tiny compared with the models we normally associate with AI assistants.

That's exactly why I wanted to try it.

Instead of using the biggest model available, I kept both the problem and the prompt constrained. For a lightweight tool designed to understand relatively short everyday messages, I wanted to see how far a small local model could go.

Why Does Open Innovation Matter?

Privacy wasn't something I wanted to add later. It influenced the architecture from the beginning.

Think about the messages someone might want PapaExplain to explain: a bank notice, a bill, an account message or some other personal communication.

Those are exactly the kinds of things I don't want the application to require sending to a third-party AI service.

With Ollama + Gemma, the model inference happens locally.

PapaExplain Hosted AI API
Inference Local machine Remote server
LLM API key Not required Usually required
Per-request LLM cost None May have usage cost
Model choice Can swap local models Provider dependent
Internet for inference Not required after setup Required
Message sent to hosted LLM No Yes

A closed API could certainly give me access to a much more powerful model.

But raw model capability wasn't my only requirement.

Privacy, local control and simplicity mattered too.

And that's where using an open-weight model made the project possible in the way I wanted to build it.

What I Learned

The most interesting lesson was that small models become much more useful when the problem becomes more specific.

Gemma 3 270M obviously isn't going to compete with a frontier model on general reasoning, and it can still misunderstand complicated text or occasionally generate something that wasn't present in the original message.

That matters.

For something like PapaExplain, a future version should have stronger safeguards around hallucinations, especially for dates, amounts, URLs and required actions. High-stakes financial, legal or medical messages shouldn't be blindly trusted to a small language model.

Building the prototype made something clear to me:

Getting an AI model to answer is easy. Knowing when its answer should be trusted is the more interesting engineering problem.

How I'd Improve It

PapaExplain is intentionally small, but building it made the next steps pretty clear.
The first thing I'd improve is reliability. A small model can occasionally introduce a detail that wasn't present in the original message, so I'd add structured extraction and validation for things like dates, amounts, deadlines, URLs and required actions before showing them to the user.
After that, I'd explore:

  • Image input, so my father could simply upload a screenshot instead of copying the text.
  • Confidence and uncertainty indicators, so the app can say “I'm not sure” instead of confidently guessing.
  • Model comparison, to test whether slightly larger local Gemma models provide enough improvement to justify the additional resources.
  • An even simpler one-click interface designed for someone who doesn't care which model, framework or prompt is running underneath. And eventually, I'd love for the interaction to become as simple as: Take a screenshot → give it to PapaExplain → understand what it means.

But I also don't want to lose the reason I built it in the first place.
It should remain a small tool that makes one everyday problem easier.

Code

The complete source code and setup instructions are available here:

GitHub: https://github.com/MrCyberlord/ExplainBot

I also documented the local setup so the project can be run with Ollama and Gemma rather than requiring access to my machine or an external AI API.

My Agent Session

There's one more fun part to how PapaExplain was built.

I used OpenAI Codex as my coding agent during the build.

It helped me turn the idea into the Streamlit application, structure the project, test it, integrate the local model and create the documentation.

So there is something slightly recursive about this project:

I used AI to help me build a personal AI for my father. 😄

Prize Categories

Best Use of Gemma

PapaExplain uses Gemma 3 270M for its core functionality, running locally through Ollama.

I didn't choose the smallest Gemma model simply to say that the project uses Gemma.

It became part of the experiment itself:

Can a tiny Gemma model be useful enough to solve one focused, everyday problem completely locally?

PapaExplain is my attempt to find out.


I started this challenge thinking about something useful I could build quickly for one person.

I ended it thinking a little differently about the phrase “personal AI.”

Maybe personal AI doesn't always need to mean one enormously capable assistant that knows everything about us.

Sometimes it can simply mean building the right little tool for the right person.

One person. One recurring problem. One button.

Top comments (0)