Skip to content

Ardiyanto24/English-Learning-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

226 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ English Learning AI Agent

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.


✨ Fitur Utama

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

πŸ—οΈ Arsitektur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        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)                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

  • 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

πŸ“‹ Prerequisites


πŸš€ Instalasi

1. Clone repository

git clone https://github.com/YOUR_USERNAME/english_learning_agent.git
cd english_learning_agent

2. Buat virtual environment

python -m venv myvenv

# Windows
myvenv\Scripts\activate

# macOS / Linux
source myvenv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Konfigurasi environment variables

cp .env.example .env

Buka .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_db

Letakkan file gcp-service-account.json di root project.

5. Index knowledge base

python scripts/index_knowledge_base.py

Proses ini mengindeks materi grammar ke ChromaDB. Hanya perlu dijalankan sekali.

6. Jalankan aplikasi

streamlit run app.py

Buka browser di http://localhost:8501.


🐳 Menjalankan dengan Docker

# Build image
docker build -f docker/Dockerfile .

# Jalankan dengan docker-compose
docker-compose -f docker/docker-compose.yml up

πŸ“ Struktur Project

english_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

πŸ§ͺ Menjalankan Test

# Semua test
pytest tests/ -v

# Unit test saja
pytest tests/unit/ -v

# Integration test saja
pytest tests/integration/ -v

πŸ“š Dokumentasi

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

πŸ“„ License

Personal project β€” not licensed for redistribution.

About

Build AI Agent for personal TOEFL ITP preparation app - Vocab, Quiz, Speaking, and TOEFL Simulator with adaptive learning and deep analytics

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages