引言

今年五月时,少数派播客曾经访谈过一群特别的高中生,和他们聊了聊在即将到来的夏天中的一场「大策划」——办一场全球性的「黑客松」。

Audio

访谈中,主创成员之一 Ryan 告诉我们,AdventureX 从去年底开始立项推进,团队成员初期都以远程形式沟通、策划、规划项目进程。Ryan 出于自身在国外上学以及参与黑客松赛事的相关经历,希望将相关经验带到国内,在国内也举办一场高规格、强影响力的黑客松活动,这便有了 AdventureX 的诞生。团队成员的执行力和创意给我们留下了很深的印象。

七月底,这场 AdventureX 黑客松如期在杭州举行,少数派编辑部中长期报道应用和开发选题的 Waychane 也受邀作为评委参会。我们注意到,参会团队比以往见到的很多计算机赛事更加「年轻化」,在现场也见到了不少高中生团队的有趣作品。从现场的活动规模、日程安排、人员接洽来看,尽管偶尔有一些可能因经验不足导致的小问题,整场活动的举办仍然可谓相当圆满和成功,也足见这群「学生黑客」们的策划能力和创意水平。

在最后的决赛日上,我们也遇到了许多少数派的老朋友们,PasteNow、Grow、谜底时钟等国内优秀 app 的开发者们都聚集在了活动现场,也可见虽是首次举办,AdventureX 在行业内也获得了相当强的号召和影响力。这一点也可从赞助方和活动评委方面可以得见,Rokid、潮汐、几硕、百度等品牌都参与到了其中。

我们也与多支现场队伍进行了简单交流,不少学生都认为这样的活动形式是首次参加,新颖的同时也很考验自身水平和协作能力,都在这场活动中学习到了不少经验和知识。虽然真正变成和创作的时间只有短短三日,也有相当一部分的队伍在决赛日中呈现出了功能完整已经可以上线使用的成品。

活动结束后,我们再次邀请核心团队成员、以及我们在现场发现的一些优秀团队,就一些关心的问题做了访谈。希望这些经验能够启发更多有相同志趣的国内学生和开发者朋友,更好地在国内推广黑客松赛事和相关文化。

访谈核心团队

怎么想到要办这样一场黑客松赛事?

如之前在播客中所说,发起人 Ryan 多次参与过美国大学的黑客松,被国外黑客松文化深深吸引,但并没有在国内发现像国外那样「有趣」的黑客松,并且感到现有活动还没有充分发挥黑客松背后所代表着的创造文化,于是有了自己举办一场理想中活动的想法。

而其他的核心团队成员都或多或少的接触过一些相关的内容,如 Bernard 和 Bryce 都接触过商科、编程相关的内容,李罗罗之前是斯坦福黑客松中最年轻的评委,Kayna 作为 Web 3 Trader 积累了丰富的 Web 3 经验,Marvin 之前在 Moonshot AI 和 FlowGPT 实习。核心团队里的每个人都对技术与创造有着属于自己的理解,所以因为 AdventureX 的活动汇聚到了一起,共同成功举办了这场 AdventureX 2024。

赛事筹备过程中遇到的最大困难是什么,你们是如何克服的?

因为是初次办这样的活动,整个 AdventureX 中其实没有所谓「最大」的困难——每个细节都可能会成为团队很大的挑战,例如拉取赞助、场地、后勤、设计、开发、甚至是赛场上的突发情况等等。

其中一个比较大的临时问题就是酒店系统。因为我们创新的使用了非固定房间的酒店分配方式,来最大化利用房间,所以我们的团队自己写了一套酒店管理系统,可以自动分配房间,安排打扫。但是因为前期没有测试过几百个人同时使用的情况,然后再第一天晚上就崩溃了,还出现了把男女生分到一间房的 bug。于是,我们开发团队就现场改代码,后来干脆直接修改数据库,连原本不是开发团队的成员因为这件事,也「被迫」学会了如何操作数据库。

但也正因如此,AdventureX 团队中每个人都是让这场活动能够成功举办的「英雄」。例如 Ryan 和罗罗因为使用新技术栈,熬夜写技术文档,团队中的于长野同学连续十几个小时修改代码中的问题,Lyon 一直在跟进解决合作方提出的各种问题和要求。有了他们,这一届 AdventureX 才能克服种种困难成功举办。

