Установка, запуск, проверка
Создайте на экземпляре отдельное окружение Python для сервиса. Путь к модели в примере указывает на локальную папку, уже синхронизированную с экземпляром. После запуска сначала проверьте совместимый с OpenAI API из самого экземпляра.
python3 -m venv ~/mlx-service/.venv
~/mlx-service/.venv/bin/python -m pip install mlx-lm
~/mlx-service/.venv/bin/python -m mlx_lm.server \
--model ~/models/quantized-model \
--host 127.0.0.1 --port 8080
curl http://127.0.0.1:8080/v1/models
Убедитесь, что файлы модели в порядке, окружение Python готово, а порт не занят другим процессом. Параметры разных версий mlx-lm могут отличаться. Перед развёртыванием сверьтесь со справкой установленной на экземпляре версии.
ДОСТУП / 01
Откройте доступ команде
По умолчанию сервис слушает только 127.0.0.1. Для небольшого числа внутренних запросов каждый участник может настроить собственный SSH-туннель. Если нужен единый вход, используйте обратный прокси с аутентификацией, контролем доступа и TLS. Не открывайте незащищённую конечную точку инференса в публичный интернет.
ssh -N -L 8080:127.0.0.1:8080 xops-node
ЗАПУСК / 02
Автоматический запуск после перезагрузки
Когда команда стабильно работает в терминале, создайте пользовательскую конфигурацию launchd для сервиса. Укажите Python из виртуального окружения, путь к модели, рабочую папку и файл журнала. Сначала проверьте конфигурацию, затем загрузите её в сеанс текущего пользователя. После перезагрузки экземпляра проверьте процесс и конечную точку.
plutil -lint ~/Library/LaunchAgents/com.xcodeops.mlx.plist
launchctl bootstrap gui/$(id -u) \
~/Library/LaunchAgents/com.xcodeops.mlx.plist