How chadoshamot/paper-librarian works
Paper Librarian is a local AI paper-management application. Its central workflow takes a PDF through metadata extraction, full-text summarization, classification, filing, and knowledge-base indexing; users then search and open papers or maintain the library through CLI, Web, and desktop interfaces. Separate capabilities cover multi-source daily discovery and scoring, the librarian agent, and optional cloud and Zotero integration. The README documents these capabilities; sampled excerpts chiefly support the ingestion, retrieval, daily, and interface relationships, so uncertain wiring is omitted.
Main entry points: pipeline.py Ingest pipeline · daily.py Daily discovery · librarian.py Librarian agent · cli.py Interactive CLI
Components 24
User interfaces
- Interactive CLI
service/cli.py - Web interface
service/web.py - Desktop shell
service/desktop.py
Paper library
- Ingest entry
service/ingest.py - Ingest pipeline
service/pipeline.py - Metadata extraction
service/metadata.py - PDF text
service/pdftext.py - Classification
service/classifier.py - Paper manifest
service/manifest.py - Bilingual knowledge base
service/retrieval.py - Read state
service/read_state.py
Search and discovery
- Search and retrieval
service/retrieval.py - Daily discovery
service/daily.py - Duplicate detection
service/dedup.py
Librarian agent
- Librarian agent
service/librarian.py
External integrations
- LLM client
service/llm.py - Cloud synchronization
service/cloud.py - Zotero client
service/zotero_client.py - Web search chat
service/chat.py
Other components
- Paper manager
- ModelScope storage
- Zotero service
- Paper sources
- Kimi search
Connections 33
- Paper manager → Interactive CLI: uses
- Paper manager → Web interface: uses
- Paper manager → Desktop shell: opens
- Desktop shell → Web interface: hosts
- Paper manager → Ingest entry: submits PDF
- Ingest entry → Ingest pipeline: runs
- Ingest pipeline → Metadata extraction: extracts metadata
- Ingest pipeline → PDF text: reads PDF
- Ingest pipeline → Classification: classifies
- Ingest pipeline → LLM client: summarizes with
- Ingest pipeline → Paper manifest: updates
- Ingest pipeline → Bilingual knowledge base: writes card
- Ingest pipeline → Zotero client: creates item
- Zotero client → Zotero service: updates
- Interactive CLI → Search and retrieval: searches
- Web interface → Search and retrieval: searches
- Search and retrieval → Bilingual knowledge base: reads documents
- Search and retrieval → Read state: reads status
- Interactive CLI → Read state: marks read
- Interactive CLI → Daily discovery: runs discovery
- Web interface → Daily discovery: runs discovery
- Daily discovery → Paper sources: fetches candidates
- Daily discovery → Paper manifest: filters known papers
- Daily discovery → LLM client: judges candidates
- Interactive CLI → Duplicate detection: checks duplicates
- Librarian agent → Search and retrieval: searches library
- Librarian agent → Ingest pipeline: maintains papers
- Librarian agent → Daily discovery: runs retrieval
- Librarian agent → Cloud synchronization: requests sync
- Librarian agent → Web search chat: requests web search
- Web search chat → Kimi search: searches web
- Cloud synchronization → ModelScope storage: syncs library
- Ingest pipeline → Cloud synchronization: syncs changes