这场活动的效果符合你们的预期吗?

我们对这场活动的期待是,能够让更多原本无法体验到纯正「黑客松」的同学们,借助这次机会体验纯正的「黑客松文化」,爱上「创造」这件事;进而,可以影响到身边的其他人,传播创造文化。

从这个角度,AdventureX 2024 的效果超出了我们的预期。参赛者都非常有爱,而且超级有「脑洞」;尤其让我们自豪的,是因为拿到了预算,我们有能力为一些经济困难的同学提供了全程的资金支持。后来我们团队去了其他城市逛逛,在与开发者、创业者交流的时候,不时的会听到和 AdventureX 有关的声音,还有一些团队拿到了投资。

参赛团队中有很多选择了 AI 和 Web3 主题,你们怎么看待这一现象?评奖时如何平衡契合热点和独创之间的关系?

我们看重的不是主题是否热门,也不是 AI 或 Web 3 等单纯的技术,而更多是看团队的创造力、产品的创意度。令我们影响比较深的创意中,有项目可以通过 AI 和你的健康数据为你的时间「估值」,还有的能让你像搜索谷歌一样,用自然语言或者图片搜索想要的 NFT。当然还有一些搞怪项目,比方说让人沉浸式扮演面包机。只要选手们利用了这些技术,实现了能让人眼前一亮的「有趣想法」,或能够切实改变生活的产品,我们认为就是好的。

第一次举办这样大型的黑客松活动,你们有哪些觉得满意和不满意的地方?

最大的满意莫过于来自成功举办了这场活动,看到了来自于五湖四海的选手们,借助 AdventureX 2024 的平台和合作方们的先进技术,创造出了「最有趣」的产品。我们发现,选手们借助这次机会体验到了「创造」带给自己的乐趣,并且愿意持续投入到自己领域内的创造当中,并且带动其他人一起进行创新。

遗憾当然也有,在活动五天中也确实出现了很多疏漏,比如在时间卡点上面做的不是特别好。会后,我们也看到一些嘉宾和参赛选手发文复盘,也衷心感谢各位指出的问题,下一届我们一定会吸收改进。

如果有其他学生群体想要举办类似活动,你们会提出什么建议?

其实这个世界上 90% 的事情都没有想象中的难,只要去做,路就会出现。如果大家想要举办类似的活动,最主要的可能是不停的向自己发问:我到底为什么举办这个活动?这不仅是让你完善活动的设计,更是当你被人嘲笑,经受挫折的时候,进行反击的武器。我们也会在10月左右发布一个 Handbook,手把手教大家举办类似的活动。

人人都能用的网页开发工具——访谈 Guii 创作团队

Guii 也是会场中绝对的明星产品,这款产品旨在帮助前端开发者用 AI 自动调整网页界面元素和布局,并且可以将相关改动直接映射在代码上。现场开发者们都给出了非常积极的评价,许多行业内的开发者和设计师都争相前往了解和观看 Guii 的演示。

请用几句简短的话介绍你们的项目。

Guii.AI 旨在轻松融入现有前端项目,通过自然语言指令即可轻松定制和优化代码。我们注意到,开发者如今在编写代码时越来越多地使用 AI,然而在 Web 前端开发中,常规的 AI 工具并不理想。因此,我们通过直接在项目中安装 AI 前端开发工具,并结合 AI 对项目结构和代码的感知,提供针对前端场景优化的工具,更智能深入地帮助开发者编写代码。

项目的创意来源是什么?

Guii.AI 的灵感有点说来话长,要从成员 Neko 和 Rizumu 某天的一次闲聊开始——

Neko: 感觉生成式 UI 很有意思,像是 Apple Intelligence, Devv 和 Perplexity

Rizumu: 来做一个生成前端代码的平台吧,只要让 LLM 生成代码,然后用前端 Playground 技术渲染出来就可以啦。

然后我做了一个 Web 版的前端代码生成网站 Demo,有点像 v0.dev。做出这个之后我在 Demo Inn SH 上把它分享给了一些朋友,他们觉得很酷。

