# πΈπ³ Wolof Everyday Chatbot β SunuTech
**Team SunuTech β Applied Generative and Agentic AI, AIMS Senegal**
A conversational chatbot in Wolof covering everyday topics (culture, education, agriculture, health, transport) and Wolof orthography correction, fine-tuned from Qwen/Qwen3-0.6B with LoRA.
---
## π Project Structure
```
sunutech-wolof-chatbot/
βββ src/
β βββ context_state_machine.py # IDF-weighted retrieval + safety filter
βββ hf_space/
β βββ app.py # Gradio Space (gr.Blocks)
β βββ context_state_machine.py # Copy for the Space
β βββ requirements.txt
β βββ data/splits/ # Train + validation only (no eval leakage)
βββ data/
β βββ README.md # Data sources documentation
β βββ chat_synth.json # β οΈ large file β see note below
β βββ wolof_synth.jsonl # β οΈ large file β see note below
β βββ splits/ # Train / validation / eval splits
βββ configs/
β βββ wolof_training_config.yml # LoRA training configuration
βββ evaluation_by_category.py # Per-category evaluation script
βββ test_assistant_only_masking.py # Label masking verification
βββ test_space_context_integration.py # Space integration test (no GPU needed)
βββ DATA_SOURCING_GUIDE.md # How to fetch aya & soynade on Kaggle
βββ MODEL_CARD_DRAFT.md # Draft model card
βββ TEAM_GUIDE.md # Team coordination guide
βββ INDIVIDUAL_NOTES.md # Per-member notes
βββ STATUS.md # What is done / what remains
```
---
## β οΈ Large Data Files
The large data files (`chat_synth.json`, `wolof_synth.jsonl`, `data/splits/chat_synth_train.json`, etc.) are excluded from this repository via `.gitignore`.
**To get the data:**
- `synth` data was generated as course material β contact the team.
- `aya` and `soynade` sources must be downloaded from Kaggle β see `DATA_SOURCING_GUIDE.md`.
---
## π Quick Start β¦