AI News HubLIVE
站内改写2 分钟阅读

利用Strava数据和健身房照片,用编程代理生成训练回顾

作者通过结合Strava的锻炼数据和健身房白板照片,使用Claude Code编程代理自动提取照片中的训练信息,生成半年回顾信息图。整个流程包括数据获取、图片处理、JSON描述生成和信息图创建,展示了AI在个人健身数据整合中的实用价值。

来源Hacker News AI作者: akashtndn

今年到目前为止,我的锻炼和跑步计划进展顺利,因此我希望制作一份漂亮的半年回顾信息图。这只是一个简单的想法,但实现过程中却涉及到了有趣的技术整合。本文将分享如何借助Strava和编程代理快速达成目标,并非教程,而是一个实践案例。

最终的信息图效果令人满意,但有趣的是,仅靠Strava的数字本身无法完整讲述这个故事。

数据、健身房照片与处理管道

我使用Samsung Fit 3追踪锻炼,并通过Strava手机应用记录跑步。健身追踪器会定期与Strava同步数据,因此Strava拥有明确的元数据:活动类型(锻炼/跑步)、距离、时长、海拔和日期等。

然而,关键点在于:我的大多数健身房训练记录都附带了照片——这些照片是我从健身房白板上拍摄的当日训练计划,包含了实际的训练结构:动作、重点区域,以及力量日、灵活性日或混合训练的区别。Strava只知道我进行了锻炼,但无法区分具体内容。因此,项目的一部分变成了一个小型的图像提取和解析管道。核心思想是将Strava的结构化数据与我随意附加到帖子中的图像上下文结合起来。

获取Strava活动与照片 → 本地缓存 → 代理读取并处理健身房白板照片 → JSON描述 → HTML信息图 → PNG海报

上述管道由几个简单的Python脚本组成。如果照片已下载,相关脚本会跳过;如果图像已处理,则不会重复处理;如果提取的训练内容有误,我可以直接删除对应的JSON文件并重新生成。

使用编程代理处理视觉任务

Claude Code的图像读取能力充当了便捷的视觉层。一个脚本下载Strava照片,然后打印出需要关联JSON的图像列表。对于每张相关的健身房白板照片,代理会编写一个描述训练内容的小型JSON文件,例如:

{ "type": "workout", "exercises": [ { "name": "Goblet squat", "sets": 4, "reps": "8-10", "weight": "24kg", "muscle_groups": ["legs"] } ], "notes": "optional" }

对于个人项目而言,这种代理介入的工作流程快速且简单。一旦JSON描述生成,该图像即被视为已处理。这使得视觉步骤可恢复且易于修正。

一点分类技巧带来巨大收益

我的Strava活动标签并不完全一致。一些力量训练被标记为“weight training”,而另一些则是通用的“workouts”。灵活性训练有时也显示为“workouts”。因此,代码结合了Strava活动类型、活动标题以及提取的照片数据,来判断某次训练是力量、灵活性、跑步、游泳、瑜伽还是其他。这足以让最终海报感觉准确,而无需将问题复杂化。

尝试Strava MCP

我短暂尝试了最近发布的Strava MCP服务器,看它能否替代现有脚本。如果只需要活动元数据,它可能有用,但无法获取照片,因此不适合这个项目。

总结

这个例子很好地展示了AI如何帮助我在更短时间内完成原本可能需要大量时间的任务。你可以在[analyticalmonk/strava-reporting](https://github.com/analyticalmonk/strava-reporting)找到代码并进行扩展。最简单的上手方式可能是克隆仓库,让编程代理阅读README,更新配置,然后让它帮你围绕你自己的Strava数据生成报告。

对我来说,输出是一张信息图。对你而言,它可能是一份年度跑步回顾、骑行总结、赛前准备日志,或者只是一个更好看的个人健身回顾。

我接下来可能会使用本地模型设置一个个性化的健身代理。同时,如果你基于这个项目进行开发,或者有健身/健康相关的代理工作流程,我期待听到你的分享!

感谢Ankita审阅本文草稿。

利用Strava数据和健身房照片,用编程代理生成训练回顾 | AI News Hub