← 返回信息流

dev.to #ai短讯

Walking Challenge AI:一个开源的户外挑战应用

dev.to作者:Tamim Ts1开源AI评分:50/100

这是 Hacktoberfest 开源 AI 挑战赛第一周的参赛作品。该应用是一个小型 Web 程序,将普通散步游戏化。用户可设定步行时长(10-60分钟)、地点(公园、城市等)和难度,系统随即生成现实世界中的观察挑战任务,如寻找不同种类的树木或观察天空。

这是 Hacktoberfest 开源 AI 挑战赛第一周“Touch Grass”的参赛作品。

我做了什么

Walking Challenge AI 是一个小型 Web 应用,它将普通的散步变成了一场游戏。

你可以选择三个要素:步行时长(10 到 60 分钟)、地点(公园、城市、大学校园或社区)以及难度(简单、中等或困难)。应用随后会给你一份现实世界的挑战清单,比如“找到 3 种不同类型的树”或“花 2 分钟单纯地观察天空”。

屏幕交互只是体验中最短的一部分。你只需在手机上操作约 20 秒,然后把它放进口袋走到户外。当你回来时,勾选已完成的项目,“Walk Complete!”(散步完成!)界面便会闭环整个流程。

我为像我这样整天对着屏幕、需要一个小而有趣的理由走出户外的学生构建了它。

演示

在线演示:https://walking-challenge-ai.vercel.app/

首次运行时会下载模型(约 1.2 GB),请使用 Chrome 或 Edge 浏览器并等待一分钟。之后模型会被浏览器缓存。

流程很简单:选择时间、地点和难度,获取挑战,去散步,勾选完成项,结束。

First image
First image
second image
second image

代码

Tamimshaikh / walking-challenge-ai

一个让你走出户外的开源 AI。选择你的步行时间、地点和难度,获取一份现实世界的挑战清单。屏幕交互只是体验中最短的一部分。

为 Hacktoberfest 开源 AI 挑战赛第一周“Touch Grass”打造。

在线演示:https://walking-challenge-ai.vercel.app

工作原理

  1. 选择步行时间(10 到 60 分钟)、地点(公园、城市、大学校园、社区)和难度。
  2. 一个开放权重的模型(Qwen2.5 Instruct)通过 Transformers.js 在浏览器中运行并生成你的挑战列表。
  3. 如果模型输出不可用,应用将回退到内置的挑战列表。
  4. 去散步,勾选挑战,完成。

本地运行

npm install
npm run dev

在 Chrome 或 Edge 中打开 https://walking-challenge-ai.vercel.app。首次运行时会下载模型(约 1.2 GB),随后会被浏览器缓存。

技术栈

React, Vite, Tailwind CSS, Transformers.js (WebGPU 或 WASM)。

开源

模型在 src/ai.js 中仅占一行。你可以将其替换为……

我是如何构建它的

  • 前端:React, Vite 和 Tailwind CSS
  • AI:一个开放权重的 Qwen2.5 Instruct 模型,通过 Transformers.js 直接在浏览器中运行(可用时使用 WebGPU,否则使用 WASM)
  • 安全网:手写编写的挑战库,确保应用不会崩溃

应用根据步行时间、地点和难度构建提示词,并将其发送给在浏览器本地运行的模型。然后它会验证输出结果。如果模型返回的内容不可用,应用将回退到内置挑战,这样用户总能获得可用的列表。

我的学习心得:我第一次尝试使用的是 0.5B 参数量的模型,但它只是把我的提示词原样回显出来,而没有遵循指令。当要求小模型输出结构化内容时,其表现往往不可预测。这就是为什么应用会在显示前检查模型的输出,以及为什么我转向了更大的开放模型。提高小模型输出的可靠性是我接下来想要改进的方向。

为什么开放创新很重要?

  • 本地运行,无需服务器:一次性下载模型后,所有操作都在浏览器中完成。没有 API 密钥,没有后端,也没有按请求计费的成本。
  • 隐私保护:用户的步行时间、地点和活动数据永远不会离开他们的设备。对于一款关注人们物理位置的应用来说,这非常重要。
  • 可替换模型:模型在代码中仅占一行。任何人都可以将其替换为更小、更大或经过微调的模型,例如针对特定城市或校园进行调优的模型。
  • 免费运行和分叉:学生可以免费托管此应用并根据自身环境进行调整,这对于封闭 API 来说很难做到。

开放模型使得在没有预算的情况下构建这个项目成为可能,而这正是那种能让人走出户外的项目类型。

译文已达到本站中文翻译的字数上限,剩余内容请查看原文。

阅读原文