AI+环保应用教程:用Python脚本自动识别垃圾分类并查询处理建议

想用AI做环保应用,不一定从训练模型开始。
一个可运行的起点是:让用户上传垃圾图片,程序调用大模型接口识别物品并给出分类建议。
本文用Python脚本串起图片压缩、文字描述生成和分类结果校验,最终输出可回收、有害、厨余、其他四类标签和投放提示。

先明确适用条件和准备清单

这个方案适合个人开发者或小团队做原型验证,不依赖本地GPU。
你需要准备:

  • 一台能运行Python 3.8以上版本的电脑或云服务器
  • 一个大模型API账号,支持图像输入或文字对话均可(本文按文字对话接口示例,图片先转成文字描述)
  • 已安装requests库,可用pip install requests安装
  • 一组测试垃圾图片,建议覆盖塑料瓶、废电池、菜叶、纸巾等类别

如果使用宝塔面板管理服务器,在“网站”中新建Python项目即可,也可以直接SSH登录执行脚本。

编写分类脚本:从图片到分类结果

核心思路是分两步:第一步把图片压缩后转成文字描述(可用本地图像识别库或大模型多模态接口),第二步把描述和分类规则发给对话模型。
下面给出可调用的请求示例,替换API_KEY和接口地址即可。

import base64, requests, json

API_KEY = "你的API密钥"
API_URL = "https://api.example.com/v1/chat/completions"  # 替换为真实接口地址

def image_to_text(image_path):
    # 简化处理:实际可调用多模态接口,这里用本地描述代替
    return "一个透明塑料饮料瓶,瓶身有标签"

def classify(description):
    prompt = f"""根据以下垃圾描述,判断它属于可回收物、有害垃圾、厨余垃圾还是其他垃圾,并给出一句投放提示。只输出JSON,格式:{{"category":"","tip":""}}。描述:{description}"""
    headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
    data = {"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": prompt}], "temperature": 0}
    resp = requests.post(API_URL, headers=headers, json=data, timeout=30)
    resp.raise_for_status()
    content = resp.json()["choices"][0]["message"]["content"]
    return json.loads(content)

if __name__ == "__main__":
    desc = image_to_text("bottle.jpg")
    result = classify(desc)
    print(result)

运行后应输出类似{"category": "可回收物", "tip": "清空液体后压扁投放"}的JSON。
如果返回内容不是JSON,说明模型没有严格按格式输出,可在提示词中增加“只输出JSON,不要解释”并降低temperature。

三个容易踩的坑

图片太大导致接口超时。
手机照片通常3MB以上,直接base64编码会撑大请求体。
建议先用PIL压缩到宽度800像素、质量70再上传,命令示例:from PIL import Image; img = Image.open("a.jpg"); img.thumbnail((800,800)); img.save("small.jpg", quality=70)。

分类结果与本地规则冲突。
不同城市垃圾分类标准有差异,比如有些地方将大骨头归为其他垃圾。
建议在提示词中附上你所在城市的分类简表,或对模型输出做二次校验:如果category不在四个固定值内,直接返回“需人工确认”。

API密钥硬编码在脚本里。
不要把密钥写进代码提交到Git。
用环境变量读取:API_KEY = os.environ.get("API_KEY"),并在服务器上通过export API_KEY=xxx设置,或写入.env文件后加载。

验证结果是否可靠

准备20张已知分类的垃圾图片,批量运行脚本,统计分类准确率。
如果准确率低于70%,优先检查图片描述是否准确——很多错误来自第一步描述偏差,而不是分类模型本身。
另外记录每次请求的耗时和返回码,便于排查限流或超时问题。
可以在脚本中加入日志:logging.info(f"desc={desc}, result={result}")。

常见疑问

没有多模态API怎么办? 可以先用文字输入代替图片,让用户手动输入垃圾名称,同样能跑通分类逻辑,后续再替换为图像接口。

这个方案能直接上线吗? 建议作为辅助提示工具,最终投放以当地环卫部门规定为准。
涉及有害垃圾(如电池、灯管)时,提示用户送至专门回收点,不要仅依赖模型判断。

需要自己训练模型吗? 不需要。
调用通用大模型即可完成大部分常见垃圾的分类,成本低且迭代快。
如果对准确率要求高,再考虑收集本地数据微调。

分享到:
上一篇
AI文献综述配置:用Python脚本把PDF摘要和模型接口串成初稿流程
下一篇
AI污染监测配置:用API实现文本有害内容自动过滤
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意