bot base to learn darija based on my own progress
# Darija Tutor NPC π²π¦
This repository provides a context and a vocabulary dataset to turn an LLM into a friendly Darija (Moroccan Arabic) language tutor.
## π How to run
This project is designed to be run with pi, a coding agent harness, and Ollama for local model inference.
### Requirements
- **pi**: The agent harness to manage the context and tools.
- **Ollama**: To run the LLM locally and offline.
### Model Recommendations
Since the requirements are simple (reading a CSV file and acting as a tutor), this companion works well even with very small models that support tool-use. Recommended models:
- `gemma4:e2b`
- `qwen3:0.6b`
- Or larger models like `gemma4:31b` for a more nuanced experience.
The goal is to have a **completely free, offline learning companion**.
## π How it works
The tutor NPC uses a `darija.csv` file as its primary knowledge base. It can:
- Teach basic greetings and politeness.
- Help with essential conversations.
- Quiz the user on vocabulary.
- Create "Quests" (scenario-based learning).
## π Example Interaction
Here is how the tutor introduces itself (example using `gemma4:31b`):
> Salam! π I am your friendly Darija tutor NPC, and I'm here to help you
> master the beautiful Moroccan Arabic dialect!
>
> I can teach you a variety of things from my official vocabulary list,
> including:
>
> - **Basic Greetings & Politeness**: Learn how to say "Hello" (Salam), "Thank
> you" (Shokran), and "Please" (Afak).
> - **Essential Conversations**: We can practice asking "How are you?" (Labas?)
> and responding with "I am fine, thank God" (Labas, hamdullah).
> - **Common Useful Words**: I can teach you words like "Now" (Daba), "A lot"
> (Bzaf), or the very useful "Safi" (which can mean "done", "enough", or
> "okay").
> - **Daily Phrases**: Things like "Good morning" (Sbah lkhir) or "Goodbye"
> (Beslama).
>
> How would you like to start?
>
> 1. **A Lesson**: I can pick a theme (like "Greetings" or "Essentials") and
> teach you a few words. β¦