draft code for discovery script#15
Conversation
| if repo.get("archived"): | ||
| status = "archived" | ||
| elif repo.get("disabled"): | ||
| status = "not_available" |
There was a problem hiding this comment.
archived와 not_available 상태는 올려주신 코드 내에서 활용되는 부분이 없습니다. 오픈소스 여부를 판단하는 데 사용되는 지표로 해석되는데 활용되지 않는 이유 확인 부탁드려요.
There was a problem hiding this comment.
확인 감사합니다.
말씀해주신 것처럼 archived와 not_available 상태는 verify_github_url()에서 GitHub repository의 상태를 분류하기 위해 추가했지만, decide_recommendation()의 bad_links 판단에는 포함되어 있지 않아 recommendation 결정에는 직접 반영되지 않고 있었습니다.
의도상 archived repository나 disabled repository는 자동으로 available public artifact로 간주하면 안 되므로, bad_links 상태 집합에 archived와 not_available을 추가하는 방식으로 수정했습니다. 또한 해당 경우가 maintainer review 사유에 더 명확히 드러나도록 reason 문구도 함께 보완하겠습니다.
|
@NamsanMan |
report.md의 예시 이미지 첨부하였습니다.
예시 candidate 3개에 대한 판단 결과입니다. 1. AwareVLN: Reasoning with Self-awareness for Vision-Language Navigation
Verified links
2. GesVLA: Gesture-Aware Vision-Language-Action Model Embedded Representations
Verified links
3. Superhuman Safe and Agile Racing through Multi-Agent Reinforcement Learning
Verified links
위 결과에서 확인할 수 있듯이, 스크립트는 arXiv 후보를 수집한 뒤 relevance, recommendation, verified link status를 포함한 maintainer review report를 생성합니다. 실행 시점의 arXiv 최신 논문 및 네트워크/API 응답 상태에 따라 결과 후보와 링크 검증 결과는 달라질 수 있습니다. 하지만 실제로 reject된 "AwareVLN: Reasoning with Self-awareness for Vision-Language Navigation"를 확인해 보면, Physical AI계열의 논문이 맞으나, keyword의 한계로 reject된 것을 확인하였습니다. 따라서 keyword의 보완이 필요합니다. |
|
@NamsanMan |
| if "huggingface.co/datasets/" in url: | ||
| return "hf_dataset" | ||
| if "huggingface.co/" in url: | ||
| return "hf_model" |
There was a problem hiding this comment.
huggingface.co/datasets/ 외에도 아래 같은 url 패턴이 있어서 dataset 외에는 hf_model로 처리하는 게 맞을지는 잘 모르겠네요. 한 번 고민해 봐주시면 좋을 것 같습니다!
- huggingface.co/spaces/org/demo
- huggingface.co/papers/...
There was a problem hiding this comment.
반영했습니다. Hugging Face URL 분류를 hf_dataset, hf_space, paper, hf_model 순서로 세분화하여 spaces나 papers 링크가 hf_model로 잘못 분류되지 않도록 수정했습니다.
|
이번 commit에서는 저번 주 회의 내용을 반영하여 discovery script의 후보 분류, artifact 검증, LLM-assisted review 흐름을 정리했습니다. 핵심 방향은 다음과 같습니다.
주요 변경사항1. Hugging Face URL 분류 세분화기존에는
이를 통해 Hugging Face Spaces나 Papers 링크가 model release처럼 잘못 해석되지 않도록 했습니다. 2. verified artifact availability 분리후보의 link status만 보는 것이 아니라, 실제로 어떤 종류의 verified artifact가 있는지 별도 필드로 정리했습니다.
이렇게 분리한 이유는, project page만 있는 후보가 공식 model/code/dataset release처럼 처리되는 것을 막기 위함입니다. 특히 이번 workflow에서는 verified model link를 가장 강한 positive signal로 보고, project page는 concrete artifact와 분리해서 다룹니다. 3. Rule-based discovery flow 유지
여기까지는 LLM 없이도 동작합니다. python scripts/discover_new.py --days 7 --max-arxiv 10 --llm-review-mode off --output report_rule.md4. Optional LLM reviewer 추가LLM review는 즉, 5. LLM이 수행하는 기능LLM reviewer는 candidate JSON을 입력으로 받아 다음 정보를 판단/생성합니다.
특히
LLM은 최종 결정을 강제하지 않고, maintainer가 판단할 수 있도록 보조 정보를 제공합니다. 6. LLM-assisted flowLLM을 사용하는 경우 전체 흐름은 다음과 같습니다. Example command: python scripts/discover_new.py --days 7 --max-arxiv 10 --max-ambiguous 5 --llm-review-mode ambiguous --llm-review-command "python scripts/llm_reviewer_gemini.py" --output report_gemini.md7. Gemini wrapper
사용 시에는 아래가 필요합니다. pip install -U google-genaiPowerShell 기준: $env:GEMINI_API_KEY="API_KEY"LLM review는 optional이므로, API key가 없거나 LLM을 사용하지 않는 환경에서는 기존 rule-based report만 생성할 수 있습니다. 실행 예시는 아래와 같습니다. Execution examplepython scripts/discover_new.py --days 7 --max-arxiv 10 --max-ambiguous 5 --llm-review-mode ambiguous --llm-review-command "python scripts/llm_reviewer_gemini.py" --output report_gemini.md
# Physical AI Discovery Report
This report is for maintainer review. No GitHub issues were created.
| Recommendation | Count |
|---|---:|
| `needs_review` | 9 |
| `reject` | 1 |
| Review bucket | Count |
|---|---:|
| `normal` | 0 |
| `ambiguous` | 9 |
| `reject` | 1 |
| LLM review | Count |
|---|---:|
| `selected` | 5 |
| `completed` | 5 |
### 1. Beyond Binary: Sim-to-Real Dexterous Manipulation with Physics-Grounded Contact Representation
- Relevance: `high`
- Recommendation: `needs_review`
- Review bucket: `ambiguous`
- Has verified model link: `False`
- Has verified artifact link: `False`
- LLM decision: `needs_review`
- LLM entry type: `model`
- LLM reason: The candidate is relevant to physical AI, but no verified model or artifact link was found.
**LLM entry summary**
This work introduces Center-of-Pressure (CoP), a physics-grounded tactile representation for sim-to-real transfer in dexterous manipulation tasks.
**LLM maintainer summary**
This paper is highly relevant to Physical AI, but no verified model or code link is available, so it remains `needs_review`.
다만, 너무 잦은 실행을 하면 arxiv에서 접속을 차단하거나, llm의 token 제한이 걸리는 것 같습니다.
확인해보시고 review 해 주시면 issue 자동생성도 진행하겠습니다. |
jih0-kim
left a comment
There was a problem hiding this comment.
리뷰 남겨드린 내용 확인 부탁드립니다. 수정 사항 반영해 리퀘스트 주신 점 감사합니다~!
| status = "private_or_gated" if gated else "available" | ||
| if len(files) <= 1: | ||
| status = "placeholder" |
There was a problem hiding this comment.
private 모델은 실제로는 웨이트 파일이 공개되어 있기는 하지만 사이트 상에서 terms에 동의하거나 해야 접근 가능한 경우라 placeholder로 두는 게 고민이 되기는 하네요. 🤔
There was a problem hiding this comment.
gated=True인 경우에는 파일 수와 관계없이 private_or_gated 상태를 유지하고, non-gated repository에 대해서만 파일 수를 기준으로 placeholder를 판정하도록 수정했습니다.
| reasons.append("requires maintainer review") | ||
| return "needs_review", reasons, "normal" |
There was a problem hiding this comment.
relevance의 값이 ["low", "medium", "high"] 중 하나일 것 같습니다. 위에서 if 문을 타고 내려오면 이 두 줄에는 도달할 일이 없을 것 같은데 삭제해도 괜찮으려나요?
There was a problem hiding this comment.
말씀대로 정상 평가 흐름에서는 low, medium, high가 모두 앞에서 처리됩니다. 기존 fallback은 제거하고, 예상하지 못한 relevance 값이 들어오는 경우를 명확히 확인할 수 있도록 ValueError를 발생시키도록 수정했습니다.
| "is_physical_ai": {"type": "boolean"}, | ||
| "is_official": {"type": "boolean"}, |
There was a problem hiding this comment.
이 두 가지 필드는 LLM이 생성하지만, 코드 내에서 이 두 필드를 활용하는 부분이 없습니다. 사용되지 않는 값이라면 삭제해서 LLM 호출 비용을 줄이는 게 좋을 것 같습니다.
There was a problem hiding this comment.
@NamsanMan
이 부분 삭제하신다고 의견 주셨던 것 같은데 확인 한 번 더 부탁드릴게요~!
There was a problem hiding this comment.
사용되지 않는 is_physical_ai, is_official 필드를 Gemini 응답 스키마의 properties와 required에서 모두 제거했습니다.
| f"- Has verified model link: `{availability.get('has_verified_model_link', False)}`", | ||
| f"- Has verified artifact link: `{availability.get('has_verified_artifact_link', False)}`", | ||
| f"- Has verified project page: `{availability.get('has_verified_project_page', False)}`", | ||
| ]) | ||
| if candidate.llm_review: | ||
| lines.append(f"- LLM review status: `{candidate.llm_review.get('status', 'unknown')}`") | ||
| if candidate.llm_review.get("decision"): | ||
| lines.append(f"- LLM decision: `{candidate.llm_review.get('decision')}`") | ||
| if "has_verified_model_link" in candidate.llm_review: | ||
| lines.append(f"- LLM has verified model link: `{candidate.llm_review.get('has_verified_model_link')}`") | ||
| if "has_verified_artifact_link" in candidate.llm_review: | ||
| lines.append(f"- LLM has verified artifact link: `{candidate.llm_review.get('has_verified_artifact_link')}`") |
There was a problem hiding this comment.
룰베이스로도 링크를 검증하고 LLM으로도 검증하는 것 같습니다. 둘 중 어떤 값을 유효값으로 보게 되나요?
There was a problem hiding this comment.
링크 검증값은 rule-based checker의 결과를 source of truth로 두겠습니다. LLM의 has_verified_model_link, has_verified_artifact_link는 ambiguous candidate에 대한 보조 검토 annotation으로만 사용하고, artifact_availability나 rule-based verified link field를 override하지 않도록 유지하겠습니다. 이 점은 report 또는 PR 설명에 명시하겠습니다.
위 내용 댓글로 남겨주신 것 확인했습니다. 혹시 현재 코드상 LLM 평가 결과가 참고용인 게 report에 작성되고 있나요?
There was a problem hiding this comment.
기존 report에서는 rule-based 결과와 LLM 결과가 구분되어 출력되었지만, LLM 결과가 참고용이라는 설명은 명시적이지 않았습니다. 이번 수정에서 report 상단에 rule-based 링크 검증이 source of truth이며 LLM 링크 평가는 참고용 annotation으로만 사용되고 rule-based 결과를 override하지 않는다는 안내를 추가했습니다. 각 출력 필드도 Rule-based와 LLM ... (reference only)로 구분했습니다.
|
@NamsanMan |
|
Keyword-based relevance 분류 기준
Exclusion keyword는 Physical AI keyword보다 먼저 검사됩니다. 따라서 |
|
@NamsanMan 코드 라인에 인라인 코멘트로 남긴 부분에 대해서는, 가능하면 해당 코멘트 스레드 안에서 답변해주실 수 있을까요? |
|
@NamsanMan |
|
discover_new crawler의 링크 처리와 report 표현을 조금 더 명확하게 개선했습니다.
|
|
@NamsanMan (1) 실제 코드 실행 결과 예시 첨부 요청 이번 커밋까지 반영 후 실제 동작에 영향을 주는 변경이 많이 들어갔습니다. 최신 코드 기준으로 실행 결과 예시를 2~3개 다시 첨부해주실 수 있을까요? 이전에 첨부해주셨던 형식처럼 후보 3개 정도에 대한 리포트 결과를 확인할 수 있으면 좋겠습니다. 확인 후에 리포트 포맷과 관련해 사소한 내용 한 가지 더 수정 요청 드릴 수 있을 것 같습니다. 참고 부탁드려요! (2) PR description 업데이트 요청 현재 PR 설명은 초기 커밋 시점에 머물러 있어 실제 코드와 어긋나는 부분이 여러 곳 있습니다. merge 전에 아래 항목들을 업데이트 부탁드립니다. 제가 작성한 항목 외에도 description이 수정되어야 하는 부분이 있다면 확인해 주시고 반영 부탁드려요!
감사합니다. |
|
최신 코드 기준으로 다시 실행한 report 예시를 첨부드립니다. 실행 명령은 아래와 같습니다. 요약 결과는 다음과 같습니다.
항목 | Count
-- | --
needs_review | 19
reject | 1
LLM targeted for optional review | 5
LLM completed | 5
1. Continuous and large-scale: ELEANOR, the soft architected arm inspired by the elephant trunk
Verified links
LLM entry summary This paper introduces ELEANOR, a soft architected arm inspired by the elephant trunk, designed for continuous and large-scale manipulation. The biomimetic design, achieved through 3D printing and tendon-driven actuation, enables elephant-like movements and grasping, demonstrating high adaptability. LLM maintainer summary This entry describes ELEANOR, a soft robotic arm inspired by an elephant's trunk, relevant to manipulation and robotics. While the paper is available, there is no verified model or artifact link provided, hence it is marked for review. 2. Dual Latent Memory in Vision-Language-Action Models for Robotic Manipulation
Verified links
LLM entry summary LaMem-VLA is a latent-memory-native framework for Vision-Language-Action (VLA) models that addresses challenges in long-horizon robotic manipulation tasks. It reconstructs historical experience into latent memory tokens, allowing for fluid interleaving with VLA reasoning and action formation. LLM maintainer summary This paper introduces LaMem-VLA, a novel framework for VLA models relevant to robotic manipulation. While the paper is highly relevant, there is no verified model or code link available, hence it is marked as needs_review. 3. CARLA-GS: Decoupling Representation, Reasoning, and Physics Simulation for Autonomous Driving Corner-Case Synthesis
Verified links
위 예시에서 확인할 수 있듯이, 최신 report는 rule-based 판단 결과와 optional LLM review 결과를 함께 출력합니다. 링크 검증의 기준값은 rule-based checker이며, LLM의 링크 관련 판단은 report에서 reference-only annotation으로만 표시됩니다. 테스트는 아래 명령으로 확인했습니다. 결과는 PR description도 최신 코드 기준으로 업데이트했습니다.
확인 감사합니다! |

