Skip to content

Latest commit

 

History

History
95 lines (71 loc) · 2.65 KB

File metadata and controls

95 lines (71 loc) · 2.65 KB

LitRouter

CLI tool untuk membangun literature vault dari Semantic Scholar, siap dibuka di Obsidian dengan Graph View dan auto-tagging.

Fitur

  • Pencarian Semantic Scholar — cari paper lewat CLI dengan satu command
  • Multi-Degree Snowballing — ambil seed paper, lalu otomatis kumpulkan citations & references-nya hingga beberapa tingkat
  • Caching Lokal (JSON) — hasil pencarian disimpan di scholar_cache.json, pencarian kedua untuk keyword yang sama tidak perlu API call
  • Rate-Limit Handling — saat terkena Error 429, aplikasi tidak crash melainkan memberikan data tiruan (mock) lengkap dengan paperId, citations, references agar pipeline tetap berjalan
  • PDF Route — ekstrak DOI atau judul dari halaman pertama file PDF, lalu langsung snowball
  • Output Obsidian-Ready — file Markdown dengan YAML frontmatter, Wiki-links [[...]], folder per tahun, dan auto-tagging dari abstrak
  • Dynamic NLP Tagging — memindai abstrak untuk kata kunci ilmiah (antimicrobialaktivitas-antimikroba, antioxidantaktivitas-antioksidan, flavonoidfitokimia, extract/methanol/ethanolekstraksi-laboratorium)

Instalasi

git clone https://github.com/username/litrouter.git
cd litrouter
pip install -r requirements.txt

Atau di lingkungan system-managed (Ubuntu/Debian):

pip install -r requirements.txt --break-system-packages

Penggunaan

Search — cari berdasarkan keyword

python src/main.py search "deep learning transformer"

Route PDF — ekstrak DOI/judul dari PDF lalu snowball

python src/main.py route-pdf /path/to/paper.pdf

Struktur Output

Output_Vault/
├── 2024/
│   ├── Judul_Paper_Satu.md
│   ├── Judul_Paper_Dua.md
│   └── ...
├── 2023/
│   └── ...
└── unknown/
    └── Judul_Tanpa_Tahun.md

Setiap file .md berisi:

---
title: "Judul Paper"
authors:
  - "Nama Author"
year: 2024
doi: "10.xxxx/xxxxx"
tags:
  - literatur-riset
  - litrouter
  - aktivitas-antioksidan
  - fitokimia
  - ekstraksi-laboratorium
---

## Abstrak
Teks abstrak...

# Jaringan Tautan

## Disitasi oleh
- [[Judul_Paper_Lain]]

## Referensi
- [[Judul_Referensi_Satu]]
- [[Judul_Referensi_Dua]]

Cache

File scholar_cache.json menyimpan semua hasil API untuk menghindari request berulang. Aman dihapus kapan saja — akan dibuat ulang otomatis.

Rate Limiting

  • time.sleep(2) setelah setiap API call sukses (anti-spam)
  • Saat Error 429: time.sleep(3) + fallback ke cache atau mock data
  • Mock data memiliki struktur lengkap (paperId, citations, references) sehingga snowballing tetap berjalan