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

Flutter for OpenHarmony: Flutter 三方库 cached_query 为鸿蒙应用打造高性能声明式数据缓存系统(前端缓存终极方案)

Flutter for OpenHarmony: Flutter 三方库 cached_query 为鸿蒙应用打造高性能声明式数据缓存系统(前端缓存终极方案)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,网络请求的响应速度直接决定了用户体验(体验 UX)。如果用户每次切换页面都必须等待加载动画,应用会显得非常低级。我们不仅需要处理异步数据请求,更需要一套精密的机制来解决以下痛点: 1. 自动缓存:第二次访问时应瞬间展示历史数据。 2. 过期失效(Stale-while-revalidate):在展示旧数据的同时,后台静默拉取新数据。 3. 无限滚动:简单地处理分页与数据追加内容逻辑。 cached_query 是一个类似于 Web 端 React Query 的 Dart 状态管理库。它专注于数据获取与同步,让你的鸿蒙应用具备顶级的数据缓存表现。 一、核心缓存驱动机制 cached_query 在内存与数据源之间建立了一层“智能感知”缓存。 数据过期/缺失 返回新数据 发射流

通过URI Scheme实现从Web网页上打开本地C++应用程序(以腾讯会议为例,附完整实现源码)

通过URI Scheme实现从Web网页上打开本地C++应用程序(以腾讯会议为例,附完整实现源码)

目录 1、需求描述 2、选择URI Scheme实现 3、何为URI Scheme? 4、将自定义的URL Scheme信息写入注册表的C++源码实现 5、如何实现最开始的3种需求 6、后续需要考虑的细节问题        之前陆续收到一些从Web页面上启动我们C++客户端软件的需求,希望我们能提供一些技术上的支持与协助,支持从Web网页上将我们的C++客户端软件启动起来。于是我大概地研究了相关的实现方法,下面把研究的过程与结果在此做一个分享,希望能给大家提供一个借鉴或参考。 C++软件异常排查从入门到精通系列教程(核心精品专栏,订阅量已达10000多个,欢迎订阅,持续更新...)https://blog.ZEEKLOG.net/chenlycly/article/details/125529931C/C++实战专栏(重点专栏,专栏文章已更新500多篇,订阅量已达8000多个,欢迎订阅,持续更新中...)https://blog.ZEEKLOG.net/

cpolar远程辅助Open-Lovable实现随时随地克隆网页超实用

cpolar远程辅助Open-Lovable实现随时随地克隆网页超实用

Open-Lovable 是一款面向前端开发者的开源工具,核心功能是将任意网页克隆为可编辑的 React 应用,还支持多类 AI 模型辅助生成代码,适配新手学习、中小企业原型开发等场景。它的优点很贴合实际需求:拆分代码组件清晰,保留完整 CSS 样式,能大幅减少手动搭建页面框架的时间,比如新手学习电商网站布局时,不用再逐行拆解复杂的源代码,直接克隆后就能看清 header、footer 等组件的逻辑,中小企业做产品原型时,克隆同类网页后稍作修改就能快速出效果。 使用这款工具时也有一些实用的小提醒💡:克隆的网页仅能还原静态布局和样式,像登录态、动态交互这类内容无法完整复刻,而且使用前需要准备好 E2B、Firecrawl 等平台的 API 密钥,密钥保管要注意隐私,避免外泄造成不必要的损失。 不过 Open-Lovable 默认只能在本地局域网内使用,这会带来不少不便:比如开发者在家调试的克隆项目,想让公司的设计师远程查看效果,只能通过传文件、远程协助的方式,不仅耗时,还可能出现版本不一致的问题;要是出差在外需要修改克隆的代码,没法直接访问本地的工具,只能等回到电脑前操作,耽误工作

Go语言中的未来:从泛型到WebAssembly

Go语言中的未来:从泛型到WebAssembly 前言 作为一个在小厂挣扎的Go后端老兵,我对Go语言未来的理解就一句话:能进化的绝不固步自封。 想当年刚接触Go语言时,它还没有泛型,没有模块系统,甚至连错误处理都被人诟病。现在的Go语言已经今非昔比,泛型来了,模块系统完善了,错误处理也有了更多选择。 今天就聊聊Go语言的未来发展,从泛型到WebAssembly,给大家一个能直接抄作业的方案。 为什么需要关注Go语言的未来? 我见过不少小团队,只关注当前的技术,不关心语言的发展趋势,结果技术栈逐渐落后。关注Go语言的未来能带来很多好处: * 提前准备:了解未来的特性,提前调整代码结构 * 技术选型:根据未来趋势,做出更合理的技术选型 * 职业发展:掌握最新技术,提升个人竞争力 * 项目规划:根据语言发展,制定更合理的项目规划 泛型 泛型是Go 1.18引入的重要特性,它能让我们编写更加通用的代码。 基本用法 // 定义泛型函数 func Map[T, U any](s []T, f