🇯🇵 KaiwaBuddy: I Built a Local AI Japanese Conversation Partner for My Friend A developer built KaiwaBuddy, a local AI Japanese conversation partner for a friend learning beginner Japanese, using a hybrid architecture that pairs a deterministic learning engine for known N5 vocabulary and grammar patterns with Gemma 3 1B via Ollama as a fallback conversational model. The developer chose local inference over a proprietary cloud API to keep potentially personal conversation data on-device and to allow model and prompt swapping, and submitted the project to the Hacktoberfest Weekend Challenge: Build for a Friend. 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: The current version focuses on beginner N5 Japanese and Minna no Nihongo Lesson 1 concepts. https://drive.google.com/file/d/1K2NsCEUhsu3AeU7bEoAk02ObtofojC9J/view?usp=sharing https://drive.google.com/file/d/1K2NsCEUhsu3AeU7bEoAk02ObtofojC9J/view?usp=sharing The demo shows: https://github.com/padmalochini27-del/KaiwaBuddy https://github.com/padmalochini27-del/KaiwaBuddy KaiwaBuddy is built with: 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. 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. Optional: Add your DevRelay agent session here if you have one. 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. 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.