你手机上那些园艺类 App,是不是总要传定位和花园数据到云端,然后给你一个需要订阅的“智能计划”?可一旦断网、或者你不想让机器知道你阳台有多大,它们就完全失灵。GardenPlanner AI 反着来:它完全离线运行,只靠 Python 标准库就把一个靠谱的种植计划算出来,如果你愿意,还可以用本地的 Ollama 模型把计划润色得更“聪明”。

这个项目是作者为 Hacktoberfest 2026 开源 AI 挑战赛做的,主题是“Touch Grass”(字面是摸草,意思就是别老对着屏幕,多出去亲近自然)。核心思路很有意思:用开源权重模型帮人放下手机走进花园,而不是把人更深地困在屏幕前。大多数园艺应用把定位和花园数据传到云端,把“大脑”锁在付费 API 后面。而这个工具反过来,纯 Python 标准库实现,100% 离线,没有网络、没有账号、没有成本。你只要在主目录下用命令行跑一句:

python main.py --city "Shanghai" --month 10 --space balcony --level easy

一郎 支
一郎 支

它就会返回一份个性化的月度种植计划,包含伴生植物(种在一起能互相促进或防虫的植物组合)和具体建议,还会自动为南半球用户翻转季节——你在悉尼过三月,它不会给你算成北半球的春天。

这里的关键技术选型值得聊聊。整个项目不依赖任何第三方库,只用 Python 自带的标准库,这意味着你随便一台没装 pip 包的老电脑都能跑,也不用担心依赖冲突。它内置一个规则引擎:基于城市气候数据、月份、可用的种植空间和种植难度,通过硬编码的规则组合出计划。如果你想要更自然的语言表述,可以接入本地 Ollama 模型——Ollama 是一个让你在自家电脑上运行大模型(比如 llama3.2)的工具,把数据留在机器上,不经过任何云端。用法是先拉取模型:

ollama pull llama3.2

然后带参数运行:

python main.py --city "London" --month 3 --ollama llama3.2

pic
pic

没有 Ollama 时,规则引擎照样能生成完整计划;有它时,模型会把这个计划重新改写成更像人写的、更贴心的建议。这种“先规则兜底,再大模型增强”的设计我很喜欢——它避开了大模型那种“一本正经胡说八道”的毛病,因为规则引擎保证了种植的基本科学性,模型只负责写话术。

为什么离线优先这么重要?

数据隐私只是一方面,更实际的是:花园场景常常在户外,信号不好,你总不能蹲在菜地里等云端响应。离线意味着即时可用,也意味着这个工具可以被任意改造分发给任何人,不怕断网、不怕 API 封号、不怕涨价。对开发者来说,这种极简依赖的设计也是一个很好的参考——很多小工具根本不需要什么 Flask、FastAPI,一个命令行脚本加标准库就足够了。

项目仓库放在 GitHub,作者明确欢迎 Hacktoberfest 贡献:可以补更多城市气候数据、扩展植物数据库、加病虫害提醒、或者做 Web/移动端包装。这也是开源项目常见的协作方式——核心逻辑很小,但数据与场景的扩展空间很大。

如果你想在自己的项目里借鉴这个思路,可以考虑:凡是那种“需要结合本地数据 + 稳定逻辑 + 可选增强”的场景,都可以用“规则引擎 + 本地模型”的组合。规则引擎保证确定性和正确性,模型负责语言表达的灵活度,双方互补。要注意的坑是:规则引擎需要人工维护规则库,数据(比如各地气候、植物习性)的质量直接决定计划准不准;而本地模型如果太老,改写出的建议可能不够自然,所以对模型选择也得有取舍。整体上,这是一个把“AI 降级”做得很清晰的案例——没有模型也能用,有模型体验更好,很适合作为个人工具或教学范例。

DEV Community
DEV Community

如果你关注离线优先、本地 AI、开源贡献这类话题,这个项目值得去翻一翻源码,看看作者是怎么用不到几百行 Python 解决一个真实生活问题的。

阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://dev.to/__97f461dfd8e73f7c9aed/gardenplanner-ai-an-offline-first-gardening-planner-for-hacktoberfest-2026-3mnl