当前位置: 首页 > news >正文

OpenClaw+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的舞台。我的自动化链路设计如下:

  1. 照片采集:通过OpenClaw的desktop-capture技能定时扫描指定文件夹(我将手机拍摄的冰箱照片自动同步到该目录)
  2. 模型调用:OpenClaw将新照片通过API发送给本地部署的Phi-3-vision模型
  3. 结果解析:提取模型返回的JSON数据中的菜谱和缺失食材清单
  4. 文档生成:自动创建Markdown格式的菜谱文档,保存到~/Kitchen/Recipes目录
  5. 清单管理:将缺失食材追加到购物清单文件,并通过飞书机器人发送提醒

整个流程中最精妙的部分在于异常处理。例如当模型返回"照片中无可用食材"时,OpenClaw会自动发送"请重新拍摄冰箱照片"的提醒到我的飞书;当识别到临近过期的食材,则会优先推荐使用该食材的菜谱。

3. 从零搭建你的智能厨房系统

3.1 环境准备与模型部署

首先确保已安装OpenClaw核心框架(以macOS为例):

curl -fsSL https://openclaw.ai/install.sh | bash openclaw onboard --install-daemon

Phi-3-vision的部署需要额外注意两点:

  1. 显存要求:至少20GB显存(实测RTX 3090/4090或A10G表现良好)
  2. 依赖安装
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时,最需要警惕的是数据泄露风险。这套方案的三大安全设计值得分享:

  1. 全链路本地化:从图像识别到购物清单生成,所有数据处理都在本机完成,照片不会上传至任何云端服务
  2. 最小权限原则:OpenClaw仅被授权访问特定的照片目录和文档文件夹,无法读取其他个人文件
  3. 敏感信息过滤:在生成购物清单时,系统会自动剔除"生抽""老抽"等可能暴露饮食习惯的调味品名称,改用"酱油(品类)"的通用表述

这种设计使得系统既智能又安全,连我家人都放心使用——毕竟谁都不希望自己的饮食记录成为大数据的一部分。

6. 超越厨房的想象空间

虽然本文聚焦厨房场景,但"多模态识别+自动化执行"的组合拳潜力远不止于此。经过这段实践,我发现至少还有三个方向值得探索:

家庭药箱管理:拍摄药盒识别药品名称和有效期,自动提醒补充常用药或处理临期药品。这需要模型具备药品说明书理解能力。

个人衣橱搭配:通过服装照片分析颜色和款式,结合天气预报推荐每日穿搭。挑战在于对主观审美偏好的把握。

植物养护助手:定时拍摄家中绿植,识别叶片状态判断是否需要浇水施肥。需要专业园艺知识库支持。

每个方向都遵循相似的技术架构,只需调整模型的专业领域知识和OpenClaw的自动化流程。这也正是此类方案最迷人的地方——用标准化技术解决个性化需求。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.cnnetsun.cn/news/1642828.html

相关文章:

  • OpenClaw Docker 部署中的**安全漏洞和风险点**
  • uniApp实现跨平台跳转支付宝小程序的完整方案
  • 硬字幕智能消除技术:从行业痛点到AI解决方案的突破
  • Graphormer开源模型优势解析:纯Transformer架构对长程分子相互作用建模
  • WarcraftHelper技术指南:解决魔兽争霸III现代系统兼容问题的完整方案
  • WarcraftHelper技术配置指南:魔兽争霸3现代化兼容解决方案
  • Obsidian PDF++: 革新PDF注释体验的双向链接解决方案
  • 开源烧录工具esptool:从入门到精通的全场景应用指南
  • 从 Claude Code 泄露的 50 万行代码中,我们能学到什么,又可以借鉴哪些设计?
  • 用GLM-OCR搭建智能档案管理系统:批量解析历史文档,提升工作效率
  • 星穹铁道全能助手:March7thAssistant自动化解决方案
  • 超透镜设计:从逆向到深度学习与RCWA算法的奇妙融合
  • DriverStore Explorer:开源驱动管理工具释放磁盘空间的高效解决方案
  • VUE前端项目的搭建过程
  • 【好靶场】你能找到上传路径吗?
  • Graphormer一文详解:Graphormer在OGB-lsc上的leaderboard表现与技术突破
  • 探索 Trnsys 系统在暖通领域的仿真奥秘
  • CALICO:让大视觉语言模型学会“找茬”——多图像部件级语义共分割新突破
  • 新手必看:nli-distilroberta-base快速上手教程,一键启动推理服务
  • 三自由度机械手-工业机器人(说明书+CAD图纸)
  • LeetCode 最长回文子串:python 题解
  • AudioSeal Pixel Studio一文详解:Streamlit界面+FFmpeg后端完整工作流
  • Phi-4-mini-reasoning效果验证:在Codeforces Div2 C类题目上的AC率实测报告
  • seo网站推广的常见案例有哪些_seo网站推广的具体步骤是什么
  • 雪女-斗罗大陆-造相Z-Turbo在.NET生态中的集成应用开发
  • Mugen:8000美元打造的终极AI动漫绘图模型
  • Nunchaku FLUX.1 CustomV3开源镜像实操:FLUX.1-Turbo+Ghibsky双LoRA协同优化详解
  • 【RAG】【embeddings42】Amazon SageMaker 嵌入端点集成案例
  • Stable Diffusion 3.5 FP8保姆级部署教程:5分钟搞定,12G显卡就能跑
  • 动态路由协议与 RIP 协议核心总结