在这之后的某天,我在麦当劳吃饱喝足,拿出电脑打算继续完善一下这个项目。看着项目中使用的 Nuxt DevTools 工具,突然就有了一个想法:为什么不把生成前端页面的能力,直接通过类似 Nuxt DevTools 的形式嵌入到实际项目中呢?这要比每次要用的时候单独去打开一个网页方便多了。还能让 AI 直接读取项目中的代码、配置和依赖等等。

总之,Guii.AI 的灵感来自上述的 v0.dev 和 Nuxt DevTools,但不是简单模仿,而是通过直接在项目中提供 AI 前端开发者工具的形式,并结合 AI 对项目技术栈和已有代码的感知,提供针对前端场景优化的工具。

参与本次赛事的整体感想和感受如何?

是一次非同寻常的体验。甚至可以说我们获得了比刚开始预期多得多的认可、鼓励还有新朋友。可以这么说,在开始的那天我其实是不知道做什么的,脑子里只有一个之前尚未成型的想法。正好当时所邀请来组队的大家也都是掌握前端开发能力并且感兴趣的伙伴,就这么机缘巧合地把想法实现了,顺路认识了很多新的朋友。

我很高兴把一个人的想法变成大家努力的目标。这种推动大家汇聚的力量,或许不是像在公司上班的那种「合作」,而更多是一种共同创造的乐趣吧。这种协作精神让我看到了无限的可能。

是否对未来的开发和商业化有所规划?

我一直向往的模式是服务 indie hacker、立足开源社区。商业化上,可能前期会先尝试服务付费的模式,但是长期的目标是希望能更好的融入开源社区——这方面有类似 Dify.AI 和 Affine 那样很成功的公司。说了那么多,这也是我第一次做商业化尝试,未来会成功会失败,会走什么样的路线都还是一场未知的奇妙冒险。

你们自己最常用的 AI 工具和使用场景都有哪些?

除了自己的 Guii.AI,还有 GitHub Copilot、Devv.AI、Perplexity 和 Poe。当然,基本上主流的 AI 工具都会尝试使用。至于场景,从用户调研、解答疑惑,到帮忙生成冗长和重复的代码、解决和发现 bug、code review,再到搜索资料和日常生活学习,各种领域都会覆盖。对了,Guii 的首页就是使用 Guii 协助开发的。

Guii 的目标受众是哪些人?目前有通过 Guii 开发并实际上线的网站吗?

前期专注开发者,稳定后扩展到虽然不会写代码但有想法的任何人。我们已经开始逐步开放测试资格,开发团队的成员们也在自己负责的项目中逐渐开始尝试使用 Guii,之后会有更多的网站在开发中使用上 Guii.AI。

如何应对 AI 生成代码必然遇到的不准确和幻觉问题?

现在的 LLM 是不完善的,我们不指望能替代开发者和设计师,而是希望寻求开发者的帮助,让 Guii 和开发者一起进步,一起改进,这样才能最大效益地发挥 Guii.AI 的力量。换句话说,是期望让开发者和 Guii.AI 一起相互纠正错误,一起修正互相没有考虑周全的代码实现。

我们已经在使用 RAG 技术和结构化输出的技术来改进输出和对齐问题,现在还计划在未来把更多的组件库能力纳入到 Guii.AI 支持的范畴中。随着组件库数据、代码数据和继承经验的积累,我们期望在未来能用更好的数据搭配 RAG 技术,佐以专门微调的 Guii.AI 模型和模型架构改进这些问题。时间会告诉我们答案。

可以预告的是,在我们即将上线的功能中会有一个「拆分组件」的能力,也会允许用户或者产品和设计师把与 Guii.AI 一起微调和协同好的组件上传到云端持久化到数据库。加上上面提及的 RAG 技术,我们可以利用已经积累的数据,让 Guii.AI 利用现成的组件构建,而非从零做起。这能加速开发进程,也有助于解决和规避幻觉造成的返工、难用的问题。

融入 iPhone 交互的全能 AI 助理——访谈 Dali 创作团队

Dali 是本届活动中另一款受到核心团队好评的作品。这款产品能够利用本地 AI 技术,识别各种个人图片、文档等材料,为用户提供个人化的各类建议。同时,接入了 iPhone 辅助功能中的「轻点背后」手势以及快捷指令 app 配合执行,使用体验非常原生。

