mlx-serve OpenAI 兼容 API 速查手册:chat/completions、流式 SSE 与工具调用一学就会
【免费下载链接】mlx-serveNative LLM inference server for Apple Silicon. OpenAI Anthropic API compatible. No Python. Zig backend, Swift frontend macOS app with chat, music, voice, video generation.项目地址https://gitcode.com/gh_mirrors/ml/mlx-serve点击查看免费下载mlx-serve是专为 Apple Silicon 打造的本地 LLM 推理服务器默认在http://localhost:11234一个端口上同时提供OpenAI 兼容 API/v1/chat/completions、Anthropic Messages、Ollama 协议以及流式 SSE 与工具调用tool calling能力。本文是一份面向新手和普通用户的速查手册从启动服务器到发第一封chat/completions请求、读懂流式 SSE 的每个 data 块再到完成一次完整的工具调用闭环照抄即可跑通。一、3 分钟上手安装并启动 mlx-serve 服务器mlx-serve 无需 Python是一个约 7 MB 的 Zig 二进制默认绑定0.0.0.0:11234。最省事的启动方式是 Ollama 风格的命令——自动下载模型并直接起服务mlx-serve run gemma4 # 下载 Gemma 4 E4B4-bit并进入终端聊天 mlx-serve serve # 服务本地 ~/.mlx-serve/models 下所有模型按需加载也支持 Homebrew 安装brew install --cask mlx-serve # 菜单栏 App推荐 brew install mlx-serve # 仅 CLI 服务器启动后用两个只读端点验证服务器活着curl http://localhost:11234/health # 健康检查 curl http://localhost:11234/v1/models # 列出已加载模型及上下文窗口 小贴士/v1/models返回的每一行都会广播该模型真实的上下文窗口meta.context_length配置第三方客户端时直接引用它不要手写一个更大的数字否则会溢出。二、OpenAI 兼容核心POST /v1/chat/completions 全参数速查/v1/chat/completions与 OpenAI SDK 完全同构把 SDK 的base_url指向http://localhost:11234/v1、API Key 随便填如mlx-serve即可。最小请求curl http://localhost:11234/v1/chat/completions \ -H Content-Type: application/json \ -d { messages: [{role: user, content: 写一首关于编程的俳句}], max_tokens: 256, stream: false }mlx-serve 支持的常用请求参数一览完整清单见 docs/api.md参数作用新手建议messages对话历史支持system/user/assistant/tool角色必填max_tokens生成上限必填避免烧内存temperature/top_p/top_k采样控制不填则按模型默认stream是否 SSE 流式交互场景设truestream_options流式附带 usage{include_usage: true}tools/tool_choice工具调用声明见第四节response_formatJSON 模式 / JSON Schema 约束解码结构化输出时用logprobs/top_logprobs每 token 对数概率调试用enable_thinking/reasoning_effort/reasoning_budget_tokens思考开关与预算思考类模型用kv_quant/kv_attn_mode按请求覆盖 KV 缓存量化高级选项image_url消息内视觉模型传图base64 或 URL支持视觉的模型可用响应中值得关注的字段finish_reasonstop正常结束或length达到max_tokensfinish_details当模型陷入复读循环被服务端主动截断时会报{type: repetition_loop}这是 mlx-serve 独有的诊断信息帮你区分模型卡住了和配额用完了usage.prompt_tokens_details.cached_tokens始终携带告诉你这次请求命中了多少缓存 token前缀缓存的效果直接可见。三、流式 SSE逐块读懂 data 与 [DONE]把stream设为true响应就从一次性 JSON 变成SSEServer-Sent Events流每行data: {...}是一个独立的 JSON chunk流末尾以data: [DONE]收尾。一个典型的流式会话长这样data: {id:chatcmpl-...,object:chat.completion.chunk,choices:[{index:0,delta:{role:assistant,content:编程},...}]} data: {object:chat.completion.chunk,choices:[{index:0,delta:{content:之美},...}]} data: {object:chat.completion.chunk,choices:[{index:0,delta:{},finish_reason:stop},...]} data: [DONE]新手只需记住三条规则object永远是chat.completion.chunk正文增量在choices[0].delta.content里逐块拼接即可还原完整回答delta.tool_calls同理分块到达——工具调用的name和argumentsJSON 是分段流式下发的客户端要按index拼回完整参数mlx-serve 保证拼好的arguments一定是合法 JSONdata: [DONE]是唯一终止信号见到它即可关闭流。若想拿到最终 usage请求里加stream_options: {include_usage: true}服务器会在结尾追加一个choices为空的 usage chunk。⚡ 流式 思考模型思考内容走delta.reasoning_content字段与正文content分开前端可以渲染成折叠的思考过程。四、工具调用 tools声明、下发、回传三步闭环mlx-serve 原生支持 OpenAI 风格的函数调用一次完整的工具循环分三步第 1 步声明工具。请求体里带tools数组标准 JSON Schema和可选的tool_choiceauto/none/required/ 指定函数名{ messages: [{role: user, content: 北京现在多少度}], tools: [{ type: function, function: { name: get_weather, description: 查询城市天气, parameters: { type: object, properties: {city: {type: string}}, required: [city] } } }] }第 2 步接收tool_calls。模型决定调用工具时响应的choices[0].message.tool_calls里返回结构化的id、function.name和function.argumentsJSON 字符串此时finish_reason为tool_calls。第 3 步回传工具结果。把模型消息原样塞回历史再追加一条role: tool消息带上tool_call_id服务器会继续生成最终回答。mlx-serve 在工具调用链路上做了大量健壮性工程对新手非常友好Schema 驱动的自动修复模型输出的参数值若与声明类型不符如把false写成字符串False服务器会按 Schema 自动纠正小模型写坏 JSON 转义时也有容错重序列化兜底最大限度保证arguments是永远合法的 JSONtool_choice: required是真约束不只是提示词建议解码层会强制模型发起调用关闭自动修复可用启动参数--no-tool-autocorrect。解析与修复的具体实现可以查看 src/chat.zig工具调用解析器与格式语料测试在 src/format_corpus_test.zig已知问题的排查记录见 docs/gotchas/tool-calling.md。五、不止 OpenAI同一个端口上的另外三套协议mlx-serve 的一大优势是一个端口、四套协议你现有的客户端基本零改动就能接入协议端点典型客户端OpenAI Chat CompletionsPOST /v1/chat/completionsOpenAI SDK、Continue、CursorOpenAI ResponsesPOST /v1/responses含 WebSocketCodexAnthropic MessagesPOST /v1/messagesClaude Code设ANTHROPIC_BASE_URLOllamaPOST /api/chat等Open WebUI、Raycast、ollama-python例如让 Claude Code 直连本地export ANTHROPIC_BASE_URLhttp://localhost:11234 claude各客户端的详细配置见 docs/integrations.md服务器全部启动参数见 docs/cli.md。六、新手排障速查表症状可能原因解决办法连不上 11234服务器没启动或端口被改curl /health验证确认--port模型名报 404/未加载模型未下载或名字不对mlx-serve list、查/v1/models流式中途没收到[DONE]客户端提前断开检查代理/超时的 keepalive 配置回答被截断且带repetition_loop模型复读被安全闸截断调低 temperature 或换采样参数finish_reason: length撞了max_tokens调大max_tokens工具调用参数被客户端拒收模型输出与 Schema 不符确认未开--no-tool-autocorrect七、延伸阅读与代码路径HTTP API 完整参考含嵌入、媒体生成等端点docs/api.md、docs/zh-CN/api.md服务器路由实现/v1/chat/completions、SSE 发射器src/server.zig工具调用解析与思考块切分src/chat.zigSSE 流式与连接行为的自动化测试tests/test_connection_thread_reaping.sh性能与加速机制投机解码、KV 量化docs/performance.md照着这份手册你现在应该已经能在自己的 Mac 上跑起一个 OpenAI 兼容的本地推理服务并完整掌握chat/completions、流式 SSE 和工具调用三大核心用法了。赞分享【免费下载链接】mlx-serveNative LLM inference server for Apple Silicon. OpenAI Anthropic API compatible. No Python. Zig backend, Swift frontend macOS app with chat, music, voice, video generation.项目地址https://gitcode.com/gh_mirrors/ml/mlx-serve点击查看免费下载相关推荐OpenClaw 如何启用 OpenAI 兼容的 /v1/chat/completions HTTP 端点供外部工具调用OpenClaw 如何启用 OpenAI 兼容的 /v1/chat/completions HTTP 端点供外部工具调用 如果你已经在运行 OpenClawAI 应用AI Agent交互助手后端即时通讯网关Stylis与PostCSS对比分析选择最适合项目的CSS工具指南 Stylis与PostCSS对比分析选择最适合项目的CSS工具指南 在前端开发的世界中CSS预处理工具的选择直接影响着项目的开发效率和性能表现。今天我用 ADK Go 的 openaimodel 驱动 OpenAI Chat Completions一个字段切换任意 OpenAI 兼容提供商用 ADK Go 的 openaimodel 驱动 OpenAI Chat Completions一个字段切换任意 OpenAI 兼容提供商 导读 本文围绕人工智能大模型AI AgentAgent 框架多智能体工具调用MCP ClientsAgent 记忆创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

