写代码是我的事,种花是我这个人本身。这两件事在我一天里各占一个角落,很多年都没真正碰过面。直到一个开源挑战赛给了我把它们塞进同一个房间的理由。

先说清楚一件事:我不需要App来教我照顾自己的植物。我有几百个花盆,哪盆喜欢埋香蕉皮、哪盆更适应泡过的茶叶渣或放久的酪乳、哪盆得用我的饭盒堆肥法而不是直接把厨余埋进去,我心里都有数。我看叶子、看新芽、看花苞,这些判断来自和它们待在一起的时间。

打开网易新闻 查看精彩图片

但这也让我开始想另一个问题:一个工具,能不能帮上那些还在学着"看见"这些细节的人?

从一朵万寿菊开始的疑问

9月30日,我把一株万寿菊从阴凉但明亮的角落搬到了开阔的阳光下。那个角落原本是用来替它挡大雨的。这株花来自去年自己冒出来的种子长成的植株上剪下的插条,所以它多少有点像家里人。

10月5日,我数到大约三朵开着的花、三个花苞。10月9日,我数到七朵开着的花、五个花苞。

我的第一个念头是问AI为什么。

答案很容易拿到,也很容易相信。但阳光、雨水、时间流逝都起了作用,我分不清是哪一个造成了差别。AI也分不清。于是我换了个问题——不问"我的植物为什么会这样",而问"在我动手改变任何东西之前,我应该先去看什么"。

这个问题后来变成了 Garden Trials。

它不诊断,只让你先看

Garden Trials 是一个完全跑在你自己电脑上的小应用。整个想法能塞进一句话:先看,只改一件事,让花园来回答。

我不喜欢植物旁边有屏幕。和它们在一起的时候,我想把手插进土里,把手机放远。有时候一朵花开得太好看,我会拍张照,给自己看,也给其他植物爱好者看。所以我按"我希望园艺工具是什么样"来做这个应用:它在我动手前后跟我说话,而在中间,它会让我合上电脑,去看一眼那株植物。

它不是植物医生。它从不说一株植物哪里出了问题,也从不说是什么导致了一个结果。

它面向的是还在学着读懂自己植物的园艺爱好者,以及任何想检验自己假设、而不是急着下结论的人。它把观察、后续复查、简单实验和证据追踪放进同一个流程。它不只是记录发生了什么,而是帮园艺爱好者看清:什么变了、还有什么可能影响了结果、以及自己的观察究竟能说明多少。

它不打算替代那种从陪伴植物中长出来的理解,它想鼓励的是更仔细的观察。

上手最快的方式:一个假花园

最快的入口是示例花园。在侧边栏勾选"Try the illustrative sample garden",你就能用虚构的植物走完整个循环。里面的任何内容都不会被保存进真实的花园。

技术上的构成很朴素:

  • 一个跑在你自己笔记本上的 Gemma 模型,帮你把看到的东西写下来,并提醒你去检查植物的某一件事
  • 纯 Python 负责搭建实验、保存记录,并算出证据到底能说明多少
  • 应用本身从不说是什么导致了一个结果

安装和启动也就三行命令:

  1. python -m pip install -r requirements.txt
  2. ollama pull gemma3:1b
  3. python -m streamlit run app.py

在 Windows 上,你可以直接双击 run.bat。在 macOS 或 Linux 上,运行 bash run.sh。这两个脚本在 Ollama 缺失的情况下依然能启动应用。

它是我为 Hacktoberfest 开源AI挑战赛第一周"Touch Grass"提交的作品。演示视频48秒,无声音。

先看。只改一件事。让花园来回答。