What I Built
I built KaiwaBuddy, a local AI Japanese conversation partner designed for a friend who is learning beginner Japanese.
The problem was simple: learning vocabulary and grammar is one thing, but actually using them in conversation is much harder.
KaiwaBuddy helps a beginner practice Japanese by providing:
- 🇬🇧 English meaning
- 🧩 Grammar explanations
- 💡 Beginner-friendly explanations
- ✏️ Corrections for common mistakes
- 💬 Follow-up questions
- 🎯 Practice Mode
- 📚 Vocabulary Mode
The current version focuses on beginner N5 Japanese and Minna no Nihongo Lesson 1 concepts.
Demo
https://drive.google.com/file/d/1K2NsCEUhsu3AeU7bEoAk02ObtofojC9J/view?usp=sharing
The demo shows:
- Japanese sentence input
- Grammar analysis
- Mistake correction
- Follow-up conversation
- Practice Mode
- Vocabulary Mode
Code
https://github.com/padmalochini27-del/KaiwaBuddy
How I Built It
KaiwaBuddy is built with:
- Python
- Streamlit
- Ollama
- Gemma 3 1B
The project uses a hybrid approach.
For known beginner Japanese vocabulary and grammar patterns, KaiwaBuddy uses a deterministic learning engine.
For sentences that are outside the known patterns, Gemma 3 1B is used as a fallback conversational model.
This was important because I found that relying entirely on a small language model for beginner Japanese correction could produce unreliable answers.
Instead, I used rules for the concepts I wanted to teach reliably and kept the local AI model for more open-ended interaction.
Why Does Open Innovation Matter?
The most important part of this project is that the AI can run locally.
KaiwaBuddy uses the open-weight Gemma 3 1B model through Ollama rather than depending entirely on a proprietary cloud AI API.
This matters for a language-learning application because conversations can contain personal information.
Local inference also gives developers more freedom to experiment, replace models, change prompts, and build specialized experiences without being completely tied to one proprietary AI provider.
For a beginner developer like me, working with an open model also made the AI system easier to understand as part of the application rather than treating an external API as a black box.
My Agent Session
Optional: Add your DevRelay agent session here if you have one.
Prize Categories
I am submitting KaiwaBuddy for the Hacktoberfest Weekend Challenge: Build for a Friend.
The project uses Gemma 3 1B through Ollama, with local inference as a core part of the application.
What I Learned
This project taught me that building an AI application is not only about calling an AI model.
The most useful system was a combination of deterministic logic and AI:
User → Learning Engine → Grammar/Vocabulary Analysis → Local AI Fallback → Structured Feedback
That approach made the application more reliable for the specific learning experience I wanted to create.




Top comments (0)