paper_pipeline.collect() 진입점. tier 폴백(api→chrome_rules→browser_capture)으로 PDF를 확보하고 저자 진실위계 병합·사사 파싱까지 통합 레코드로 반환.
사용법
from paper_pipeline import collect, PipelineConfig
cfg = PipelineConfig.from_env()
cfg.publisher_rules = "paper_pipeline/publisher_rules.yaml"
rec = collect("10.1016/j.arr.2021.101398", cfg)반환 레코드 주요 필드
{
"identifier": {"doi": "...", "pmid": "..."},
"metadata": {"title": "...", "journal": "...", "year": 2022, ...},
"pdf": {
"status": "available", # available | pending | not_supported
"path": "./out/...pdf",
"tier": "chrome_rules", # api | chrome_rules | browser_capture
"verified": True
},
"authors": {
"first": [...], "corresponding": [...], "all": [...],
"source": "wos", # human | wos | pdf | pubmed
"confidence": 0.95 # 0.95/0.7/0.5/0.0
},
"funding": [{"agency": "NRF", "number": "2023R1A..."}],
"trace": ["tier:api miss", "tier:chrome_rules hit"]
}배치 수집
from paper_pipeline import collect_batch, PipelineConfig
cfg = PipelineConfig.from_env()
recs = collect_batch(["10.1016/j.arr.2021.101398", "10.1093/brain/awab123"], cfg)환경변수
| 변수 | 용도 |
|---|---|
OPENAI_API_KEY | GPT Vision 저자 추출 |
UNPAYWALL_EMAIL | Unpaywall API (Tier A OA) |
ENTREZ_EMAIL | PubMed E-utilities (Tier A) |
PipelineConfig 주요 옵션
| 옵션 | 기본값 | 설명 |
|---|---|---|
tiers | ["api", "chrome_rules", "browser_capture"] | 활성 tier 목록 |
publisher_rules | None | YAML 규칙 파일 경로 |
out_dir | "./out" | PDF + JSON 출력 디렉토리 |
pacing | True | 페이싱 (publisher 차단 방지) |
자세한 의사결정 트리·tier 동작·환경변수·알려진 제약은 GUIDE.md 참조. 운영 시스템(human-click 큐, WoS 동기화 배치, AEX 개선 하네스)은 conv-home-operations.md 참조.