OpenClaw+Kimi-VL-A3B-Thinking:智能菜谱生成与食材识别

张开发
2026/4/9 3:23:24 15 分钟阅读

分享文章

OpenClaw+Kimi-VL-A3B-Thinking:智能菜谱生成与食材识别
OpenClawKimi-VL-A3B-Thinking智能菜谱生成与食材识别1. 为什么需要厨房AI助手上周清理冰箱时我发现三颗快过期的鸡蛋、半盒蔫掉的菠菜和一块冻得发硬的鸡胸肉。站在冰箱前纠结了十分钟最终决定点外卖——这已经是本月第七次因为不知道怎么做而放弃烹饪。直到我尝试用OpenClaw对接Kimi-VL多模态模型才真正体验到AI如何改变厨房工作流。传统菜谱应用的痛点在于它们需要你明确知道食材名称和搭配方式。而现实中我们往往面对的是冰箱里有什么做什么的场景。通过OpenClaw操控电脑摄像头拍摄食材照片再由Kimi-VL模型识别并生成定制菜谱这个组合完美解决了看见即所得的厨房需求。2. 技术栈搭建过程2.1 环境准备与模型部署在MacBook Pro上部署时我首先用Docker拉取了Kimi-VL-A3B-Thinking镜像。这个基于vllm部署的多模态模型特别适合处理图像和文本的联合任务。启动命令如下docker run -d --gpus all -p 8000:8000 \ -v /path/to/models:/models \ kimivl-a3b-thinking --model /models/Kimi-VL-A3B关键点在于--gpus all参数必须正确配置否则模型无法调用CUDA加速。我在这里踩过坑最初忘记安装NVIDIA Container Toolkit导致GPU无法识别。解决方法是在宿主机执行distribution$(. /etc/os-release;echo $ID$VERSION_ID) \ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit2.2 OpenClaw的视觉能力扩展默认安装的OpenClaw并不具备图像采集能力需要通过Skill扩展。我使用ClawHub安装了camera-capture技能clawhub install camera-capture vision-utils然后在~/.openclaw/openclaw.json中配置摄像头设备参数{ skills: { camera: { device_index: 0, resolution: [1920, 1080], warmup_time: 2 } } }实际测试发现MacBook的FaceTime摄像头索引号默认是0但外接USB摄像头可能需要尝试1-3之间的索引值。可以通过ffmpeg -list_devices true -f avfoundation -i dummy命令查看可用设备列表。3. 食材识别工作流实现3.1 多模态交互设计整个系统的工作流程分为四个阶段图像采集OpenClaw控制摄像头拍摄冰箱隔层照片视觉识别将图片base64编码后发送给Kimi-VL模型菜谱生成模型返回食材列表及搭配建议步骤可视化生成带图文说明的烹饪指南核心调用代码如下保存在food_agent.py中import base64 from openclaw.skills.camera import capture_image from openclaw.models import chat_completion def generate_recipe(): # 拍摄食材照片 img_path capture_image(save_path/tmp/fridge_snapshot.jpg) with open(img_path, rb) as f: img_base64 base64.b64encode(f.read()).decode(utf-8) # 构建多模态prompt messages [ { role: user, content: [ {type: text, text: 识别图中所有可用食材给出3种烹饪方案}, {type: image_url, image_url: fdata:image/jpeg;base64,{img_base64}} ] } ] # 调用Kimi-VL模型 response chat_completion( modelkimivl-a3b, messagesmessages, temperature0.7, max_tokens1500 ) return response.choices[0].message.content3.2 实际效果调优初期测试发现模型容易遗漏边缘位置的食材。通过以下改进显著提升识别率在冰箱每层放置白色背景板拍摄时打开手机闪光灯补光对模型添加提示词特别注意角落里的食材最佳实践是采用三视图拍摄法正对冰箱拍一张然后左右各45度角补拍两张。将三张图片同时传给模型识别准确率提升约40%。4. 菜谱生成与营养分析4.1 结构化输出控制Kimi-VL模型原生支持Markdown格式输出。我在prompt中加入格式要求请用Markdown格式返回结果包含 ## 识别食材 - 食材1 (新鲜度评估) - 食材2 (新鲜度评估) ## 推荐菜谱 ### 方案1 [烹饪难度] **营养特点**xxx **步骤** 1. xxx 2. xxx ### 方案2 [烹饪难度] ...这样生成的菜谱可以直接渲染在OpenClaw的Web界面中。一个意外收获是模型还能评估食材新鲜度比如它会提示西红柿表皮开始起皱建议优先使用。4.2 营养计算增强通过安装nutrition-calculator技能系统可以进一步分析菜谱的营养构成clawhub install nutrition-calculator调用方式是在菜谱生成后自动追加请求nutrition calculate_nutrition(ingredients[chicken, spinach])这会在菜谱末尾添加营养表格营养素每份含量日需占比蛋白质28g56%纤维素6g24%5. 遇到的问题与解决方案5.1 光线条件影响识别昏暗环境下的识别准确率会下降60%以上。最终解决方案是在冰箱门内侧安装USB供电的LED灯条由OpenClaw在拍摄前自动点亮import hid device hid.device() device.open(0x1a86, 0xdd01) # USB继电器设备ID device.write([0x01]) # 打开灯光 time.sleep(0.5) capture_image() device.write([0x00]) # 关闭灯光5.2 模型响应延迟Kimi-VL处理一张图片平均需要8-12秒这对厨房场景来说体验割裂。通过两种优化改善本地缓存对已识别过的食材建立本地数据库预览模式先返回文字描述再后台生成详细菜谱缓存实现代码如下from diskcache import Cache cache Cache(/tmp/food_cache) def get_cached_recipe(img_hash): if img_hash in cache: return cache[img_hash] recipe generate_recipe() cache.set(img_hash, recipe, expire86400) # 缓存24小时 return recipe6. 进阶应用场景这套系统最让我惊喜的衍生用法是剩菜改造。将餐后剩余的食物拍照模型会给出回锅方案比如将剩米饭鸡蛋葱花改造成蛋炒饭把炖汤的肉渣做成肉松更复杂的应用是结合购物记录做智能采购建议。当系统连续三天识别到牛奶存量不足时会自动在购物清单APP中添加提醒。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章