请用几句简短的话介绍你们的项目。

Dali 是你的个人 AI 助理,它专为管理和回应你生活中的各种信息而设计。你可以通过简单的交互(如 macOS 快捷键/iOS 的快捷指令+轻敲背部等)高效地投喂数据和询问信息,帮助你轻松处理日常琐事,优化信息工作流。

项目的创意来源是什么?

之前在社交媒体看到有人用 AI 零知识通过了 Amazon 的面试,我们从中获取了「从屏幕获取信息」的灵感。另外也是基于我们自己的真实需求。在生活中,我们经常会在不同场景下需要从屏幕获取信息,例如高铁座位号、酒店房间号、日程安排以及社交媒体上的有用内容。这些信息常常需要再次查找。我们希望解决这一痛点,无需频繁切换应用,快速获取重要信息。

参与本次赛事的整体感想和感受如何?

总体而言超出了我们的预期。主办方很真诚,资源配置到位,能把这一类群体聚集起来的比赛不多。

我们认为 AdventureX 树立了黑客松活动的新标准。它不仅仅是一场比赛,更是一个激发灵感、碰撞思想的平台。从四星级酒店到 24 小时技术支持,每一个细节都彰显了主办方的用心。这次经历让我们看到了更广阔的世界,也让我们对未来充满期待。AdventureX 不仅是一次比赛,更是一次改变人生轨迹的机遇。

是否对未来的开发和商业化有所规划?

有。截至采访,我们最新的测试版已经实现了完整的商业化功能,即类似于 Apple Music 的订阅制使用策略。不久之后会在App Store上架。

你们自己最常用的 AI 工具和使用场景都有哪些?

我们最常用的工具是 Claude 和 ChatGPT。主要就是负责代码的编写、优化,以及技术问题的答疑、解决。此外,产品相关的文案也会使用这些工具优化。(不过回答采访问题没有使用 AI 润色,古法手作。)

市面上目前有不少结合 OCR 和 AI 的产品,你们认为 Dali 的区分度和竞争力体现在哪些方面?

OCR 在我们这里只是输入的一个手段。我们认为现在人们多数信息来自于屏幕,所以借助 OCR (准确来说,是 AI 的视觉能力)来捕捉信息,目的是减少用户的操作成本。

我们的 OCR 不仅是提取页面内的文字那么简单,而是结合文本之间的位置关系、非文字内容进行综合识别。例如:我上传一张电影票截图,里面并不会包含「电影票」字样。而我们的大模型 OCR 则会识别这是一个什么物品,并且将相关信息与这张电影票创建联系,还会告诉我可以通过下方二维码入场。

我们了解到一些类似产品会用不同的方式去展示不同的信息。例如,如果检测到输入信息是一个日程,那么会用特定的卡片去展示。这样固然有好处,但是我们认为这样做有「把手机内置应用拼装到一起并赋予 AI 能力」的味道。

我们最大的不同就是选择了「聊天」作为主要互动方式。在 Dali 里面所有录入的信息都统一展示。 事实上,我们认为 Dali 更像一个智能秘书,最符合人类直觉的操作就是聊天,体现了我们的特色以 及产品定位。

我们理解 Dali 的功能实现涉及多个组件的协作,能否聊聊技术选型过程中的问题和思考过程?

协作具体体现在和系统的集成,即不仅仅是一个运行在系统里的 UI。

在 iOS 端,要与系统「集成」,目前主流的方案就是小组件、Live Activity 和快捷指令。我们选择了快捷指令。这是因为,结合 iPhone 特有的辅助功能,让唤起快捷指令更加高效:我们通过手指轻点手机背面两下或三下即可唤起不同的快捷指令,进而唤起 Dali 不同的功能。当然,这存在用户学习成本的问题。

macOS 上,快捷键无疑是最好的方式。用户只需要按下快捷键,即可在一瞬间完成对应的功能。后期我们会考虑添加状态栏图标。

另外,由于双端用了同一套代码库,所以我们最大的问题就是抹平两端差异,让两端都拥有类似的集成体验。我们也将利用 iCloud 进行数据双端同步,达成无缝的数据流通体验。