极客折腾:OpenClaw+Qwen3.5-9B-AWQ-4bit构建智能相册机器人

张开发
2026/4/6 1:30:03 15 分钟阅读

分享文章

极客折腾:OpenClaw+Qwen3.5-9B-AWQ-4bit构建智能相册机器人
极客折腾OpenClawQwen3.5-9B-AWQ-4bit构建智能相册机器人1. 缘起一张照片引发的自动化构想去年整理家庭相册时我发现手机里积压了上千张未经分类的照片。手动为每张照片写描述简直是一场噩梦——直到我在树莓派上偶然跑通了OpenClaw与Qwen3.5-9B-AWQ-4bit的组合。这个周末项目最终演变成了能自动接收微信图片、生成诗意描述并发布到个人博客的智能系统全部硬件成本不到50元。这个方案的特别之处在于极低成本使用树莓派Zero 2W二手价约35元作为执行终端全链路自动化从图片接收到最终发布完全无需人工干预诗意输出Qwen3.5的多模态能力让描述不再是干巴巴的标签2. 硬件准备与基础环境搭建2.1 硬件采购清单我的硬件配置完全遵循能省则省原则组件型号价格元备注开发板树莓派Zero 2W35二手市场淘换存储卡32GB TF卡12全新电源适配器5V1A MicroUSB0用旧手机充电器改造外壳亚克力自制3废料加工总成本控制在50元内的关键在于利用闲置配件如充电器选择二手硬件树莓派Zero 2W性能足够自制简易外壳2.2 系统初始化步骤在TF卡刷入Raspberry Pi OS Lite后需要完成三项基础配置# 启用摄像头模块 sudo raspi-config nonint do_camera 0 # 安装Node.js运行环境 curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # 配置SSH远程访问方便后续调试 sudo systemctl enable ssh sudo systemctl start ssh特别提醒树莓派Zero 2W的ARMv6架构需要选择兼容的Node.js版本。我曾因误装ARMv7版本导致OpenClaw启动失败最后通过uname -m确认架构后才解决问题。3. 核心组件部署与联调3.1 OpenClaw的轻量化安装由于树莓派资源有限我选择了最精简的安装方式# 使用npm安装核心模块跳过非必要依赖 sudo npm install -g openclawlite --omitdev # 最小化配置仅启用文件操作和HTTP监听 openclaw onboard --modeMinimal配置文件~/.openclaw/openclaw.json需要手动添加微信通道支持{ channels: { wechat: { enabled: true, type: personal, storagePath: /home/pi/wechat_images } }, models: { default: qwen3.5-awq } }3.2 Qwen3.5-9B-AWQ-4bit模型部署通过星图平台获取镜像后在树莓派上运行轻量化服务# 拉取镜像已提前下载到本地 docker load -i qwen3.5-9b-awq-4bit.tar # 启动服务限制内存使用 docker run -d --name qwen \ -p 5000:5000 \ --memory800M \ --memory-swap1G \ qwen3.5-9b-awq-4bit \ python app.py --quant awq --port 5000关键调整点添加--memory限制防止OOM使用awq量化模式降低显存占用测试时发现直接运行原版镜像会崩溃添加交换分区后稳定运行4. 自动化流水线构建4.1 图片接收与预处理当微信收到图片时OpenClaw会执行以下操作将图片保存到/home/pi/wechat_images调用Python脚本进行尺寸压缩树莓派处理高分辨率图片容易卡死# compress_image.py from PIL import Image import os def compress(input_path): output_path f{os.path.splitext(input_path)[0]}_compressed.jpg with Image.open(input_path) as img: img.thumbnail((800, 800)) img.save(output_path, JPEG, quality85) return output_path4.2 诗意描述生成通过OpenClaw调用Qwen3.5的典型请求示例curl -X POST http://localhost:5000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen3.5-9b-awq, messages: [ { role: user, content: [ {image: /home/pi/wechat_images/IMG_20240501_compressed.jpg}, {text: 用七言绝句描述这张照片的意境不超过50字} ] } ] }模型返回的典型响应{ choices: [{ message: { content: 斜阳轻抚旧窗棂茶烟袅袅伴书声。猫儿倦卧藤椅侧一室安宁岁月凝。 } }] }4.3 自动发布到博客我使用Hugo静态博客发布流程通过OpenClaw Skill实现安装Markdown生成器clawhub install hugo-publisher配置自动提交需提前设置Git凭证{ skills: { hugo-publisher: { repo: ~/myblog, branch: main, contentDir: content/posts } } }最终生成的Markdown文件示例--- title: 2024-05-01 午后时光 date: 2024-05-01T15:00:0008:00 draft: false description: 斜阳轻抚旧窗棂茶烟袅袅伴书声。猫儿倦卧藤椅侧一室安宁岁月凝。 --- ![午后时光](/images/IMG_20240501.jpg)5. 踩坑与优化记录5.1 内存泄漏问题初期连续处理10张以上图片时树莓派会死机。通过以下手段解决在OpenClaw配置中添加自动重启机制使用vcgencmd get_mem arm监控内存占用限制Docker容器内存前文已提及5.2 描述风格控制Qwen3.5有时会生成过于华丽的诗句通过修改prompt获得更自然的输出原始prompt用七言绝句描述这张照片 优化后prompt用口语化的七言诗句描述家庭生活场景避免使用生僻字5.3 断电恢复方案为防止突然断电导致任务中断使用systemd设置开机自启添加UPS监控脚本成本所限暂时用充电宝替代# /etc/systemd/system/openclaw.service [Unit] DescriptionOpenClaw Service Afternetwork.target [Service] ExecStart/usr/bin/openclaw gateway start Restartalways Userpi [Install] WantedBymulti-user.target6. 成果展示与使用建议当前系统已稳定运行两个月自动处理了387张家庭照片。一些意外收获生成的诗歌成为博客特色内容孩子通过朗读这些诗句练习语文意外发现模型能识别老照片中的服饰年代特征对于想复现该项目的朋友我的实用建议优先处理近期的照片模型对当代物品识别更准为每张照片保留原始文件压缩仅用于处理环节定期清理wechat_images文件夹树莓派存储空间有限可以尝试用--threads 2参数平衡处理速度与稳定性这个项目最让我惊喜的是当技术以如此低的门槛融入日常生活时连最简单的照片整理都能变成充满诗意的家庭活动。或许这就是极客精神的本质——用创造力让平凡事物焕发新生。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章