feat: add scripts for fetching arXiv papers and generating structured reviews
Sync to site1 / sync (push) Has been cancelled

- Implemented `fetch_crowdroom_papers.py` to scrape arXiv papers related to CrowdRoom with customizable query topics and output options.
- Created `gen_review_from_json.py` to render structured markdown reviews from search results JSON, including statistics and insights on papers and GitHub repositories.
- Developed `search_info.py` for thematic searches on arXiv and GitHub, supporting HTTP/SOCKS5 proxies and structured output.
This commit is contained in:
gaojie
2026-05-21 03:35:05 +08:00
parent 101d3cbb4e
commit abf2322450
13 changed files with 92 additions and 9 deletions
View File
View File
+18
View File
@@ -0,0 +1,18 @@
# Research Data
本目录存放论文调研的原始数据文件和缓存。
## 文件说明
| 文件 | 说明 |
|------|------|
| `search_results.json` | arXiv + GitHub 历史检索缓存(ZED2i 相关,含 2026-04/05 最新论文) |
| `crowdroom_papers_raw.json` | CrowdRoom 专属 arXiv 抓取结果(当前因 429 限速为空) |
| `lyra2_paper.txt` | Lyra 2.0 论文全文(arXiv:2604.13036NVIDIA2026-04 |
| `lyra2_paper.pdf` | Lyra 2.0 论文 PDF 原文 |
## 注意事项
- `search_results.json` 是重要的历史缓存,请勿随意删除
- 数据文件不纳入 git 版本控制(见 `.gitignore`
- 重新抓取请使用 `../tools/` 目录下的脚本
Binary file not shown.
+28 -2
View File
@@ -11,7 +11,7 @@ description: "研究论文调研综述目录,涵盖世界模型、空间感知
本索引汇总了 **WorldModel 项目**下所有论文调研综述文档。项目围绕「可探索生成式 3D 世界」、「空间感知与记忆」、「物理世界理解」、「传感器数据管道」以及「具体子项目(CrowdRoom / PRISM)」五大方向展开研究,旨在为 PRISM 2.0、CrowdRoom MVP 等工程系统提供学术文献支撑与技术选型依据。
> **更新时间**2026-05-20 | **文档数量**9 篇 | **覆盖论文**~215 篇
> **更新时间**2026-05-20 | **文档数量**8 篇 | **覆盖论文**~215 篇
---
@@ -92,6 +92,32 @@ description: "研究论文调研综述目录,涵盖世界模型、空间感知
---
## 工具与数据
### 脚本工具(`tools/`
| 脚本 | 用途 |
|------|------|
| [`tools/search_info.py`](tools/search_info.py) | arXiv + GitHub 主题化检索,输出 `data/search_results.json` |
| [`tools/fetch_crowdroom_papers.py`](tools/fetch_crowdroom_papers.py) | CrowdRoom 专属 arXiv 抓取,输出 `data/crowdroom_papers_raw.json` |
| [`tools/gen_review_from_json.py`](tools/gen_review_from_json.py) | 将检索缓存渲染为 ZED2i 综述 Markdown |
| [`tools/_build_crowdroom_review.py`](tools/_build_crowdroom_review.py) | 将抓取数据构建为 CrowdRoom 综述 Markdown |
详见 [`tools/README.md`](tools/README.md)。
### 原始数据(`data/`
| 文件 | 说明 |
|------|------|
| [`data/search_results.json`](data/search_results.json) | arXiv + GitHub 历史检索缓存(ZED2i 相关,含 2026-04/05 最新论文) |
| [`data/crowdroom_papers_raw.json`](data/crowdroom_papers_raw.json) | CrowdRoom 专属抓取结果(当前因 429 限速为空) |
| [`data/lyra2_paper.txt`](data/lyra2_paper.txt) | Lyra 2.0 论文全文(arXiv:2604.13036 |
| [`data/lyra2_paper.pdf`](data/lyra2_paper.pdf) | Lyra 2.0 论文 PDF |
详见 [`data/README.md`](data/README.md)。
---
## 文档统计
| 主题分类 | 文档数 | 覆盖论文数(估计) |
@@ -101,7 +127,7 @@ description: "研究论文调研综述目录,涵盖世界模型、空间感知
| 物理理解 | 1 | ~20 |
| 传感器与数据管道 | 2 | ~135 |
| 项目相关(CrowdRoom | 1 | 0API 限流,骨架版) |
| **合计** | **9** | **~260** |
| **合计** | **8** | **~260** |
---
+39
View File
@@ -0,0 +1,39 @@
# Research Tools
本目录存放论文调研相关的自动化脚本工具。
## 脚本说明
| 脚本 | 用途 |
|------|------|
| `search_info.py` | arXiv + GitHub 主题化检索工具,输出 `../data/search_results.json` |
| `fetch_crowdroom_papers.py` | CrowdRoom 专属 arXiv 论文抓取,输出 `../data/crowdroom_papers_raw.json` |
| `gen_review_from_json.py` | 将 `search_results.json` 渲染为 ZED2i 综述 Markdown |
| `_build_crowdroom_review.py` | 将抓取数据构建为 CrowdRoom 综述 Markdown |
## 使用方法
```bash
# 1. 抓取 ZED2i 相关论文
cd /path/to/worldmodel
HTTPS_PROXY=http://127.0.0.1:6984 python3 research/tools/search_info.py \
--proxy http://127.0.0.1:6984 \
--max-results 15 --delay 5.0 \
--out research/data/search_results.json
# 2. 生成 ZED2i 综述
python3 research/tools/gen_review_from_json.py \
--in research/data/search_results.json \
--out research/spatial-memory/zed2i_arxiv_live_review.md
# 3. 抓取 CrowdRoom 相关论文
python3 research/tools/fetch_crowdroom_papers.py \
--max-results 20 --delay 8 --max-days 365 \
--out research/data/crowdroom_papers_raw.json
# 4. 生成 CrowdRoom 综述
python3 research/tools/_build_crowdroom_review.py \
--fresh research/data/crowdroom_papers_raw.json \
--legacy research/data/search_results.json \
--out research/crowdroom/crowdroom_related_papers_2026.md
```
@@ -347,9 +347,9 @@ def render_paper_entry(p, sc, idx):
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--fresh", default="research/crowdroom_papers_raw.json")
ap.add_argument("--legacy", default="research/search_results.json")
ap.add_argument("--out", default="research/crowdroom_related_papers_2026.md")
ap.add_argument("--fresh", default="research/data/crowdroom_papers_raw.json")
ap.add_argument("--legacy", default="research/data/search_results.json")
ap.add_argument("--out", default="research/crowdroom/crowdroom_related_papers_2026.md")
ap.add_argument("--threshold", type=float, default=4.0)
ap.add_argument("--max-per-topic", type=int, default=8)
ap.add_argument("--include-curated", action="store_true", default=True,
@@ -180,7 +180,7 @@ def parse_args() -> argparse.Namespace:
ap.add_argument("--max-results", type=int, default=20)
ap.add_argument("--delay", type=float, default=5.0, help="主题间延迟秒数,arXiv ≥3s")
ap.add_argument("--topics", nargs="+", default=None)
ap.add_argument("--out", default="research/crowdroom_papers_raw.json")
ap.add_argument("--out", default="research/data/crowdroom_papers_raw.json")
ap.add_argument("--max-days", type=int, default=365, help="仅保留近 N 天提交的论文;0 不过滤")
ap.add_argument("--sort", choices=["submittedDate", "relevance"], default="submittedDate")
return ap.parse_args()
@@ -147,8 +147,8 @@ def render_github_topic(topic: str, repos: list[dict]) -> list[str]:
def main() -> int:
ap = argparse.ArgumentParser()
ap.add_argument("--in", dest="inp", default="research/search_results.json")
ap.add_argument("--out", default="research/zed2i_arxiv_live_review.md")
ap.add_argument("--in", dest="inp", default="research/data/search_results.json")
ap.add_argument("--out", default="research/spatial-memory/zed2i_arxiv_live_review.md")
args = ap.parse_args()
with open(args.inp, "r", encoding="utf-8") as f:
@@ -258,7 +258,7 @@ def main() -> int:
parser = argparse.ArgumentParser(description="arXiv + GitHub 主题化检索")
parser.add_argument("--proxy", default=None, help="代理 URL,如 http://127.0.0.1:6984")
parser.add_argument("--max-results", type=int, default=15, help="每个主题最多论文数")
parser.add_argument("--out", default="research/search_results.json", help="输出 JSON 路径")
parser.add_argument("--out", default="research/data/search_results.json", help="输出 JSON 路径")
parser.add_argument(
"--topics",
nargs="+",