发现 AI 代理的未来arrow_forward

mlx-openai-server

calendar_today收录于 2026年4月23日
category模型与推理框架
code开源
PythonPyTorch大语言模型FastAPI多模态深度学习CLI模型与推理框架模型训练/推理协议/API/集成计算机视觉/多模态

面向 Apple Silicon 的本地 OpenAI 兼容多模态 API 服务器,支持文本、视觉、音频转录与图像生成/编辑模型的统一部署。

mlx-openai-server 是一个专为 Apple Silicon(M 系列芯片)设计的本地推理 API 服务器,提供完整的 OpenAI API 兼容性。基于 MLX 框架与 FastAPI 构建,覆盖六大模型类型:纯文本语言模型(lm)、多模态模型(multimodal,支持文本+图片+音频)、图像生成(image-generation,支持 Flux 系列等)、图像编辑(image-edit)、文本嵌入(embeddings)和音频转录(whisper)。

项目核心特性包括:多模型并行运行与按需加载卸载机制、推测解码加速、Prompt KV 缓存、可配置量化(4/8/16-bit)、LoRA 适配器支持、工具调用与结构化输出兼容。多模型部署采用进程隔离架构(HandlerProcessProxy),每个模型在独立子进程中运行,有效解决 MLX Metal/GPU 信号量泄漏问题。

使用方式极简,单模型场景一行命令即可启动,多模型场景通过 YAML 配置文件管理。对外暴露标准 /v1/ 端点,可直接用 OpenAI SDK 或任何兼容 OpenAI API 的前端(如 OpenWebUI)无缝对接,实现零代码修改的本地化切换,适用于隐私优先推理、本地 AI 编码助手、AI Agent 后端等场景。

安装与启动

  • 环境要求:macOS Apple Silicon,Python ≥3.11 且 <3.13
  • 安装:uv pip install mlx-openai-server
  • 快速启动:mlx-openai-server launch --model-path mlx-community/Qwen3-Coder-Next-4bit --model-type lm
  • Whisper 支持需额外安装 ffmpeg

CLI 主要参数

  • --model-path:MLX 模型路径(本地或 HuggingFace),必填
  • --model-type:lm / multimodal / image-generation / image-edit / embeddings / whisper,必填
  • --config:YAML 多模型配置文件路径
  • --host / --port:绑定地址与端口,默认 127.0.0.1:8000
  • --served-model-name:自定义对外模型名称
  • --quantize:量化级别(4/8/16)
  • --context-length / --max-tokens:上下文与生成长度,max-tokens 默认 100000
  • --temperature:采样温度,默认 1.0
  • --draft-model-path:推测解码草稿模型路径
  • --prompt-cache-size:提示缓存条目数,默认 10
  • --lora-paths:LoRA 适配器路径(逗号分隔)

多模型 YAML 配置示例

server:
  host: "0.0.0.0"
  port: 8000
  log_level: INFO

models:
  - model_path: mlx-community/MiniMax-M2.5-4bit
    model_type: lm
    served_model_name: Minimax-M2.5
    enable_auto_tool_choice: true
    tool_call_parser: minimax_m2
    reasoning_parser: minimax_m2

  - model_path: black-forest-labs/FLUX.2-klein-4B
    model_type: image-generation
    config_name: flux2-klein-4b
    quantize: 4
    served_model_name: flux2-klein-4b
    on_demand: true
    on_demand_idle_timeout: 120

API 调用方式 完全兼容 OpenAI SDK,仅需替换 base_url:

import openai
client = openai.OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
response = client.chat.completions.create(
    model="glm-4.7-flash",
    messages=[{"role": "user", "content": "Say hello in one word."}],
)
print(response.choices[0].message.content)

待确认信息

  • PyPI 发布状态未直接确认,仅从安装命令推断
  • 无完整兼容模型清单,README 提及 Gemma 4、MiniMax-M2.5、GLM-4.7、Qwen3、Flux 等
  • 无公开性能基准数据
  • 并发能力上限未说明

当前版本 1.7.1,采用 MIT 许可证,作者 Gia-Huy Vuong (cubist38)。

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。

rocket_launch