Skip to content

TzJ2006/gadget

Repository files navigation

Gadgets

日常开发中积累的 Python 实用工具集,涵盖 AI 日报生成、论文发现、性能测试和博客自动化。

每个目录是一个独立工具,可以单独使用。共享基础设施统一放在 common/ 包中(通过 pip install -e . 安装),提供 LLM 调用、JSON 解析、磁盘缓存、原子写入等通用能力。所有工具通过 MCP Server 暴露给 Claude Code。

工具一览

目录 功能 主要技术
summarize/ AI 对话日报/月报总结(多设备两阶段架构) Claude/OpenAI API, ccusage, @ccusage/codex, matplotlib
research/ 论文发现 + 学者分析 + 引用图谱 arXiv/bioRxiv/PubMed, Semantic Scholar, LLM
test/ CPU/GPU 跨平台性能测试 PyTorch, NumPy, Plotly
website/ Hugo 博客站点(增量媒体压缩 + 自动构建发布) Hugo, pngquant, HandBrakeCLI
common/ 共享基础设施包(LLM、缓存、IO、Hugo 部署) pip install -e .
sync.py 集中式 rclone 同步(push/pull/status) rclone

各工具详情

Summarize — AI 对话日报/月报

读取 Claude Code / Codex / ChatGPT / 通用 JSON 对话记录,调 LLM API 生成结构化日报。支持多设备导出 → 合并 → 部署到 Hugo 博客的完整工作流。通过 ccusage 和 @ccusage/codex 自动统计 Claude Code / Codex token 用量和费用。月报跨天聚合,生成 token 用量趋势图。

python summarize/daily_summary.py export                             # 导出所有未导出日期
python summarize/daily_summary.py export --date 2026-02-13           # 导出指定日期
python summarize/daily_summary.py merge --sync --date 2026-02-13     # 从远端同步 log 后合并
python summarize/daily_summary.py merge --sync-all                   # 批量同步所有日期并逐天处理
python summarize/daily_summary.py deploy                             # 批量部署报告到 Hugo

python summarize/monthly_summary.py generate --month 2026-02         # 生成月报
python summarize/monthly_summary.py generate --month 2026-02 --deploy # 生成月报 + 部署

详见 summarize/README.mdtutorial

Research — 论文发现与学者分析

三合一研究工具:

  • Research Scout:搜索 arXiv/bioRxiv/PubMed 论文,三阶段 LLM 评估(快速筛选 → 深度分析 → 引用影响),生成每日研究报告并部署到 Hugo。支持会议论文搜索和作者搜索。
  • Researcher Profiler:学者画像分析。从 ArXiv + Semantic Scholar 获取论文和引用数据,LLM 生成研究轨迹分析,计算 tier 评分,通过主页提取 + 共著模式自动发现学生关系。支持同名消歧(--affiliation)和反向查找(--paper/--author-id)。
  • Citation Graph:基于 Semantic Scholar API 的前向/后向引用分析 + LLM 影响力解读。
python research/research_scout.py report --project my-project        # 完整流水线:搜索 → 评估 → 报告
python research/research_scout.py search --conference "CVPR 2025"    # 会议论文搜索
python research/research_scout.py profile "Sergey Levine"            # 学者分析
python research/research_scout.py profile "Name" --affiliation "MIT" # 同名消歧
python research/research_scout.py citations 2301.12597               # 引用图谱
python research/research_scout.py deploy                             # 部署报告到 Hugo

详见 research/TUTORIAL.md

Test — 性能测试套件

跨平台 CPU/GPU 性能基准测试,支持 NVIDIA (CUDA)、Apple Silicon (MPS)、Intel (XPU) 等多种后端,覆盖 FP64/FP32/FP16/BF16 等精度。生成交互式 HTML 排行榜报告。CSV 采用 append 模式,天然支持多硬件积累排行。

cd test
python -m benchmark.cli                # 运行全部测试
python -m benchmark.cli --cpu-only     # 仅 CPU
python -m benchmark.cli --gpu-only     # 仅 GPU
python -m benchmark.cli --report       # 运行测试并生成 HTML 报告
python -m benchmark.cli --report --deploy  # 生成报告并发布到 Hugo /benchmark/

Website — Hugo 博客

Hugo 静态博客站点,内置增量图片/视频压缩流水线。自动生成内容先写到 outputs/site/update.sh / update.ps1 会先把 staging 自动链接或镜像到 website/,再执行 Markdown 重写、媒体压缩、Hugo 构建和 GitHub Pages 推送。使用 .last_build 时间戳实现增量处理。

cd website && bash update.sh    # 增量压缩 + Hugo 构建 + 推送部署

MCP Server

所有工具通过 MCP Server (mcp_server.py) 暴露给 Claude Code,支持在对话中直接调用。

pip install -e .       # 安装 gadget-mcp 命令
gadget-mcp             # 启动 stdio MCP 服务器(通常由 Claude Code 自动调用)

配置文件 .mcp.json 已包含在项目中。提供 9 个工具:日报列表/导出/合并、项目列表/搜索/报告、硬件信息/跑分/报告生成。

输出目录

所有生成的输出统一放在 outputs/ 目录下(已 gitignore):

outputs/
├── logs/         # 中间产物(export log、运行日志)
├── reports/      # 最终报告(Markdown、JSON、HTML)
├── cache/        # LLM 缓存、搜索缓存
├── data/         # 结构化数据(CSV、JSON profiles)
└── site/         # Hugo staging:auto-generated content/static true source

环境要求

  • Python 3.10+(推荐 conda 环境 AI
  • 各工具的具体依赖见对应目录的 requirements.txt
  • MCP Server + common 包:pip install -e ".[all]" 安装全部依赖

注意事项

  • GPU 基准测试会自动检测 CUDA / Apple MPS / Intel XPU
  • tokens/ 目录存放 API 密钥,已 gitignore
  • 所有生成文件输出到 outputs/ 目录,已 gitignore
  • 三个 LLM 后端统一通过 --api 参数切换:claude_cli(默认)、anthropicopenai
  • 跨设备数据同步可使用 python sync.py push/pull(需配置 rclone)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors