简单易学的分离式部署小米智能家居Miloco方法

一、安装环境

  • Windows用户:安装WSL2以及Docker
  • macOS/Linux用户:安装Docker
    此处不再赘述,网上随便找个教程即可。特别地,对于Windows用户来说,你需要将 WSL2 的网络模式设置为 Mirrored。

二、使用Docker部署Miloco后端

以下均为bash命令。请Windows用户进入WSL2 / Linux、macOS用户进入终端操作:

mkdir miloco cd milico vi docker-compose.yml 

以下是compose的内容(不会使用vi的同学可以傻瓜式操作:先按i,再使用粘贴功能,然后按冒号,输入wq然后回车,记得关闭输入法):

services:backend:container_name: miloco-backend image: ghcr.nju.edu.cn/xiaomi/miloco-backend:latest network_mode: host expose:- ${BACKEND_PORT:-8000}environment:- BACKEND_HOST=${BACKEND_HOST:-0.0.0.0}- BACKEND_PORT=${BACKEND_PORT:-8000}- AI_ENGINE_HOST=${AI_ENGINE_HOST:-0.0.0.0}- AI_ENGINE_PORT=${AI_ENGINE_PORT:-8001}- BACKEND_LOG_LEVEL=${BACKEND_LOG_LEVEL:-info}- TZ=${TZ:-Asia/Shanghai}volumes:- ./data:/app/miloco_server/.temp - ./log/backend:/app/miloco_server/.temp/log restart: unless-stopped healthcheck:disable:true

再写个.env

vi .env 

以下是.env的内容:

TZ=Asia/Shanghai BACKEND_HOST=0.0.0.0 BACKEND_PORT=8000 BACKEND_LOG_LEVER=info AI_ENGINE_HOST=0.0.0.0 AI_ENGINE_PORT=8001 AI_ENGINE_LOG_LEVER=info 

继续执行命令:

mkdir -p data mkdir -p log/backend docker compose up -d 

静待下载镜像以及运行即可。

三、部署视觉大模型

对于小白用户(含非专业的AMD用户),此处建议使用LM StudioOllama来部署GGUF版的VL模型。
如果你有一张高性能NVIDIA显卡(RTX3090、RTX4090、RTX5090等显存>=24G的),想要更加专业稳定的服务,那么建议使用vLLMSGLang进行生产级服务部署。
此处为了照顾Windows及macOS小白用户,以简单易用的LM Studio举例。

下载LM Studio并安装

https://lmstudio.ai/

设置及下载模型

点击界面最右下角的设置图标,

  • App Settings-General-Language-简体中文
  • App Settings-Developer-启用本地 LLM 服务

检查环境安装情况

还是在设置页-Runtime

NVIDIA用户
  • Vulkan llama.cpp
  • CUDA llama.cpp
  • CPU llama.cpp
  • CUDA 12 llama.cpp
  • Harmony
AMD用户
  • Vulkan llama.cpp
  • ROCm llama.cpp
  • CPU llama.cpp
  • Harmony
苹果用户
  • Vulkan llama.cpp
  • Metal llama.cpp
  • MLX llama.cpp
  • CPU llama.cpp
  • Harmony

下载模型

Model Search-搜索框中输入:xiaomi-open-source/Xiaomi-MiMo-VL-Miloco-7B-GGUF
点击右下角Download即可

运行模型并提供API服务

  • 下载完成后点击页面左侧的“开发者”(一个绿色终端图标,位于对话图标下方)
  • 点击页面顶部加载模型
  • 你应该能够看到xiaomi-mimo-vl-miloco-7bREADY状态。
  • 页面顶部有一个Status: Stopped,点击开关,切换到Running
  • 点击Server Settings,打开“在网络中提供服务”。
  • 你将得到一个局域网地址,显示在右侧的Reachable at中,如:http://192.168.50.210:1234。复制它。

四、与Miloco对接

假设你的Docker宿主机IP为192.168.50.123,那么就访问https://192.168.50.123:8000/。首次设置会让你登录账号,登录后有一个callback地址,也填写192.168.50.123:8000

对接VL模型

点击模型管理-云端模型-添加模型:
Base URL输入http://192.168.50.210:1234/v1
API Key随便填
模型ID填xiaomi-mimo-vl-miloco-7b,再点击一下以添加。
完成后在上方“视觉理解大模型”中选择云端:xiaomi-mimo-vl-miloco-7b

对接规划模型

对于许多用户来说,走到这一步的时候,想必你的显存/统一内存已经所剩无几了吧!让我们白嫖一下硅基流动的大模型。

  • 访问https://cloud.siliconflow.cn/,注册并登录。
  • 点击左侧的API密钥,生成一个,复制出来(sk开头的)
  • 还是添加云端模型:
    Base URL输入https://api.siliconflow.cn/v1
    API Key填刚才生成的
    模型ID选Qwen/Qwen3-8B
    完成后在上方“规划大模型”中选择云端:Qwen/Qwen3-8B

回到AI中心,开始你的Miloco之旅吧!

