兼容性事实
OpenAI 端点兼容
聊天、传统补全、模型列表与嵌入使用兼容的请求和响应结构。
兼容范围按端点界定。/x/models 下的模型加载与卸载是 macMLX 扩展,不属于 OpenAI 兼容的模型管理。
核验
Anthropic Messages 兼容
v0.5.3 提供 POST /v1/messages,并支持流式响应。
这里只兼容 Messages API,不代表兼容完整 Anthropic API。
核验
部分 Ollama 端点
macMLX 支持 /api/version、/api/tags、/api/show、/api/chat 与 /api/generate。
该兼容层自 v0.3.7 起提供;它只覆盖选定端点,不是完整 Ollama API 的无差别替代。
核验
MCP 服务端
CLI 可向 MCP 客户端提供本地推理能力。
MCP 服务端在 v0.5.0 发布,与聊天侧调用外部工具的路由功能不同。
核验
MCP 客户端池
v0.5.3 包含受管理的 MCP 客户端连接。
客户端池负责管理外部 MCP 进程与连接;聊天侧集成工具路由是另一个在 v0.6.0 发布的能力。
核验
聊天集成工具路由
v0.6.0 为 OpenAI、Anthropic 与 GUI MCP 循环交付多轮工具路由。
各协议的验证明确约束工具调用历史;该路由与 MCP 服务端及客户端池基础设施不同。
核验
本地嵌入
POST /v1/embeddings 已在 v0.5.3 发布。
系统可以检测编码器模型家族,但若使用不合适的聊天模型,仍可能生成缺乏语义保证的向量。
核验
双编码器重排 MVP
POST /v1/rerank 对独立嵌入的文本计算余弦相似度。
这一已发布 MVP 不是交叉编码器重排器。
核验
资格门控的连续批处理
v0.6.0 仅在真实并发下批处理符合条件的稠密文本请求,并自动回退到串行路径。
标签版 4 客户端基准测得 2.5–3.2× 聚合吞吐量;VLM、推测解码、Ollama、Anthropic 与嵌入仍保持串行。
核验
结构化输出
v0.6.0 支持 response_format 的 json_object 与明确界定的 JSON Schema 子集。
不支持的 Schema 关键字返回 400;VLM 与结构化输出、工具与结构化输出都是不支持的组合,会被明确拒绝而非静默降级。
核验
API 兼容功能包
v0.6.0 新增 logit_bias、logprobs 与 top_logprobs、XTC、逐请求 LoRA 适配器和 tools。
明确的兼容矩阵约束参数组合,不支持的配对返回 400,而不会静默降级。
核验
KV 缓存量化
v0.6.0 为兼容请求开放 kv_bits、kv_group_size 与 quantized_kv_start。
这些参数改变 KV 缓存精度,而非模型权重精度;非正数 kv_bits 会禁用该功能,兼容矩阵会拒绝不支持的模型或请求组合。
核验
端点兼容性矩阵
| 接口 | 端点 | 兼容边界 |
|---|---|---|
| OpenAI 聊天 | POST /v1/chat/completions | 兼容并支持流式响应 |
| OpenAI 传统补全 | POST /v1/completions | 兼容传统补全结构 |
| OpenAI 模型列表 | GET /v1/models | 兼容列表;加载/卸载是 /x/models 下的 macMLX 扩展 |
| OpenAI 嵌入 | POST /v1/embeddings | 兼容嵌入结构;仍需选择合适模型 |
| Anthropic | POST /v1/messages | 仅 Messages API(含流式),不是完整 Anthropic API |
| Ollama | /api/version、/api/tags、/api/show、/api/chat、/api/generate | 自 v0.3.7 起支持选定端点,不是完整替代 |
| 重排 | POST /v1/rerank | macMLX 双编码器余弦 MVP,不是交叉编码器 |
| 工具循环 | OpenAI、Anthropic 与 GUI MCP 路由 | 多轮工具路由于 v0.6.0 发布 |
| 结构化输出 | response_format:json_object 或受支持的 JSON Schema | 不支持的 Schema 以及工具/VLM 组合返回 400 |
| API 兼容功能包 | logit_bias、logprobs、top_logprobs、XTC、逐请求 LoRA、tools | 不支持的参数组合返回 400 |
| KV 缓存量化 | kv_bits、kv_group_size、quantized_kv_start | 仅限兼容请求;这不会量化模型权重 |
OpenAI 兼容聊天示例
使用明确的模型与消息调用本地服务。
curl http://localhost:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"your-mlx-model","messages":[{"role":"user","content":"Hello"}]}'