From e6d671316915eddbf57aa062152aa726e20913b6 Mon Sep 17 00:00:00 2001 From: yeokwanggoo-stack Date: Mon, 24 Aug 2026 23:46:19 +0900 Subject: [PATCH] feat: enable IEEE Xplore collection and document validation - enable IEEE source in default and NAS configurations - record API activation, rate-limit validation, and full-run results - update NAS operational guidance and TODO status --- README_NAS.md | 2 +- config.nas.yaml | 2 +- config.yaml | 2 +- paper-monitor-todo.md | 56 +++++++++++++++++++------------------------ 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/README_NAS.md b/README_NAS.md index e08e29c..a191766 100644 --- a/README_NAS.md +++ b/README_NAS.md @@ -158,7 +158,7 @@ sync-only 테스트가 정상이라면 `.env`를 수정합니다. JOPLIN_WRITE_ENABLED=true ``` -현재 IEEE key가 아직 Waiting이라면 `config.nas.yaml`에서: +IEEE developer application이 Waiting 또는 접근이 차단된 경우에만 `config.nas.yaml`에서 비활성화합니다: ```yaml sources: diff --git a/config.nas.yaml b/config.nas.yaml index 84bb75a..c8f46ff 100644 --- a/config.nas.yaml +++ b/config.nas.yaml @@ -41,7 +41,7 @@ search: sources: ieee: - enabled: false # Set true after the IEEE developer application becomes Active. + enabled: true api_key_env: IEEE_API_KEY base_url: https://ieeexploreapi.ieee.org/api/v1/search/articles diff --git a/config.yaml b/config.yaml index a617bc4..dbf09e3 100644 --- a/config.yaml +++ b/config.yaml @@ -43,7 +43,7 @@ search: sources: ieee: - enabled: false + enabled: true api_key_env: IEEE_API_KEY base_url: https://ieeexploreapi.ieee.org/api/v1/search/articles semantic_scholar: diff --git a/paper-monitor-todo.md b/paper-monitor-todo.md index 17215d7..3297fe0 100644 --- a/paper-monitor-todo.md +++ b/paper-monitor-todo.md @@ -1,6 +1,6 @@ # Paper Monitor 프로젝트 - 남은 작업 및 검토 TODO -최종 업데이트: 2026-08-22 (Groq API 검증 및 fallback 구현 완료 반영) +최종 업데이트: 2026-08-24 (IEEE API 활성화 및 전체 NAS 실행 완료 반영) 이 문서는 지금까지 구축한 Synology NAS 기반 논문 자동 모니터링 시스템에서 **아직 미정이거나 수행하지 못한 항목**, 그리고 **운영 전에 변경 또는 추가 검토가 필요한 항목**을 정리한 TODO 목록이다. @@ -52,18 +52,13 @@ - 검색 query 수 축소 - `max_retries` 추가 축소 -### [x] IEEE 접근 차단 해제 여부 확인 -- 2026-08-21 확인: 집 인터넷에서 `developer.ieee.org` HTTP 200 OK - 차단 해제 완료 -- API 승인 상태 및 key 교체 여부는 아래 별도 항목에서 확인 필요 -- 재활성화 시 먼저 1개 query만 수동 테스트 권장 -- 401 / 403 / 429 / timeout / connection error 발생 시 해당 run의 IEEE 전체 중단 유지 -- 동일 run에서 IEEE 자동 retry는 하지 않음 -- 요청 간 최소 간격 5초 유지 - -### [ ] IEEE API 승인 상태 확인 -- 네트워크 차단 문제와 API 승인 문제는 별개 -- IEEE API key가 최종 승인되었는지 확인 후 활성화 -- 웹사이트 접속 정상화와 API 승인 상태를 각각 확인 +### [x] IEEE API 승인·활성화 및 전체 실행 확인 (2026-08-24) +- IEEE developer application Active 및 `IEEE_API_KEY` 인증 확인. +- `config.yaml`, `config.nas.yaml`에서 `sources.ieee.enabled: true` 적용. +- 단일 query smoke test: IEEE Xplore API HTTP 200, JSON 응답 확인. +- NAS 운영 구성 전체 실행: 8개 IEEE query에서 15편 수집, 인증·rate-limit 오류 없음. +- 요청 간 최소 5초 간격을 유지한다. 주 1회 8 calls/run 운영은 IEEE 한도 10 calls/s, 200 calls/day보다 충분히 낮다. +- 403/429/네트워크 오류는 circuit breaker cooldown으로 후속 호출을 억제한다. --- @@ -272,15 +267,9 @@ Semantic Scholar가 다시 활성화된 뒤 실제 논문에서 `pdf_url`이 정 - 404는 `not_found`로 처리, 파이프라인 중단 없이 계속 진행 - traceback 없이 조용히 처리 -### [ ] Unpaywall 실제 신규 논문 경로 검증 -standalone 테스트는 성공했지만 실제 신규 논문 run에서 다음 로그를 아직 충분히 확인하지 못함: - -```text -Unpaywall candidates: N / M new papers -Unpaywall resolved: status=... pdf=YES ... -``` - -신규 논문 발생 시 확인. +### [x] Unpaywall 실제 신규 논문 경로 검증 (2026-08-24) +- 전체 NAS 실행에서 신규 논문 14편 중 DOI가 있는 10편을 Unpaywall로 조회. +- 10편 모두 `status=closed`, PDF URL 없음으로 정상 처리됐고 파이프라인은 계속 진행됐다. ### [ ] PDF 다운로드 실패 유형 통계/로그 개선 현재 예외처리는 되어 있음. @@ -464,8 +453,6 @@ OA PDF ### [ ] Semantic Scholar 연결/접근 안정화 후 재활성화 (기존 섹션 1 참조) -### [x] IEEE 웹사이트/API 접근 확인 후 재활성화 -- 2026-08-21: 네트워크 차단 해제 확인. API 승인 상태 및 key 교체 후 `IEEE enabled: true`로 전환 가능 ### [ ] provider circuit breaker 지속 운용 현재 circuit breaker 정상 동작 중. 계속 유지. @@ -473,7 +460,7 @@ OA PDF ### [ ] Crossref 간헐적 네트워크 타임아웃 모니터링 간헐적 타임아웃 발생 여부 실행 로그에서 주기적 확인. -### [ ] IEEE 복구 후 source 우선순위 재정의 +### [ ] IEEE 활성화 후 source 우선순위 재정의 장기 목표 예: ```text IEEE Xplore @@ -554,9 +541,9 @@ pyproject.toml 변경 --- -# 현재 운영 권장 설정 +# 현재 운영 설정 -현재 접근 제한 상황을 고려하면 당분간 다음 구성이 안전하다. +IEEE API가 활성화되어 IEEE, Crossref, Google Scholar Alert, Gemini, Unpaywall을 사용하는 현재 NAS 구성을 반영한다. ```yaml app: @@ -567,7 +554,7 @@ app: sources: ieee: - enabled: false # 네트워크 차단 해제됨. API 승인 및 key 교체 확인 후 true로 전환 + enabled: true semantic_scholar: enabled: false @@ -592,7 +579,7 @@ oa: lookback: 14일 ``` -IEEE 네트워크 차단은 해제되었으나 API 승인 상태 및 key 교체 확인 전까지 `enabled: false` 유지. 현재 Semantic Scholar도 비활성화 상태이므로 당분간 Crossref 중심으로 수집되고, DOI가 있는 신규 논문에 대해 Unpaywall OA 검색 및 Gemini 분석이 수행된다. +IEEE API는 Active 상태이며 `enabled: true`로 운영한다. 주 1회 실행에서 IEEE 8개 query를 요청하고, 요청 간 최소 5초 간격을 유지한다. Semantic Scholar는 계속 비활성화 상태이며, Crossref·Google Scholar Alert 수집 결과에 대해 Unpaywall OA 검색 및 Gemini 분석이 수행된다. --- @@ -615,8 +602,7 @@ IEEE 네트워크 차단은 해제되었으나 API 승인 상태 및 key 교체 ## P1 - 소스 - [ ] Semantic Scholar 연결/접근 안정화 후 재활성화 -- [x] IEEE 네트워크 차단 해제 확인 (2026-08-21) -- [ ] IEEE API 승인 상태 확인 및 활성화 +- [x] IEEE API 승인 완료·활성화·전체 NAS 실행 확인 (2026-08-24, 8 queries / 15 papers) - [ ] provider circuit breaker 지속 운용 - [ ] Crossref 간헐적 네트워크 타임아웃 모니터링 @@ -640,7 +626,7 @@ IEEE 네트워크 차단은 해제되었으나 API 승인 상태 및 key 교체 --- -# 완료 항목 (2026-08-15 기준) +# 완료 항목 ## 스케줄러 / 운영 - [x] DSM Task Scheduler 최종 등록 확인 @@ -672,6 +658,12 @@ scheduler-YYYY-MM-DD_HH-MM-SS.log - [x] Groq dependency 정식 반영 - [x] Gemini 실패 시 Groq fallback 동작 검증 완료 +## IEEE API 활성화 (2026-08-24) +- [x] IEEE developer application Active 및 API key 인증 확인 +- [x] `config.yaml`, `config.nas.yaml`에서 IEEE source 활성화 +- [x] IEEE Xplore smoke test HTTP 200 JSON 응답 확인 +- [x] NAS 전체 실행에서 8개 query, 15편 수집 및 rate-limit 오류 없음 확인 + ## IEEE 접근 (2026-08-21) - [x] IEEE 네트워크 차단 해제 확인 (`developer.ieee.org` HTTP 200 OK) -- 2.54.0