#!/usr/bin/env python3 from __future__ import annotations from pathlib import Path from paperdb_config import AIConfig from paperdb_config import Config from paperdb_config import DomainConfig from paperdb_config import PathConfig from paperdb_config import ProcessingConfig from paperdb_config import RemoteConfig ROOT = Path(__file__).resolve().parent CONFIG = Config( # pdfのパスを指定 path=PathConfig( project_root=ROOT, pdf_root=Path.home() / "Documents" / "papers", database=ROOT / "papers.db", publish_database=ROOT / "papers.publish.db", tmp_dir=ROOT / "tmp", text_dir=ROOT / "tmp" / "text", log_dir=ROOT / "logs", papers_org=ROOT / "papers.org", ), # scan_directoriesにpdfを置いているdirectryをlist processing=ProcessingConfig( scan_directories=("user1", "user2",), ignore_directories=("old", "tmp", "trash"), max_papers=3, initial_pages=2, fallback_pages=5, min_text_length=1500, update_database=True, validate_database=True, export_org=True, backup_database=True, ), # categoriesに分類をlist, 分野名にわかりやすいname domain=DomainConfig( name="分野名", description="収集対象とする論文分野の説明", categories=( "Review", "Other", ), default_category="Other", summary_length_ja="100〜200字程度", summary_focus=( "研究目的", "手法", "主な結果", "新規性", "対象分野との関連", ), relevance_criteria=( "対象分野と無関係", "わずかに関連", "周辺分野", "関連する基礎研究", "対象分野へ直接応用可能", "対象分野そのもの", ), ), remote=RemoteConfig( host="user@example.org", database_dir="/home/user/public_html/db", pdf_dir="/home/user/public_html/pdf", ), ai=AIConfig( backend="claude", claude_permission_mode="dontAsk", claude_allowed_tools=( "Read", "Glob", "Grep", "Write", "Edit", "WebSearch", "WebFetch", ), codex_model=None, codex_sandbox="workspace-write", codex_full_auto=True, ), )