AI Active Recall & Spaced Repetition

unlisted

by AgusTinusT

Local-first active recall review tool powered by AI semantic evaluation.

Updated 26d ago
View on GitHub

Obsidian AI Active Recall & Spaced Repetition

Plugin Obsidian lokal-first yang memicu retensi ingatan jangka panjang melalui metode Active Recall mandiri dan evaluasi semantik berbasis AI. Alih-alih menggunakan kartu flash pilihan ganda (multiple choice) atau jawaban terstruktur kaku, plugin ini meminta Anda menuliskan apa saja yang Anda ingat tentang sebuah catatan dari nol, mengevaluasi pemahaman Anda dengan model bahasa besar (LLM), dan menjadwalkan peninjauan berikutnya menggunakan algoritma SM-2 (Spaced Repetition).


πŸš€ Fitur Utama

  • Active Recall Berbasis Teks Bebas: Tulis semua yang Anda ingat tanpa batasan format. AI akan menilai pemahaman Anda secara kontekstual.
  • Evaluasi Semantik AI: Membandingkan ingatan Anda dengan konten asli catatan untuk menghasilkan:
    • Skor Pemahaman (0–5) berdasarkan kualitas ingatan Anda.
    • Poin yang Diingat: Hal-hal penting yang sudah Anda kuasai.
    • Poin yang Terlewat: Informasi kunci yang terlupakan.
    • Miskonsepsi: Koreksi atas kesalahan informasi yang Anda ingat.
    • Umpan Balik Konstruktif: Feedback 1-2 kalimat untuk membantu Anda belajar.
  • Spaced Repetition Otomatis (Algoritma SM-2): Menghitung tanggal jatuh tempo peninjauan berikutnya berdasarkan skor evaluasi AI. Hasilnya disimpan langsung ke YAML frontmatter catatan.
  • Dukungan API Fleksibel: Kompatibel dengan API OpenAI (seperti gpt-4o-mini) atau endpoint lokal/pihak ketiga (seperti Ollama, LM Studio, LiteLLM, Gemini, dll.) yang mendukung format respons JSON OpenAI.
  • Peninjauan Antrean Cepat: Pindai seluruh catatan yang sudah jatuh tempo di vault Anda dan lakukan peninjauan secara berurutan hanya dengan sekali klik.

πŸ› οΈ Cara Kerja & Alur Evaluasi

graph TD
    A[Buka Catatan / Jalankan Antrean] --> B[Modal Active Recall Terbuka]
    B --> C[Ketik Ingatan Anda secara Bebas]
    C --> D[Kirim ke LLM untuk Evaluasi]
    D --> E{Evaluasi AI Semantik}
    E -->|Analisis Kualitas| F[Hasilkan Skor & Feedback]
    E -->|Hitung SM-2| G[Update Properti YAML Frontmatter]
    F & G --> H[Tampilkan Hasil Evaluasi di Modal]
    H --> I[Klik Selesai / Lanjut ke Antrean Berikutnya]

Algoritma SM-2 & Aturan Skor

Skor (0 sampai 5) ditentukan oleh AI dengan kriteria berikut:

  • Skor < 3 (Gagal/Kurang): Pengulangan direset (repetition = 0) dan dijadwalkan ulang besok (interval = 1).
  • Skor >= 3 (Lolos/Cukup-Sempurna):
    • Pengulangan pertama: interval = 1 hari
    • Pengulangan kedua: interval = 3 hari
    • Pengulangan selanjutnya: interval = interval_sebelumnya * easeFactor
    • Nilai Ease Factor diperbarui secara dinamis berdasarkan performa ingatan Anda (tidak boleh kurang dari 1.3).

βš™οΈ Instalasi & Konfigurasi

1. Instalasi Manual

  1. Unduh atau salin seluruh file proyek ini.
  2. Pindahkan folder proyek ke direktori plugin Obsidian Anda: [Vault-Anda]/.obsidian/plugins/obsidian-ai-recall/
  3. Pastikan file main.js, manifest.json, dan styles.css berada di dalam folder tersebut.
  4. Buka Obsidian -> Settings -> Community Plugins -> Muat ulang (Reload) dan aktifkan AI Active Recall & Spaced Repetition.

2. Konfigurasi Plugin

Buka menu pengaturan plugin di Obsidian untuk mengatur:

  • API Key: Kunci API Anda (misal dari OpenAI).
  • API Base URL: Defaultnya adalah https://api.openai.com/v1. Anda dapat mengubahnya ke endpoint lokal atau penyedia cloud lain (seperti OpenRouter atau server Ollama lokal).
  • Model Name: Model LLM yang ingin digunakan (direkomendasikan menggunakan model cepat & efisien seperti gpt-4o-mini atau model lokal sejenis).

[!IMPORTANT] Pastikan model yang Anda gunakan mendukung JSON Mode (response_format: { type: "json_object" }) agar plugin dapat memproses umpan balik secara terstruktur.


πŸ“– Petunjuk Penggunaan

Memulai Review Catatan Aktif

  1. Buka catatan Markdown yang ingin Anda uji ingatan Anda terhadapnya.
  2. Buka Command Palette (Ctrl+P atau Cmd+P).
  3. Cari dan pilih: Mulai Review Active Recall untuk Note Aktif.
  4. Ketik ingatan Anda di kolom teks yang disediakan, lalu tekan Submit & Evaluasi.

Memulai Review Masal (Antrean Jatuh Tempo)

  1. Klik ikon pita (Ribbon Icon) di sidebar sebelah kiri berlogo sirkuit otak (brain-circuit) bertuliskan Review Active Recall (Jatuh Tempo).
  2. Plugin akan memindai seluruh catatan di vault Anda yang memiliki properti sr-due kurang dari atau sama dengan hari ini.
  3. Anda akan dituntun untuk meninjau semua catatan tersebut secara bergantian satu per satu.

Struktur Properti Metadata (Frontmatter)

Setelah peninjauan selesai untuk pertama kalinya, plugin akan menambahkan properti berikut secara otomatis ke bagian atas catatan Anda:

---
sr-due: 2026-08-28      # Tanggal review berikutnya (YYYY-MM-DD)
sr-interval: 3          # Jeda hari untuk peninjauan berikutnya
sr-reps: 2              # Jumlah pengulangan sukses berturut-turut
sr-ease: 2.6            # Faktor kemudahan (Ease Factor) catatan ini
---

Anda juga bisa menambahkan properti sr-due secara manual dengan tanggal hari ini atau tanggal lampau untuk mendaftarkan catatan baru ke dalam sistem antrean Spaced Repetition.


πŸ’» Langkah Pengembangan (Development)

Jika Anda ingin memodifikasi atau mengembangkan plugin ini lebih lanjut:

  1. Instal Dependensi:

    npm install
    
  2. Jalankan Server Development (Watcher):

    npm run dev
    

    Perintah ini akan memantau perubahan file TypeScript di /src dan melakukan kompilasi otomatis ke main.js secara langsung.

  3. Build untuk Rilis/Produksi:

    npm run build
    

πŸ”’ Privasi & Keamanan Data

  • Plugin ini bersifat local-first; data catatan Anda disimpan secara lokal di dalam Obsidian Vault Anda.
  • Catatan Anda dan draf jawaban active recall hanya dikirim ke endpoint API LLM yang Anda konfigurasi di menu pengaturan untuk proses evaluasi semantik dan tidak disimpan di server eksternal mana pun selain dari penyedia LLM pilihan Anda.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.