简单易学的分离式部署小米智能家居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

解密链表环的起点:LeetCode 142 题

解密链表环的起点:LeetCode 142 题

解密链表环的起点:LeetCode 142 题 * 视频地址 * 🌟 引言 * 🔍 问题描述 * 🧠 解题思路回顾 * 快慢指针算法 * 数学原理 * 💻 C++代码实现 * 🛠 代码解析 * 数据结构定义 * 算法实现细节 * 🚀 性能分析 * 🐞 常见问题与调试 * 常见错误 * 调试技巧 * 📊 复杂度对比表 * 🌈 总结 视频地址 因为想更好的为大佬服务,制作了同步视频,这是Bilibili的视频地址 🌟 引言 链表环检测问题在C++中同样是一个经典面试题。本文将用C++实现LeetCode 142题"环形链表II"的解决方案,深入讲解快慢指针算法的原理和实现细节。 🔍 问题描述 给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 nullptr。 🧠 解题思路回顾 快慢指针算法 1. 使用两个指针:slow每次走一步,fast每次走两步 2.

By Ne0inhk
通俗易懂->哈希表详解

通俗易懂->哈希表详解

目录 一、什么是哈希表? 1.1哈希表长什么样? 1.2为什么会有哈希表? 1.3哈希表的特点 1.3.1 取余法、线性探测 1.3.2 映射 1.3.3负载因子 1.4哈希桶 1.5闲散列与开散列 1.6总结 二、设计hash表 1、哈希表的设计   1)插入   2)查找  3)删除 4)字符串哈希算法 2、封装map和set 1、完成对hash表的基础功能 2、完成封装 3、对应的迭代器 4、【】方括号重载 三、

By Ne0inhk
LFU缓存算法全解:从双哈希+双向链表到O(1)艺术,解锁长期热点守护神

LFU缓存算法全解:从双哈希+双向链表到O(1)艺术,解锁长期热点守护神

文章目录 * 本篇摘要 * 一、核心原理 * 二、关键特性与实现机制 * 1. **数据结构设计(高效实现的核心)** * 2. **频率动态更新** * 3.实现思想及代码测试 * 4.为什么LFU用 双哈希表 + 双向链表? * 三、典型优势与劣势 * **优势场景** * **劣势与挑战** * 四、典型问题与优化策略 * 1. **新数据冷启动优化** * 2. **频率衰减(避免历史权重过高)** * 五、适用场景与典型用例 * 六、LFU vs LRU 对比 * 八、一句话总结 * 九、模版源码 * 本篇小结 本篇摘要 一、核心原理 基础规则: 优先淘汰历史访问频率最低的数据(长期统计维度)。 * 每个缓存条目维护两个核心属性:键值对数据 + 访问频率计数器。当缓存容量达到上限时,

By Ne0inhk
排序算法的速度美学:快速排序深度漫游

排序算法的速度美学:快速排序深度漫游

目录 一、快速排序思想 二、Hoare版本 1、Hoare版本介绍 2、编码实操 3、时间复杂度分析 4、有序情况优化 4.1 随机选keyi 4.2 三数取中 小贴士: 5、稳定性分析 三、挖坑法 1、挖坑法介绍 2、编码实操 四、lomuto前后指针版本 1、前后指针版本介绍 2、编码实操 3、小区间优化 五、迭代版本(非递归) 1、递归的缺陷 2、非递归思路 3、编码实操 六、三路划分 1、三路划分思想 2、

By Ne0inhk