用AI开发者空间做一个间隔重复闪卡工具:算法简化与二次发布避坑记录

举报
yd_221565968 发表于 2026/11/04 00:14:16 2026/11/04
【摘要】 在华为云AI开发者空间体验版中用AI Shell生成纯前端间隔重复闪卡工具,记录调度算法从FSRS到SM-2简化版的取舍,以及第二次使用发布Skill上架作品时如何提前规避凭证泄露、提交污染、隧道被删等问题。

一、需求:把碎片时间用在复习上

背单词和记知识点最怕“学了就忘”。间隔重复(Spaced Repetition)的思路是:快忘的时候再复习一次,记得越牢,下次间隔越长。Anki 是这类工具的代表,但对只想在手机浏览器里随手刷几张卡的场景来说偏重。于是我在华为云 AI 开发者空间体验版里,用 AI Shell 做了一个纯前端的小工具“碎片背卡”。

二、需求描述

  • 卡片翻转:点击正面查看答案;
  • 三档评分:记住 / 模糊 / 忘记,自动安排下次复习时间;
  • 卡片组增删改,支持 JSON 导入导出;
  • 统计今日待复习数量、连续打卡天数、累计复习次数;
  • 数据存 localStorage,深浅色自适应,适配手机;
  • 纯前端单页,不依赖后端和第三方 CDN;只在项目目录内读写文件,不调用任何云资源。

三、调度算法:从 FSRS 到“够用就好”

需求里写的是“FSRS 简化版”。完整的 FSRS 需要记忆稳定性、难度、可提取性等参数和训练过的权重,对一个单页小工具来说太重。AI 在思考过程中权衡后,落地成了接近 SM-2 的简化方案,每张卡只维护两个量:间隔 interval(天)和难度系数 ease(初始 2.5)。

  • 记住:ease 增加 0.1(上限 3.5),interval = interval × ease;
  • 模糊:ease 减少 0.15(下限 1.3),interval = interval × 1.3;
  • 忘记:ease 减少 0.2(下限 1.3),interval 重置为 1,明天再复习。

首次复习后间隔 1 天,第二次 3 天,之后按难度系数倍增。评分按钮上会实时预测“下次复习时间”,点之前就知道这次选择的后果。对个人刷卡来说,这个精度已经足够;如果以后要做大规模卡片库,再换成真正的 FSRS 参数模型也不迟。

四、生成结果

AI 生成了 index.html、style.css、app.js 和中文 README.md 四个文件。卡片翻转用 CSS 3D rotateY 实现,也支持空格 / 回车键翻转;深浅色跟随系统 prefers-color-scheme,并可手动切换记忆。首次打开会自动创建一个“大学英语高频词”示例卡片组,可以直接体验。最后用 python3 -m http.server 5500 启动预览,curl 确认三个资源都返回 HTTP 200。

五、二次发布:这次提前把坑填上

这是我第二次用展览馆的发布 Skill(huawei-cloud-publish-work-to-gallery)上架作品。上次踩过几个坑,这次直接写进了给 AI 的指令里:

  • 先建 .gitignore 再 git init。发布 Skill 会安装到项目下的 .agents/ 目录并生成 skills-lock.json。上次是提交之后才发现,只好用 orphan 分支重建历史。这次先写好 .gitignore,首个提交就只有 5 个项目文件。
  • 凭证不落进对话记录。上次智能体直接 cat 了 GitCode 的 auth.toml,token 明文出现在对话里。这次明确要求只能通过脚本从文件读取凭证。它用 Python 的 tomllib 解析文件,只打印字段结构和用户名,token 本身从未输出。
  • 复用已有的 IAM 委托。首次发布会创建 SELF_VERIFY 自委托用于生成短期 STS 凭证,这次说明“已存在、直接复用”,没有新建任何 IAM 资源。
  • 保留体验隧道。上次发布成功后 Skill 顺手删除了 DevBridge 隧道,作品页的在线体验随即失效。这次要求保留隧道。
  • 人工关卡不让 AI 代劳。GitCode OAuth 授权链接 300 秒有效,必须本人在浏览器打开;选择投稿活动时让它列出选项后停下等我确认,并按活动 ID 映射核对名称,避免序号对错。

六、几点体会

  • 需求里写“某某算法简化版”时,AI 会自己做取舍,最好让它在结果里说明实际用的是什么,避免名不副实。
  • 同一个流程第二次走,最大的价值是把第一次的教训变成指令里的硬约束。约束写得越具体,AI 越不容易“好心办坏事”。
  • 体验版容器有时长限制、到期释放,代码要及时推送到 Git 仓库;在线体验地址依赖容器,长期展示最好部署到固定环境。

项目代码已开源在 GitCode:hid86006757/study-flashcard;作品已上架开发者作品展览馆,作品 ID 007858b922c00000。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。