[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83238":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":9,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":27,"discoverSource":28},83238,"album-assetizer","SeanWong17\u002Falbum-assetizer","SeanWong17","个人相册语义资产生成器：扫描照片 → 视觉大模型标注 → 结构化数据 | Semantic asset generator for personal photo albums",null,"Python",179,11,1,2,0,10,86,51,91.84,"MIT License",false,"main",true,[],"2026-06-12 04:01:40","\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FREADME_en.md\">English\u003C\u002Fa> | \u003Cspan>简体中文\u003C\u002Fspan>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n# Album Assetizer\n\n**个人相册语义资产生成器 · 把照片变成可检索的结构化数据**\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fruanyf\u002Fweekly\u002Fblob\u002Fmaster\u002Fdocs\u002Fissue-399.md\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F科技爱好者周刊-第399期推荐-ff69b4?style=flat-square&logo=rss\" alt=\"Tech Enthusiast Weekly\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg?style=flat-square\" alt=\"License\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.python.org\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11%2B-blue.svg?style=flat-square&logo=python&logoColor=white\" alt=\"Python 3.11+\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSeanWong17\u002Falbum-assetizer\u002Fpulls\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg?style=flat-square\" alt=\"PRs Welcome\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cimg src=\"docs\u002Fscreenshots\u002FDemo.png\" alt=\"效果预览\" width=\"80%\">\n\n\u003C\u002Fdiv>\n\n---\n\n## 📋 项目简介\n\n手机里几万张照片，想找某张图只能靠肉眼翻。系统相册的搜索能力有限，数据还锁在各家生态里。\n\n**Album Assetizer** 扫描本地相册，调用视觉大模型为每张图生成中文结构化描述（场景、标签、主体、活动、OCR 等），同时提取 EXIF 拍摄时间和 GPS 坐标，最终输出标准格式（JSONL \u002F CSV \u002F SQLite），可直接接入任何下游应用。\n\n```\n照片 → 扫描 → EXIF 提取 → 视觉大模型标注 → 结构化数据资产\n```\n\n> **👀 想看看生成的数据能做什么？**\n>\n> 👉👉👉 配套项目 [**Album Explorer**](https:\u002F\u002Fgithub.com\u002FSeanWong17\u002Falbum-explorer) — 基于本项目数据构建的相册语义浏览器，提供全文搜索、地图浏览、智能聚类、时间线、相似推荐等完整体验。\n\n---\n\n## ✨ 核心特性\n\n| 模块 | 功能描述 |\n|------|----------|\n| **格式支持** | JPG \u002F PNG \u002F HEIC \u002F DNG \u002F CR3 \u002F LIVP（Apple Live Photo） |\n| **图片预处理** | 自动缩放、EXIF 方向校正、RGBA→RGB、RAW 解码、体积控制 |\n| **元数据提取** | EXIF 拍摄时间、GPS 经纬度，支持时区解析 |\n| **大模型标注** | OpenAI 兼容 API，支持 Structured Output（json_schema + 自动降级） |\n| **并发与速率** | 多线程并发 + RPM 限速 + 稳定后自动扩容 + 连续失败自动缩容 |\n| **容错机制** | 指数退避重试、错误分类（可重试 vs 永久失败）、崩溃恢复、优雅停机 |\n| **二轮精修** | 首轮视觉生成 + 可选的纯文本模型精修，提升标注一致性 |\n| **数据导出** | SQLite 持久化，一键导出 JSONL \u002F CSV \u002F 失败列表 |\n| **质量审阅** | 内置 HTML 审阅脚本，支持分页、筛选、键盘导航 |\n\n---\n\n## 🚀 快速开始\n\n### 1. 安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FSeanWong17\u002Falbum-assetizer.git\ncd album-assetizer\npip install -e .\n```\n\n### 2. 配置 API\n\n```bash\n# 在相册根目录下创建工作目录并配置\nmkdir -p \u002Fpath\u002Fto\u002Falbum\u002F.album-assetizer\ncp examples\u002Fsample.env \u002Fpath\u002Fto\u002Falbum\u002F.album-assetizer\u002F.env\n```\n\n编辑 `.env` 文件，填入你的 API Key 和 Base URL（支持任何 OpenAI 兼容接口）：\n\n```env\nALBUM_ASSETIZER_API_KEY=your_api_key\nALBUM_ASSETIZER_BASE_URL=https:\u002F\u002Fyour-provider.com\u002Fv1\nALBUM_ASSETIZER_MODEL=your-vision-model\n```\n\n### 3. 验证连通性\n\n```bash\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum smoke-text       # 文本接口探测\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum smoke-image --path some_photo.jpg  # 单图探测\n```\n\n### 4. 运行完整流程\n\n```bash\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum scan            # 扫描素材入库\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum sync-metadata   # 提取 EXIF 时间\u002FGPS\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum run             # 调用大模型批量标注\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum export          # 导出 JSONL\u002FCSV\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum stats           # 查看处理统计\n```\n\n---\n\n## 📊 输出字段\n\n每张图片生成一条结构化记录：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `caption_short` | string | 一句话简短描述 |\n| `caption_long` | string | 详细描述，适合检索和回顾 |\n| `scene` | string | 场景分类（户外、室内、街道等） |\n| `tags` | list | 语义标签（6-18 个，去重） |\n| `main_subjects` | list | 画面主体（人物、建筑、食物等） |\n| `activities` | list | 正在发生的活动 |\n| `style_labels` | list | 风格标签（截图、黑白、HDR 等） |\n| `quality_flags` | list | 质量标记（模糊、过曝等） |\n| `safety_flags` | list | 安全标记 |\n| `contains_text` | bool | 是否包含文字 |\n| `ocr_text` | string | OCR 识别文字（≤300 字） |\n| `people_count` | int | 人数（-1 表示无法判断） |\n| `confidence` | float | 置信度 (0-1) |\n| `embedding_text` | string | 拼接全字段的 embedding 文本 |\n| `taken_at` | string | EXIF 拍摄时间（ISO 8601） |\n| `gps_lat` \u002F `gps_lng` | float | EXIF GPS 经纬度 |\n\n---\n\n## 🔧 进阶用法\n\n### 审阅脚本\n\n```bash\npython3 scripts\u002Frender_review_html.py \\\n  --jsonl \u002Fpath\u002Fto\u002Fresults.jsonl \\\n  --image-root \u002Fpath\u002Fto\u002Falbum_root \\\n  --output review.html\n```\n\n生成静态 HTML 审阅页，支持分页、关键词筛选、键盘导航，用于 Prompt 评估和质量抽检。\n\n### 二轮文本精修\n\n```bash\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum \\\n  --text-refine-model your-text-model \\\n  refine-done\n```\n\n对已完成的首轮标注结果进行规范化精修（去重、修正文案、压缩冗余标签），提升标注一致性。\n\n### 自动扩缩容\n\n```bash\nalbum-assetizer --root \u002Fpath\u002Fto\u002Falbum \\\n  --auto-scale \\\n  --scale-up-workers 6 --scale-up-rpm 120 \\\n  run\n```\n\n稳定处理一段时间后自动提升并发和速率，连续失败时自动降回保守配置。\n\n---\n\n## 🏗️ 项目结构\n\n```text\nalbum-assetizer\u002F\n├── src\u002Falbum_assetizer\u002F\n│   ├── cli.py              # CLI 入口与参数解析\n│   ├── config.py           # 运行时配置定义\n│   ├── scanner.py          # 相册文件扫描\n│   ├── metadata.py         # EXIF\u002FGPS 元数据提取\n│   ├── image_prep.py       # 图片预处理（缩放、转码、压缩）\n│   ├── api.py              # API 调用与响应解析\n│   ├── worker.py           # 工作线程（重试、错误分类）\n│   ├── processor.py        # 并发编排（扩缩容、优雅停机）\n│   ├── rate_limiter.py     # 线程安全速率限制器\n│   ├── db.py               # SQLite 数据层\n│   ├── exporters.py        # JSONL\u002FCSV 导出\n│   ├── prompts.py          # LLM 提示词\n│   ├── schemas.py          # 输出字段与 JSON Schema\n│   ├── models.py           # 数据类与异常定义\n│   └── runtime.py          # 工具函数\n├── scripts\u002F\n│   ├── render_review_html.py        # 审阅页生成\n│   └── export_explorer_snapshot.py  # Explorer 快照导出\n├── tests\u002F\n├── examples\u002Fsample.env\n├── pyproject.toml\n├── ROADMAP.md\n└── CONTRIBUTING.md\n```\n\n---\n\n## 📐 项目边界\n\n本项目只做：**生成并沉淀高质量的相册语义资产**。\n\n项目内置了一个轻量审阅脚本（即首页截图所示），可以直观地浏览图片与生成的结构化描述，用于验证标注质量。更完整的消费场景（检索、聚类、推荐、时间线、地图可视化等）由配套项目 [Album Explorer](https:\u002F\u002Fgithub.com\u002FSeanWong17\u002Falbum-explorer) 提供。\n\n---\n\n## 🗺️ 路线图\n\n详见 [ROADMAP.md](ROADMAP.md)。\n\n---\n\n## 🤝 参与贡献\n\n欢迎提交 Issue 或 Pull Request。详见 [CONTRIBUTING.md](CONTRIBUTING.md)。\n\n---\n\n## 📄 License\n\n[MIT License](LICENSE) © 2026 SeanWong17\n\n---\n\n## 社区\n\n本项目在 [LINUX DO](https:\u002F\u002Flinux.do) 社区发布与推广，感谢社区佬友们的支持与反馈。[查看介绍帖](https:\u002F\u002Flinux.do\u002Ft\u002Ftopic\u002F2275103)\n\n---\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#SeanWong17\u002Falbum-assetizer&Date\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=SeanWong17\u002Falbum-assetizer&type=Date&theme=dark\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=SeanWong17\u002Falbum-assetizer&type=Date\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=SeanWong17\u002Falbum-assetizer&type=Date\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n---\n\n\u003Cdiv align=\"center\">\n  \u003Cbr>\n  Made with ❤️ by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSeanWong17\">SeanWong17\u003C\u002Fa>\n\u003C\u002Fdiv>","2026-06-11 04:10:31","CREATED_QUERY"]