五、一点Tips

  • 对于规划模型,你可以尝试使用更强的大模型,它们调用工具更稳定,比如Kimi K2Minimax M2等。Qwen3-8B的训练时间较早且对齐略有问题,可能不能很好地稳定调用工具。这只是一个便宜的入门之选。
  • 对于VL模型,有条件的同学可以尝试部署全精度版本,使用vLLM提供服务,会获得更棒的体验。
  • 官方文档中推荐的安装方式只是多集成了一个AI Engine,本质上就是对llama.cpp的封装。分离式部署大模型服务更灵活。
  • 吐槽:我曾经想着提个pr来适配更多平台,但发现代码里硬编码了许多CUDA/nvidia相关的东西,蒜鸟蒜鸟。
  • 有疑问可以联系我:[email protected],不保证时效性。

Read more

C++ 继承:面向对象的代码复用核心机制

C++ 继承:面向对象的代码复用核心机制

C++ 继承:面向对象的代码复用核心机制 💡 学习目标:掌握继承的基本语法与核心特性,理解不同继承方式的访问权限控制,能够通过继承实现代码复用与扩展。 💡 学习重点:继承的语法格式、三种继承方式的区别、基类与派生类的关系、继承中的构造与析构顺序。 一、继承的概念与核心价值 ✅ 结论:继承是 C++ 面向对象三大特性之一,允许一个类派生类继承另一个类基类的属性和行为,实现代码复用,同时支持派生类在基类基础上扩展新功能。 继承的核心价值体现在两个方面: 1. 代码复用:避免重复编写相同的成员变量和成员函数,降低代码冗余度 2. 功能扩展:派生类可以在基类的基础上新增属性和方法,满足更复杂的业务需求 生活中的继承示例:学生和老师都属于“人”,都有姓名、年龄等属性和吃饭、睡觉等行为。可以先定义 Person 基类,再让 Student 和 Teacher 继承 Person,并各自扩展专属功能。 二、继承的基本语法与实现 2.1

By Ne0inhk
【C++】继承

【C++】继承

继承 ✨前言:继承是C++面向对象编程的核心特性之一,它允许我们在已有类的基础上创建新类,实现代码的复用和功能的扩展。通过继承,我们可以构建出层次分明的类体系,让代码更加结构化、可维护。本文将深入探讨继承的各个方面,从基本概念到底层实现,帮助读者全面掌握这一重要特性。 📖专栏:【C++成长之旅】 目录 * 继承 * 一、继承的概念及定义 * 1.1 继承的概念 * 1.2 继承的定义 * 1.2.1 定义格式 * 1.2.2 继承基类成员访问方式的变化 * 1.3 继承类模板 * 二、基类和派生类间的转化 * 三、继承中的作用域 * 3.1 隐藏规则 * 3.2 考察继承作用域相关选择题 * 3.2.1

By Ne0inhk
【C++算法刷题营地】—— 【string类面试题】Cyber顶级骇客带你速刷 C++ string类 中的常见算法题

【C++算法刷题营地】—— 【string类面试题】Cyber顶级骇客带你速刷 C++ string类 中的常见算法题

⚡ CYBER_PROFILE ⚡ /// SYSTEM READY /// [WARNING]: DETECTING HIGH ENERGY 🌊 🌉 🌊 心手合一 · 水到渠成 >>> ACCESS TERMINAL <<<[ 🦾 作者主页 ][ 🔥 C语言核心 ][ 💾 编程百度 ][ 📡 代码仓库 ] --------------------------------------- Running Process: 100% | Latency: 0ms 索引与导读 * 一、字符串转换 * 1)字符串转换整数 * 关键点拨 * 完整代码 * 最直接的替代接口:stoi * 小试牛刀:整数转字符串 * 2)字符串相加 * 关键点拨 * 完整代码 * 3)仅仅反转字母 * 关键点拨 * 完整代码 * 4)反转字符串 * 4.

By Ne0inhk
开源一套正在建设的现代 C++ 教程!

开源一套正在建设的现代 C++ 教程!

🚀开源一套正在建设的现代 C++ 教程! 笔者吐槽:靠有点像卖课的,但真不是,笔者纯出于兴趣维护的。笔者想了想,有时候光看各种各样的文章。显得太零碎。亮出来代码示例吧,显得太冗余。那为什么不专门维护一个仓库好好做这个事情呢? 所以笔者决定,试试看利用Github仓库托管一下。 TL;DR 好的教程都有TL;DR,一句话——这边请: GitHub Pages: 点击访问,获得更好更加流畅的阅读体验(嘶,Github静态网页有可能访问速度比较慢,如果有朋友有需求,可以尝试看看下面的仓库克隆下来本地预览) 啥,想看看原仓库,在这里: 👉:Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP: 现代 C++ 嵌入式(MCU/Linux)开发完整教程,深入讲解 C++11–C++23、零开销抽象、RAII 与性能优化! 现在正在想办法看看支持模拟机和真机实战确保代码可靠。

By Ne0inhk