Aplikasi personal berbasis AI untuk persiapan TOEFL ITP β fully automated dari generate materi, latihan adaptif, evaluasi mendalam, hingga analitik performa layaknya tutor profesional.
Dibangun sebagai personal project untuk menggantikan kebutuhan persiapan TOEFL manual yang memakan waktu.
| Mode | Deskripsi |
|---|---|
| π Vocab Agent | Latihan kosakata dengan spaced repetition β kata lemah diprioritaskan otomatis |
| π Quiz Agent β TOEFL Style | Latihan grammar 47 topik bergaya TOEFL ITP dengan feedback 4 lapisan: verdict, explanation, concept, example |
| π Quiz Agent β Grammar Tutor | Mode tutor konseptual: 6 tipe soal isian open-ended, penilaian 3-tier (full/partial/no credit), feedback berlapis per soal |
| ποΈ Speaking Agent | 3 sub-mode: Prompted Response, Conversation Practice, Oral Presentation |
| π― TOEFL Simulator | Simulasi penuh ITP mode 50%/75%/100% dengan estimasi skor 310β677 |
| π Dashboard Analytics | 3-layer dashboard: quick snapshot, per-mode summary, deep AI analysis |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Streamlit UI β
ββββββββββββ¬ββββββββββββββββββββ¬βββββββββββ¬ββββββββββββββββββββ€
β Vocab β Quiz Agent β Speaking β TOEFL Simulator β
β Agent β TOEFL β Tutor β Agent β β
ββββββββββββ΄ββββββββββββββββββββ΄βββββββββββ΄ββββββββββββββββββββ€
β Orchestrator & Router β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ€
β Claude API β Google Cloud STT/TTS β
β (Haiku + Sonnet) β (Speech-to-Text/Text-to-Speech) β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββ€
β SQLite (17 tabel) β ChromaDB (RAG) β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββ
- Frontend: Streamlit
- LLM: Claude Haiku & Claude Sonnet (Anthropic API)
- RAG: ChromaDB + sentence-transformers
- Database: SQLite dengan WAL mode
- Audio STT: Google Cloud Speech-to-Text
- Audio TTS: Google Cloud Text-to-Speech
- Orchestration: LangChain + LangGraph
- Python 3.10+
- Anthropic API Key
- Google Cloud Service Account dengan role:
- Cloud Speech Client
- Cloud Speech Editor
- Git
git clone https://github.com/YOUR_USERNAME/english_learning_agent.git
cd english_learning_agentpython -m venv myvenv
# Windows
myvenv\Scripts\activate
# macOS / Linux
source myvenv/bin/activatepip install -r requirements.txtcp .env.example .envBuka .env dan isi:
ANTHROPIC_API_KEY=sk-ant-xxxx...
GOOGLE_APPLICATION_CREDENTIALS=./gcp-service-account.json
DATABASE_PATH=./english_agent.db
CHROMA_DB_PATH=./vector_store/chroma_dbLetakkan file gcp-service-account.json di root project.
python scripts/index_knowledge_base.pyProses ini mengindeks materi grammar ke ChromaDB. Hanya perlu dijalankan sekali.
streamlit run app.pyBuka browser di http://localhost:8501.
# Build image
docker build -f docker/Dockerfile .
# Jalankan dengan docker-compose
docker-compose -f docker/docker-compose.yml upenglish_learning_agent/
βββ agents/ # AI Agent per mode
β βββ vocab/ # Planner, Generator, Validator, Evaluator
β βββ quiz/ # Planner, Generator, Validator, Corrector (TOEFL Style)
β βββ quiz_tutor/ # Planner, Generator, Validator, Corrector, Analytics (Grammar Tutor)
β βββ speaking/ # Generator, Assessor, Follow-up, Evaluator
β βββ toefl/ # Listening/Structure/Reading Generator
β βββ orchestrator/ # Router, Master Analytics
βββ database/
β βββ models.py # 17 tabel SQLite
β βββ repositories/ # CRUD per mode
βββ docs/ # Dokumentasi lengkap
βββ knowledge_base/ # Materi grammar (Markdown)
βββ modules/
β βββ audio/ # STT, TTS, Recorder
β βββ rag/ # Indexer, Retriever
β βββ scoring/ # TOEFL ITP Converter
β βββ session/ # TOEFL Session Manager
βββ pages/ # Halaman Streamlit per mode
βββ prompts/ # System & user prompts per agent
βββ tests/
β βββ unit/ # Unit test per agent
β βββ integration/ # Integration test per flow
βββ app.py # Entry point
βββ config/
βββ settings.py
βββ prerequisite_rules.json
βββ cluster_metadata.json
# Semua test
pytest tests/ -v
# Unit test saja
pytest tests/unit/ -v
# Integration test saja
pytest tests/integration/ -v| Dokumen | Deskripsi |
|---|---|
| Instalasi Detail | Panduan instalasi lengkap step-by-step |
| Konfigurasi | Penjelasan setiap environment variable |
| Knowledge Base | Cara menjalankan indexing KB |
| Menambah Materi | Cara menambah dokumen baru ke KB |
| Troubleshooting | Common issues dan solusinya |
Personal project β not licensed for redistribution.