Skip to main content

server-inference

Use this skill when the user wants to run or debug MLX-VLM server inference, including uv run mlx_vlm.server, /v1/models, /v1/chat/completions, /v1/responses, streaming, OpenAI-compatible clients, health checks, metrics, model unload/reload, adapters, trust-remote-code, and server request/response failures.

소스 정보

저장소
Blaizzy/mlx-vlm
최근 소스 활동
2026년 9월 18일 18:14
감지된 SKILL.md 언어
영어
스타
5,605
포크
822

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
server-inference
description
Use this skill when the user wants to run or debug MLX-VLM server inference, including uv run mlx_vlm.server, /v1/models, /v1/chat/completions, /v1/responses, streaming, OpenAI-compatible clients, health checks, metrics, model unload/reload, adapters, trust-remote-code, and server request/response failures.
# Server Inference Use this workflow for the FastAPI server and API-compatible inference. ## First Checks 1. Identify the server command, model, port, request endpoint, request body, and expected response. 2. Start with health/model-list checks before debugging generation. 3. Separate server startup failures from request-handling failures. 4. Keep streaming and non-streaming repros separate. ## Startup ```bash uv run mlx_vlm.server \ --model <model-or-path> \ --port 8080 ``` Useful startup flags include `--adapter-path`, `--trust-remote-code`, `--log-level`, `--enable-thinking`, `--thinking-budget`, `--draft-model`, `--draft-kind`, `--kv-bits`, `--kv-quant-scheme`, `--max-kv-size`, and `--vision-cache-size`. ## Minimal Checks ```bash curl http://127.0.0.1:8080/health curl http://127.0.0.1:8080/v1/models curl http://127.0.0.1:8080/metrics ``` Minimal chat request: ```bash curl -s http://127.0.0.1:8080/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{ "model": "<model-or-path>", "messages": [{"role": "user", "content": "Say hello."}], "max_tokens": 32, "stream": false }' ``` Minimal Responses API request: ```bash curl -s http://127.0.0.1:8080/v1/responses \ -H 'Content-Type: application/json' \ -d '{ "model": "<model-or-path>", "input": "Say hello.", "max_output_tokens": 32 }' ``` ## Endpoint Surface (beyond chat/responses) The server exposes more than chat — cover or route to these as needed: - **Anthropic Messages API:** `/v1/messages`, plus `/v1/messages/count` for token counting. - **Audio:** `/v1/audio/speech` (TTS), `/v1/audio/transcriptions` and `/v1/audio/translations` (STT). - **Images:** `/v1/images/generations` and `/v1/images/edits` (diffusion image models). - **Cache & metrics:** `/v1/cache/stats`, `/v1/cache/reset`, `/v1/metrics`. - **Models:** `/v1/models` lists loaded models and model candidates in the shared Hugging Face cache, with a `loaded` boolean indicating which are in memory — see `Skill("mlx-vlm-skills:hf-cache-models")`. Match the model kind to the endpoint (an image endpoint needs a diffusion/image model, audio endpoints need an audio model); a mismatch returns a clear 4xx, not a crash. ## Debugging Rules - Capture the server command, server logs, request body, response status, and response body. - Test `/v1/models` after preload/load changes. - For OpenAI client issues, reproduce with `curl` before blaming the client SDK. - For streaming bugs, save raw event chunks and compare with non-streaming. - For structured outputs, isolate the JSON schema and confirm whether the same request works without schema constraints. - For tool calls, inspect native support and the parser inferred from the loaded processor's actual chat template. Follow [Tool Calling](../add-new-model/SKILL.md#tool-calling) for parser registration and validation. ## Validation - For route/schema changes, run `uv run pytest mlx_vlm/tests/test_server.py -q`. - For structured output changes, include `uv run pytest mlx_vlm/tests/test_generate.py -q -k 'thinking_aware or json_schema'`. - For tool parser changes, add compact regressions to `TestProcessToolCalls` in `mlx_vlm/tests/test_server.py` and run the shared tool streaming tests in that module, plus any existing tests for affected parsers. Reuse consolidated tests instead of creating a new test file. - If the result is a user-facing bug report, switch to `Skill("mlx-vlm-skills:reproducible-github-issues")`.
GitHub에서 보기