项目
oMLX 上游贡献
为 Apple Silicon 上的开源 LLM 推理服务端新增了一整类引擎,之后逐步进入模型发现、接口一致性与调度核心。
摘要
oMLX 是他人的项目,这里登记的是可核验的贡献本身:13 个 PR,10 个已合并,1 个未被采纳,2 个截至 2026 年 7 月 27 日仍开放且尚未合并。下面每一行都链到上游,实时状态以 GitHub 为准。
oMLX 是一个面向 Apple Silicon 的开源 LLM 推理服务端,带连续批处理与 SSD 缓存,从 macOS 菜单栏管理;Apache-2.0,Python,档案更新时约 18.2k star。本文中的 PR 状态核对至 2026 年 7 月 27 日,之后的实时状态以各 GitHub 链接为准。
项目不是我的。这条记录只写贡献,并且用 PR 编号说话——下面每一行都能点进上游自己核对,包括那个未被采纳的。改动最大的一个是接入语音引擎,它同时动了服务端分类与加载模型的核心路径;最近两个已经离开音频,落在调度器上。
几点边界:开放且尚未合并的 PR 不算交付,它们只是提交了;提交数不作为指标,因为有一部分提交使用了未关联到账号的 git 身份,数字不干净;也不宣称使用量——仓库的 star 数是这个项目的,不是这部分工作的。可核验的只有代码是否合并、是否随版本发布、以及是否仍在主干上。
提交的 PR
每一行都链到上游 PR。以下状态为静态快照,核验于 ;当前状态以 GitHub 为准,包括未采纳的那一个。
13 个 PR · 10 个已合并 · 2 个仍开放 · 1 个未采纳已合并部分:+5,497 / −68
引擎与模型接入
| PR | 做了什么 | 状态 |
|---|---|---|
| #365 | 接入 mlx-audio:新增 STT / TTS / STS 三类引擎服务端此前没有语音这一层。这个 PR 新建了三类引擎,并改动了模型分类、加载与淘汰的核心路径,不只是加端点。说明 | 已合并 |
OpenAI 接口一致性
| PR | 做了什么 | 状态 |
|---|---|---|
| #823 | 让 /v1/audio/speech 遵守 response_format未被采纳。三个月后维护者用另一种实现解决了同一问题,避开了 ffmpeg 依赖。说明 | 未采纳 |
| #2075 | 转写端点支持 stream=true 的 SSE原本收下 stream 参数却不流式返回。不支持原生流式的模型退回一次性推理,但仍输出合法事件流。 | 已合并 |
| #2082 | STT 支持 OpenAI 的 prompt 词表偏置字段把 prompt 映射到各后端自己的偏置入口,不支持的后端明确丢弃而不是假装生效。 | 已合并 |
| #2084 | 新增 GET /v1/audio/voices 列出可用音色只读静态配置文件即可回答,不加载模型。这是 oMLX 的扩展,不属于 OpenAI 规范。 | 已合并 |
音色与说话人
| PR | 做了什么 | 状态 |
|---|---|---|
| #467 | 修正 CustomVoice 模型的 voice 参数路由参数优先级写反了:先判 instruct 再判 voice,导致同时接受两者的模型把说话人名字路由错,直接 500。 | 已合并 |
| #676 | 为 /v1/audio/speech 加入零样本声音克隆只接受 base64,不接受 URL——这是安全取舍,理由见说明。说明 | 已合并 |
模型发现与诊断
| PR | 做了什么 | 状态 |
|---|---|---|
| #525 | 音频端点解析模型别名在 LLM 路由上可用的别名,到了音频端点会 404。三个端点统一走同一套解析。 | 已合并 |
| #826 | 非 LLM 引擎与缺失 STT 处理器的清晰报错有一半不在音频路径上:聊天补全端点原本对任意引擎来者不拒,拿语音模型去打会直接崩。 | 已合并 |
| #2086 | 修复 Kokoro 的模型发现与 G2P 语言推断转换后的模型缺少 model_type 而被误判成 LLM,报出误导性的「找不到 safetensors」;语言改为按音色名前缀推断,范围刻意收窄。 | 已合并 |
构建与依赖
| PR | 做了什么 | 状态 |
|---|---|---|
| #2085 | 限制 transformers 版本以修复 CI上游收紧注册逻辑后 import 失败,新环境上整个测试收集全挂。仓库级问题,与音频无关。 | 已合并 |