관련이슈 #8
Summary
이 PR은 최근 arXiv
cs.RO논문 중 Physical AI 후보를 찾기 위한 maintainer review용 discovery script를 추가하고 개선합니다.scripts/discover_new.py는 최근 arXiv 논문을 가져오고, 후보 링크를 추출한 뒤, 기존data/*.yaml항목과 중복 여부를 확인합니다. 이후 링크 검증, keyword/rule-based relevance 판단, artifact availability 정리, recommendation 생성, markdown/json/jsonl report 출력을 수행합니다.LLM review는 선택 기능입니다.
--llm-review-command로 외부 reviewer command를 호출할 수 있으며, 이번 PR에는 Gemini API를 사용하는 예시 reviewer인scripts/llm_reviewer_gemini.py가 포함되어 있습니다.LLM 결과는 rule-based 판단을 대체하지 않습니다. 링크 검증과 artifact availability의 기준값은 rule-based checker이며, LLM 결과는 maintainer 검토를 돕기 위한 참고용 annotation으로만 사용됩니다.
Current behavior
URL classification
현재 crawler는 링크를 다음 7종으로 분류합니다.
github: GitHub repositoryhf_model: Hugging Face model repositoryhf_dataset: Hugging Face dataset repositoryhf_space: Hugging Face Space/demopaper: arXiv 또는 paper linkpublication: DOI/publication linkproject: 일반 project pageURL 분류는 단순 문자열 포함 여부가 아니라 실제 hostname을 기준으로 수행합니다. 또한 같은 GitHub/arXiv/Hugging Face 링크가 URL 모양 차이 때문에 서로 다른 링크처럼 비교되지 않도록 canonical URL 정규화를 적용했습니다.
Link status
링크 검증 결과는 다음 status를 가질 수 있습니다.
availableplaceholdernot_foundprivate_or_gatedprivate_or_rate_limitedarchivednot_availableunofficialunknownnot_checkedinvalidPhysical AI relevance
Rule-based relevance는 Physical AI keyword와 exclusion keyword를 기준으로 판단합니다.
현재 keyword에는 robotics, embodied AI, manipulation, locomotion, humanoid, quadruped, teleoperation, imitation learning, reinforcement learning, VLA/VLN, navigation, motion/path/task planning, robot policy, simulation/simulator, world model, sim-to-real, action generation/prediction, physical interaction 등 관련 용어가 포함되어 있습니다.
분류 기준은 다음과 같습니다.
low: exclusion keyword가 발견되었거나, Physical AI keyword가 하나도 없는 경우medium: Physical AI keyword가 정확히 1개 발견된 경우high: Physical AI keyword가 2개 이상 발견된 경우Exclusion keyword는 Physical AI keyword보다 먼저 검사됩니다.
Artifact availability
Crawler는 project page와 실제 artifact를 구분합니다.
별도로 추적하는 항목은 다음과 같습니다.
has_verified_model_linkhas_verified_dataset_linkhas_verified_code_linkhas_verified_space_linkhas_verified_artifact_linkhas_verified_project_pageProject page가 있다고 해서 곧바로 model/code/dataset이 공개된 것으로 보지 않습니다. 또한 DOI 링크는
publication으로 분류하며, DOI만으로 verified project/artifact가 있다고 판단하지 않습니다.Usage
Rule-based only:
Gemini-assisted review:
Skip link verification:
주요 옵션:
--days--max-arxiv--format--output--no-verify--max-ambiguous--llm-review-mode--llm-review-command필요하면
$env:GEMINI_MODEL="gemini-2.5-flash-lite"로 사용할 모델을 지정할 수 있습니다.Tests
Result: