Seed-2.1-pro 升级实测:我开发了一个拍照记单词的 iOS App

作者:AGI Hunt 发布:2026-09-17 11:30 收录:2026-09-18 15:31 1 次阅读 约 3739 字
摘要:全程使用 Seed-2.1-pro 0915 从零做出拍照记单词的 iOS App 并提交上架
推荐理由:本文涵盖「Claude Code」、「多模态」、「API」等多个主题,重点关注 Claude Code。

先上视频,再介绍背景:

最近在刻意练习直接去看英文原文而不用翻译,包括各种帖子、博客和论文,所以也会更加留意去记一些单词。甚至平时走在路上看到各种东西,都会下意识地想知道英文怎么说。

然后我就想,是不是有什么好用的工具能帮我做这件事?

于是我让 Claude Code 帮我调研了一下,它就给我找到了今年苹果设计奖 Delight and Fun 类别的得主 Capwords:

Capwords
Capwords

一个拍照识别物体、提取英文单词的 App。创始人的灵感来源很有意思,据说是他女儿总指着东西问「这个英文怎么说」。

我当时就觉得,这个思路也太符合人性了……但 Capwords 一次只能识别一个物体,要是能拍一张照片,把画面里所有东西的英文都标出来呢?再加上拖进单词本、朗读例句这些功能,岂不是更实用。

那就自己做一个。

选模型

01

但做这种拍照识词的 App,核心难点在于多模态模型的识别精度,特别是 bbox(物体框选坐标)的准确度。框歪了,贴纸就贴不到物体上面,整个产品就废了。

那用哪个模型呢?

Claude 的 API 太贵了先直接忽略,多模态能力比较强、且我账户里还有余额的模型大概有这么几个:

DeepSeek 最新的 v4.1-flash、MiniMax M3(主要是充了钱但有半年没用了……)、GPT-5.5 和 GPT-5.4-mini(里面还有一堆 token 和每天赠送的额度),以及字节的 Seed-2.1-pro(Seed-Evolving 刚刚放出了 0915 最新升级版本,而我火山方舟里还有上次一冲动充的 2000 块还没用到一半……)。

于是 Claude Code 这边自己定了一个 bench,用同一套 prompt 和图片流水线,把几个模型都拉出来跑了一遍。12 张 COCO 标注图,有 ground truth 可以算 IoU。

bench
bench

结果有点出乎意料,又符合预期。

多模型 bbox 精度对比
多模型 bbox 精度对比

Seed-2.1-pro (Seed-Evolving 的 0915 最新升级版)的框选精度是所有模型中最高的。 Precision 82%、recall 70%、F1 0.75。

出乎意料的是其他几个模型,GPT-5.5 贵了好几倍,结果 F1 只有 0.34,框整体偏移缩小。MiniMax M3 更离谱,F1 0.23,框基本是乱飞的……

棒球场景对比
棒球场景对比

符合预期的是,Seed 的模型一直以来,多模态理解能力都可以说是最强一档了。生成有 Seedance,理解有 Seed-2.1-pro,字节果然是在多模态上,生成和理解都很擅长。

虽然价格方面 DeepSeek v4.1-flash 要便宜一些,但 Seed 还是准太多了。对于一个拍照识物的 App 来说,质量更为重要,为了每天省几分钱而牺牲体验,就没什么必要了。

而本次正好赶上了 Seed-2.1-pro 的 0915 升级版本,官方公告里说模型在 Coding、Agent 和多模态方向都有不小幅度的提升。

所以我就想,既然账户里还有这么多钱,索性就用它从 0 到 1,完整把这个 App 做出来试试。

方案规划

02

我给 Claude Code 接入了 Seed-2.1-pro 模型(用的 cc-switch),然后把需求丢给了它:

参考 Capwords 这个 iOS 应用,开发一款新的 iOS 应用,支持拍照识别照片中的物体,然后点击查看对应的单词,还能插入单词本。先梳理实现方案,等我确认再开发。需要保证图片识别、翻译、发音等效果,需要支持使用大模型来实现。大模型使用火山的 doubao-seed-evolving,语音使用 seed-tts-2.0

需求和方案规划
需求和方案规划

它先去调研了 Capwords 的官网,然后搜了火山方舟的视觉理解和 TTS 的 API 文档,查了本机的 Xcode 版本和 Python 环境。

最后输出了一份很完整的实现方案,包括产品流程、5 个页面的设计、和整体架构。

而方案阶段最让我喜欢的,是它对风险的处理方式。

风险点提前暴露
风险点提前暴露

它把图片识别标为了「最大风险点,先做验证」,指出官方 Grounding 文档的示例模型是 seed-2 系列,evolving 的 bbox 输出质量「需要第一步用真实 key 实测」。

还给了两层兜底方案:换 Responses API 的 image_process 工具;如果模型只给单词不给坐标,就退化为底部词片展示。

验证先行

03

确认方案之后,它并没有直接开始写代码,而是先写了验证脚本。

验证脚本准备
验证脚本准备

这里还有个很注意安全的细节,它主动提醒我,API Key 只进服务端的 .env 文件,不要直接发给它,.env 也已经被加进了 .gitignore。

然后便开始进行验证。

验证识图效果
验证识图效果

两张测试照片,第一张识别出了 8 个物体,bbox 全部精准框住目标。

但它发现默认开了 thinking 模式,一次请求要 43 秒,太慢了。关掉 thinking 之后,延迟降到了 7-14 秒。最终确认的生产配置:高精度 + 关闭 thinking + 服务端重试。

验证 TTS
验证 TTS

TTS 的验证上,第一次请求返回了 HTTP 200 但解析不出音频,它抓了原始响应才发现是语音 ID 搞错了,线上文档里的 moon 系列不属于 seed-tts-2.0,真正的 2.0 英语语音 ID 在 uranus_bigtts 系列下面。

修好之后,首包延迟 0.34 秒,整句 0.6 秒。

不得不说,火山的 key 还是很好用很方便。

第一版

04

验证通过后就正式开始写 iOS 了:

开始开发
开始开发

写完第一版之后,它在模拟器里截图验证了一遍:

截图自我验证
截图自我验证

由于 seed 模型在 Claude Code 里因桌面 App 对非 Anthropc 模型的限制,它用不了内置的 iOS 模拟器,于是它就改用了 simctl 加 cliclick 自己截图和点按来测试,坐标 y 轴偏移的问题也是它自己校准出来的。

iOS 测试
iOS 测试

第一版做完,功能齐全,连应用图标都生成好了。

第一版完成
第一版完成

贴纸手账风

05

功能有了,但 UI 有点不够有吸引力,于是我要求它:

参考 Capwords 的设计灵感,吸引年轻人。

UI 优化
UI 优化

它先去 App Store 抓了 Capwords 的截图,分析出了它的设计语言:奶油纸底 + 颗粒质感 + 白色边框贴纸 + 圆体字 + 彩色渐变卡片。

然后定义了一套「贴纸手账」的设计系统。奶油纸底色 #FAF4E8 配 Canvas 绘制的纸纹颗粒,8 色贴纸调色板,全局圆角字体。

UI 优化结果
UI 优化结果

识别结果页改成了「光点导览」,默认只亮光点,逐个点亮弹出贴纸。单词卡则做成了 Capwords 同款的多色渐变卡片。

它还在模拟器上自己走查了一遍,顺便发现并修复了个 bug:后端返回 502 时,App 会把英文错误信息直接展示给用户,它改成了返回空数组加友好提示。

单词卡动画

06

我贴了一张手机上的截图给它,说单词卡加载时太丑了,内容挤在一个小框里,背景是透明黑。

优化动画
优化动画

它看完截图就定位到了问题:loading 状态的 VStack 没有撑满空间,paperBacked() 只给内容区贴了纸纹,其余部分透出了黑底。

动画效果
动画效果

修完之后的效果有点儿出乎意料……

它做了一个「卡片印刷」动画,单词先大字印在顶部的彩色渐变区,下方的释义和例句用微光扫描线逐行「打印」出来,周围还有亮片和彩点在飘。

API 返回后,骨架卡淡出,真卡带一个轻微旋转弹入。

很细节的动画,非常能理解我要什么(其实我也没怎么表达好),然后做出来的比我想的还好。

上线部署

07

本地测通之后,我给了它一台云服务器,让它把后端部署上去。

部署
部署

于是就 Docker + Caddy + Let's Encrypt 一条龙给我全干完了。

部署完成
部署完成

我提醒了一下 Cloudflare 的配置文件路径,它便把 DNS 解析搞定了。

线上 Docker
线上 Docker
线上服务目录
线上服务目录

Seedream 生图

08

基本搞好后,我发现首页有点太简陋了,我便让它想想办法,弄好看一点。

Seedream 生图
Seedream 生图

它用 Seedream 4.0 批量生成了几张候选图:

批量候选
批量候选

并从 5 张候选里选了一张暖色 3D 风格的平铺构图,有苹果、猫、咖啡杯、铅笔、书……留白也恰到好处,跟贴纸手账的风格也算是很搭了。

过程中,它还发现了一个细节错误是贴纸上写着 plant,但对应位置画的是猫,于是改成了 cat。

长按抠图

09

我继续问它,是否能做到和 Capwords 一样,长按把物体抠出来,成本高吗?

长按抠图
长按抠图

它给出的结论是:不用多花一分钱的 API 费用

原因是 iOS 17 原生的 Vision 框架有 VNGenerateForegroundInstanceMaskRequest,跟系统相册长按抠图用的是同一个 API。完全端上离线运行,零服务器开销。

并且自信的声称:

Capwords 十有八九也是这么做的。

上架审核

10

测试阶段,它为了查看拖拽交互的效果,发现 cliclick 模拟长按拖动时事件会丢,于是自己写了一个基于 CGEvent 的小工具来发送真实的拖拽事件。

自测工具
自测工具

OpenWords 整个项目,从方案到上线,模型跑了 2798 轮工具调用,写了个完整的 iOS App + Python 后端 + Docker 部署 + HTTPS 证书 + 线上服务。

提交审核
提交审核

APP 已经提交苹果 App Store,目前仍在审核中。

审核中
审核中

这里再放一遍最终的使用视频:

Obsidian 主题

11

本来文章写到这里就可以结束了,实测下下 Seed-2.1-pro 在方案规划、风险识别、多模态识别、前端设计、后端部署等日常综合开发工作全链路上的表现,还是非常能打了。

所以看在它的 Coding 和出众的多模态理解能力,我想可以再仔细把玩测试一番。所以我又继续跑了几个小 case,下面简单展示一下。

我从 Notion 转到了 Obsidian 之后,试遍了社区里的主题,愣是没找到一个能让满意的……比如脑图插件也非常离谱,有个叫 MarkMind 的,开源版停更都三年了,转手就卖 $16 的闭源版本,项目里有 602 个 issue 还开着……

那就让 Seed-2.1-pro 给我搓一个。

可行性分析
可行性分析

它派子 Agent 去盘了目标主题 Tolaria 的代码库,做了可行性报告,还主动提了 clean-room 纪律(Tolaria 是 AGPL-3.0),然后就开始动手了。

浅色效果
浅色效果
深色效果
深色效果

亮色暖白底配赭石灰,暗色是不刺眼的暖炭色,视觉上很舒服。之后我便让它继续打磨细节,它的验证方式是给 Obsidian 开了个 remote-debugging 端口,用 CDP 截图和读 computed style 逐项进行核对。

Seed-2.1-pro 同时派了两个子 Agent 调研技术方案,第一版支持了 Markdown 双向转换、10 色自动分配、贝塞尔曲线连线、明暗双主题:

脑图效果
脑图效果

后面又加了拖拽换父、复制粘贴、竞品调研(派子 Agent 并行盘 Xmind 和社区插件),以及我给他贴了张简约风截图,它一轮就还原出了新主题:

功能对照
功能对照

整个项目,跑了 1975 轮工具调用,5 个子 Agent 并行参与。最终结果展示:

我也会继续开源出来到 AGI Hunt 的组织下,无收费版。

抢滩登陆

12

这是我的保留测试项,之前 K3、GLM-5.3、Fable 5、Sol、Hy4 preview 都跑过同样的题。

Seed-2.1-pro 做出来的版本有四把二战武器,波次制进攻,枪口火光和后坐力动画都有。血量系统做得比较细腻:军绿(健康)→ 琥珀(<62%)→ 红色脉动 + 心跳 + 红屏暗角(<32%),脱战 5 秒自动回血。

整体完成度和 K3、GLM-5.3 在同一档,都比 Fable 5 和 Sol 要好。不过瞄准操控上还可以再打磨,我就一把出来的结果。

复刻 3D 交互网站

13

接下来,我让 Seed-2.1-pro 从零对 aicodingdictionary.com 网站进行复刻:

aicodingdictionary
aicodingdictionary

这个网站有 Three.js 做的 3D 力导向图、69 个概念节点、流动粒子、搜索和详情面板,技术复杂度不低。

完成效果
完成效果

复刻出来的效果非常接近原站,3D 节点图、配色切换、阻尼弹簧物理这些细节都还原了。

截图复刻 CRM

14

随手截一张 Sales CRM 仪表盘的图(信息密度很高的企业级 SaaS 界面),让它直接从截图生成代码:

暗色主题、彩色标签、迷你柱状图、勾选框交互,全都进行了还原,跟原图几乎一致。前端:我又死了?

写在最后

15

五个 case 跑下来,Seed-2.1-pro 0915 这次升级,我感受最为明显的有几个点:

多模态理解能力出众。

OpenWords 的物体识别点位精度、通过原 APP 的截图就能理解设计意图并还原、AI Coding Dictionary 的 3D 场景逆向、CRM 截图到代码,这些重度依赖视觉理解的 case,它的表现都非常之稳,是否全球第一我不敢说,但第一梯队问题应该没什么疑问。

主要官方公告里也有点低调了,也没给什么 benchmark,就只说:又进化了……

长程任务更加可靠。

Obsidian 项目我虽然写的简单,但它整整跑了两天时间。。。近两千轮的工具调用,中间涉及主题开发、脑图插件、竞品调研、UI 修复,上下文多次压缩后还是稳稳接上没有出现偏差。

OpenWords 的 APP 则更长,共 2798 轮,从方案到部署上线到后续迭代,全面且稳。我看了下其中的一个 session 文件,发现它快要 200 兆了……

session 大小
session 大小

Doubao-Seed-2.1-pro 更新至 0915 版本,API 已全量上线到火山方舟。另外,Seed-Evolving 模型一直有在高频迭代,也已同步更新到了同一版本,模型 ID 是 doubao-seed-evolving,无需切换 API 接入节点即可

如果你有比较需要多模态理解的 Coding 或 Agent 项目,一定要试试。

◇ ◆ ◇

转载声明:本文转载自原发布平台 (作者:AGI Hunt), 原文标题《Seed-2.1-pro 升级实测:我开发了一个拍照记单词的 iOS App》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。