DEV Community

Cover image for 🇯🇵 KaiwaBuddy: I Built a Local AI Japanese Conversation Partner for My Friend
Padma Lochini
Padma Lochini

Posted on

🇯🇵 KaiwaBuddy: I Built a Local AI Japanese Conversation Partner for My Friend

Hacktoberfest: Maintainer Spotlight

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:

  1. Japanese sentence input
  2. Grammar analysis
  3. Mistake correction
  4. Follow-up conversation
  5. Practice Mode
  6. 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)