跳到主要内容

我为什么用 goose 做了一个混乱的情绪检测应用

· 阅读需 5 分钟
·
Rizel Scarlett
Staff Developer Advocate

博客封面

开发者值得玩得开心。曾经有一段时间,互联网感觉很神奇。我记得去图书馆只是为了在 The Doll Palace 上创建一个角色。在家里,我会花几个小时用 WordArt 改字体。但随着我长大,这个行业也长大了。我们离开了跑马灯和闪闪发光的光标。长大的我开始用一和零,为保险、银行和医疗公司构建可靠的系统。这值得骄傲,但要证明「只是因为好玩」而去做某件事,变得更难了。

所以我唤起内心的小孩,用 goose 构建了一个会对用户情绪做出反应的 UI。

有时我想自己写每一行代码。另一些时候,我只想从看到想法在几分钟内从愿景变成执行中获得一点多巴胺。其他开发者可能也有这种感觉,这也是 AI 智能体和 vibe coding 变得如此流行的部分原因。它们重新点燃了那种好玩的试验感,激励我们的头脑更有创意地解决问题。

在 Tim O’Reilly 关于 AI 辅助编程的一篇文章中,Kent Beck 和 Nikola Balic 分享了他们的热情:

「这是我玩得最开心的一次。」—— Beck

「它带回了编程的乐趣。」—— Balic

玩代码、试验技术,激励我们的头脑更有创意地解决问题。

为了庆祝快乐编程的回归,我开始了一个直播系列,叫 The Great Goose Off。两个人比赛提示 goose——一个开源 AI 智能体——去创造尽可能傻、尽可能混乱的应用。

参与者面对这样的挑战:

  • 一个你登不进去的登录表单
  • 很傲娇的错误信息
  • 会从光标旁边跑开的按钮

我的策略​

主持 The Great Goose Off 让我对 goose 有了新的看法。它擅长写代码,但更擅长装傻。这激励我构建一个计算机视觉应用,不仅检测情绪,还对它做出反应。我把 goose 当作创意伙伴,来塑造界面会如何行为。

让智能体领路​

我观察到,(The Great Goose Off 的)非工程师参与者常常创造出最有想象力的应用。他们给 goose 空间去解释提示,而不过早收窄范围。这带来了感觉新鲜、不可预测的输出。我采取了类似的方法。我给出高层指令,让智能体探索如何实现它们。

选择一个性能好的模型​

正如我的经理 Angie Jones 所说,Claude Sonnet 4「生来就是为了写代码」。我选择它,是因为它帮助 goose 在东西坏掉时快速转向。它也非常擅长记录代码并预判下一步。当 face-api CDN 加载失败时,这派上了用场。goose 立刻改成在本地下载模型。

提示链​

我没有试图用一条巨大的提示构建一切,比如「创建一个面部检测应用,使用摄像头输入检测情绪,并用颜色变化、屏幕震动和旋转元素让 UI 混乱地反应」,而是把复杂任务拆成更小的、顺序的子任务:

  • 第一条提示:「用 JavaScript 创建一个摄像头应用」
  • 第二条提示:「使用 face-api.js 启用面部检测模式」
  • 第三条提示:「启用情绪检测模式」
  • 第四条提示:「我们能给应用加一个『混乱模式』开关吗?启用时,当从摄像头检测到情绪,UI 应该以傻气的方式反应。一些基于情绪变化的混乱反应好玩想法:
    • 改变背景颜色
    • 随机重新定位或旋转按钮
    • 添加屏幕震动或 CSS 滤镜(如 invert 或 hue-rotate)
    • 触发表情覆盖」

版本控制​

每一步之后,我把更改提交到 GitHub,以便在需要时轻松回滚。这种迭代方法让我能逐步测试功能,并细化应用的行为。

结果​

最后,goose 和我构建了一个令人愉快的混乱应用,界面对我的面部表情做出反应。例如:

  • 如果我做出生气的脸,屏幕变红并开始震动
  • 如果我微笑,界面上出现多种彩色色调
  • 如果我看起来厌恶,整个布局开始旋转

玩得开心也没关系​

有时候不为实用而构建,也没关系。事实上,我们的行业需要更多令人愉快的混乱。我相信保持好奇和乐趣,会让我们对所做的事保持热情。

试一试​

试验愉快!