把数据藏进光标颜色:Ghostty Blackhole零守护进程实时同步的16位信道魔法

把数据藏进光标颜色:Ghostty Blackhole零守护进程实时同步的16位信道魔法

【免费下载链接】ghostty-blackhole Ghostty Blackhole puts a real, ray-traced black hole inside your terminal. It grows as Claude Codes context window fills up, live. A fresh session is a quiet hole in the corner. A full one swallows half your screen. Youll …

2026/10/10 17:51:20 阅读更多 →
2026 机器人网站建设公司推荐-产品演示与场景匹配的十家拆解

2026 机器人网站建设公司推荐-产品演示与场景匹配的十家拆解

本期十家服务商先集中列出,便于横向对照:易百讯科技(深圳,2010 年成立,综合型建站服务商)、方维网络(深圳本土,网站建设与小程序开发并行)、助君网络(上海&am…

2026/10/10 17:51:20 阅读更多 →
PyCharm实战:BP神经网络实现iris分类全流程

PyCharm实战:BP神经网络实现iris分类全流程

简介:这份资源面向机器学习入门者与需要完成课程实验的学生,围绕BP神经网络求解Iris鸢尾花分类这一经典任务展开。Iris数据集包含150个样本、4个特征与3个类别,是检验分类算法的标准案例,资源通过Python与PyCharm环境完整呈现从数…

2026/10/10 17:50:18 阅读更多 →

最新新闻

WPF贝塞尔曲线绘制平滑折线图实战指南

WPF贝塞尔曲线绘制平滑折线图实战指南

简介:本资源是一个基于WPF与C#实现的贝塞尔曲线动态折线图可视化项目,面向.NET桌面开发初学者及图形学实践者,解决传统折线图缺乏平滑过渡与动态量程适配的问题。项目完整封装为RAR压缩包(65KB),共36个文件…

2026/10/11 1:51:41 阅读更多 →
视黄酸、FIV与脑膜屏障——猫原代脑膜细胞如何解码神经发育与神经免疫的交叉调控密码

视黄酸、FIV与脑膜屏障——猫原代脑膜细胞如何解码神经发育与神经免疫的交叉调控密码

在神经科学研究领域,脑膜长期以来被视为静态包裹大脑的“惰性保护层”。然而,近十年的研究正在从根本上改写这一认知——脑膜不仅是中枢神经系统的物理屏障,更是一个高度分区化、功能特化的动态微环境调控系统。脑膜成纤维细胞主动表达与血脑…

2026/10/11 1:51:41 阅读更多 →
功能红利退潮之后:C端产品设计差异化的4条走心路径

功能红利退潮之后:C端产品设计差异化的4条走心路径

【摘要】功能差异的保质期已缩短至6个月,参数升级的用户感知趋近于零,C端差异化竞争正从功能层转向情感层。文章以波特竞争战略、KANO模型、峰终定律为锚点,用走心力4因子公式拆解4个落地切口,配套6步执行流程、3类典型误区与3条量…

2026/10/11 1:51:41 阅读更多 →
免疫组库基础分析14:基于NAIR包的TCR/BCR免疫组库公共簇分析

免疫组库基础分析14:基于NAIR包的TCR/BCR免疫组库公共簇分析

摘要 适应性免疫受体库测序(AIRR-Seq)是解析免疫应答、疾病标志物筛选的核心技术,TCR/BCR簇的跨样本共享性与表型关联性是关键研究切入点。NAIR(Network Analysis of Immune Repertoire)是基于R语言的免疫组库网络分析…

2026/10/11 1:51:41 阅读更多 →
Node-Exporter 详解:服务器监控神器,从零部署实战教程

Node-Exporter 详解:服务器监控神器,从零部署实战教程

文章目录Node-Exporter 详解:服务器监控神器,从零部署实战教程一、什么是 Node-Exporter?核心监控范围二、为什么要用 Node-Exporter?三、Node-Exporter 部署实战(两种方式)方式一:二进制部署&a…

2026/10/11 1:51:41 阅读更多 →
主动悬架真正难的并不是算法

主动悬架真正难的并不是算法

前言 做主动悬架时间久了,有一个很深的感受: 主动悬架真正难的,往往不是算法。 刚开始接触这个领域时,很容易把注意力集中在控制算法上。Skyhook、LQR、H∞、MPC,甚至更复杂的预测控制和整车协同控制,看起来…

2026/10/11 1:50:41 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →