OpenClaw+Phi-3-vision-128k-instruct:智能菜谱生成与购物清单
本文介绍了如何在星图GPU平台上自动化部署Phi-3-vision-128k-instruct镜像,实现智能菜谱生成与购物清单功能。该方案通过拍摄冰箱照片,自动识别食材并推荐菜谱,同时生成缺失食材的购物清单,显著提升厨房管理效率。
OpenClaw+Phi-3-vision-128k-instruct:智能菜谱生成与购物清单
1. 从冰箱照片到购物清单的智能厨房助手
上周六早上,我站在打开的冰箱前,盯着里面零零散散的食材发愁——鸡蛋、半颗西兰花、几根蔫了的胡萝卜、一块快过期的鸡胸肉。正当我纠结"这些东西能做出什么菜"时,突然想到刚部署的Phi-3-vision多模态模型和OpenClaw自动化框架。两小时后,我的厨房管理方式彻底改变了:拍张冰箱照片,AI不仅推荐了三道可行菜谱,还自动生成了缺失食材的购物清单,甚至能在指定时间提醒我下单。
这个看似简单的场景背后,是OpenClaw与多模态模型的完美配合。Phi-3-vision负责"看懂"冰箱内容并给出专业建议,OpenClaw则将这些建议转化为可执行的自动化流程。整个过程完全在本地运行,既保护了家庭隐私,又实现了真正的个性化服务。
2. 技术栈搭建:当多模态遇见自动化
2.1 为什么选择Phi-3-vision作为"厨房大脑"
在测试了多个开源多模态模型后,Phi-3-vision-128k-instruct最终胜出有三个关键原因:
首先,食材识别准确率令人惊喜。即使拍摄角度不佳(如冰箱顶部俯拍)、光线不均匀(冷藏室LED灯造成的反光),模型仍能准确识别出"半颗西兰花"和"临近保质期的鸡胸肉"这类细节。相比之下,其他模型要么将西兰花误认为花椰菜,要么直接忽略部分被遮挡的食材。
其次,上下文理解能力超出预期。当我上传照片并询问"用这些能做两人份晚餐吗",模型不仅列出菜谱,还会标注"鸡胸肉建议优先使用"的提醒。这种结合视觉识别与逻辑推理的能力,正是厨房场景需要的。
最后,本地部署成本相对可控。在RTX 3090上运行128k上下文版本的推理,处理一张冰箱照片平均只需3-5秒,显存占用约18GB。对于个人使用场景完全可接受。
2.2 OpenClaw的自动化魔法
Phi-3-vision给出了专业建议,但如何让它真正融入日常生活?这就是OpenClaw的舞台。我的自动化链路设计如下:
- 照片采集:通过OpenClaw的
desktop-capture技能定时扫描指定文件夹(我将手机拍摄的冰箱照片自动同步到该目录) - 模型调用:OpenClaw将新照片通过API发送给本地部署的Phi-3-vision模型
- 结果解析:提取模型返回的JSON数据中的菜谱和缺失食材清单
- 文档生成:自动创建Markdown格式的菜谱文档,保存到
~/Kitchen/Recipes目录 - 清单管理:将缺失食材追加到购物清单文件,并通过飞书机器人发送提醒
整个流程中最精妙的部分在于异常处理。例如当模型返回"照片中无可用食材"时,OpenClaw会自动发送"请重新拍摄冰箱照片"的提醒到我的飞书;当识别到临近过期的食材,则会优先推荐使用该食材的菜谱。
3. 从零搭建你的智能厨房系统
3.1 环境准备与模型部署
首先确保已安装OpenClaw核心框架(以macOS为例):
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
Phi-3-vision的部署需要额外注意两点:
- 显存要求:至少20GB显存(实测RTX 3090/4090或A10G表现良好)
- 依赖安装:
pip install chainlit==1.0.0 vllm==0.3.3
启动模型服务:
chainlit run app.py -w --port 8000
3.2 OpenClaw与Phi-3-vision的对接配置
在~/.openclaw/openclaw.json中添加自定义模型配置:
{
"models": {
"providers": {
"phi3-vision": {
"baseUrl": "http://localhost:8000",
"api": "custom",
"models": [
{
"id": "phi3-vision-128k",
"name": "Phi-3 Vision Kitchen Assistant",
"capabilities": ["vision"]
}
]
}
}
}
}
关键点在于"capabilities": ["vision"]的声明,这告诉OpenClaw该模型支持图像输入。
3.3 核心技能开发:菜谱生成器
创建一个名为kitchen-assistant的自定义技能:
// ~/.openclaw/skills/kitchen-assistant/index.js
module.exports = {
name: "Kitchen Assistant",
description: "Generate recipes from fridge photos",
triggers: ["fridge.jpg"],
async execute(context) {
const photoPath = context.triggerFile;
const visionResponse = await context.models.phi3-vision.generate({
prompt: "列出冰箱中的所有可用食材,给出3道适合的菜谱,并列出需要购买的食材",
image: photoPath
});
const { recipes, shoppingList } = parseResponse(visionResponse);
await generateMarkdown(recipes);
await updateShoppingList(shoppingList);
await notifyUser();
}
}
这个技能会在检测到新照片时自动触发,完成从图像识别到菜谱生成的全流程。
4. 实际使用中的优化与调整
第一版系统上线后,遇到了几个意料之外的问题:
问题1:食材重量估算不准 模型常给出"适量盐"这类模糊表述,但购物清单需要具体克数。解决方案是在prompt中明确要求:"所有食材用量必须精确到克,调味料精确到毫升"。
问题2:中西餐偏好混乱 作为中国胃,却被推荐了大量沙拉菜谱。通过在模型调用时添加系统提示解决:"你是一个精通中国家常菜的厨师,优先考虑炒、炖、蒸等中式烹饪方式"。
问题3:购物清单重复累积 简单的追加写入导致清单越来越长。最终改用YAML格式存储清单,并添加去重逻辑:
# shopping-list.yaml
items:
- name: 胡萝卜
quantity: 200g
neededBy: 2024-06-15
- name: 鸡蛋
quantity: 6个
neededBy: 2024-06-12
经过这些调整后,系统的实用性大幅提升。现在每周日晚,我都会拍下空冰箱的照片,系统不仅规划好下周的菜谱,还会在食材将用完时(通过计算使用频率预测)提前提醒补货。
5. 隐私与安全考量
将厨房管理交给AI时,最需要警惕的是数据泄露风险。这套方案的三大安全设计值得分享:
- 全链路本地化:从图像识别到购物清单生成,所有数据处理都在本机完成,照片不会上传至任何云端服务
- 最小权限原则:OpenClaw仅被授权访问特定的照片目录和文档文件夹,无法读取其他个人文件
- 敏感信息过滤:在生成购物清单时,系统会自动剔除"生抽""老抽"等可能暴露饮食习惯的调味品名称,改用"酱油(品类)"的通用表述
这种设计使得系统既智能又安全,连我家人都放心使用——毕竟谁都不希望自己的饮食记录成为大数据的一部分。
6. 超越厨房的想象空间
虽然本文聚焦厨房场景,但"多模态识别+自动化执行"的组合拳潜力远不止于此。经过这段实践,我发现至少还有三个方向值得探索:
家庭药箱管理:拍摄药盒识别药品名称和有效期,自动提醒补充常用药或处理临期药品。这需要模型具备药品说明书理解能力。
个人衣橱搭配:通过服装照片分析颜色和款式,结合天气预报推荐每日穿搭。挑战在于对主观审美偏好的把握。
植物养护助手:定时拍摄家中绿植,识别叶片状态判断是否需要浇水施肥。需要专业园艺知识库支持。
每个方向都遵循相似的技术架构,只需调整模型的专业领域知识和OpenClaw的自动化流程。这也正是此类方案最迷人的地方——用标准化技术解决个性化需求。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐




所有评论(0)