LM Studio как локальный API-сервер: REST, OpenAI-совместимые эндпоинты и работа без окна программы
LM Studio умеет работать не только как приложение с интерфейсом, но и как фоновый сервис, к которому ваши скрипты и приложения обращаются по HTTP. Разбираем llmster-демон, автозапуск сервера при входе в систему, JIT-загрузку моделей и совместимые API — по официальной документации, с оговорками о том, что доступность функций может меняться.
Обычно про локальные модели думают как про окно программы, куда вставлен текст. Но для регулярной работы с документами удобнее другой сценарий: модель крутится на вашей машине как обычный сервис, а обращаетесь к ней не через интерфейс, а из своих скриптов и приложений — по HTTP, как к любому API. LM Studio предлагает именно такой режим, и это позволяет строить приватную обработку текстов целиком на своём оборудовании.
Официальная документация LM Studio описывает два уровня этой работы: базовый «сервер» — когда вы запускаете API через вкладку Developer или команду в терминале, и «headless» — когда приложение вообще работает без графического окна, в фоне. Второй вариант делает локальную модель похожей на любой другой внутренний сервис: он просто есть и отвечает на запросы.
Что умеет сервер LM Studio
По документации, локальные модели можно «раздавать» с LM Studio через несколько интерфейсов, и один из них — REST API, другие — SDK. Есть и совместимые эндпоинты: OpenAI-совместимые, Anthropic-совместимые и Jev (TypeSafe AI)-совместимые — это значит, что стандартные библиотеки, заточенные под эти API, скорее всего подойдут без отдельной интеграции. Запуск, со слов документации, не сложнее переключателя:
- REST API — базовый способ обращаться к модели по HTTP
- SDK — lmstudio-js для TypeScript и lmstudio-python для Python
- OpenAI-совместимые эндпоинты — чтобы использовать стандартные библиотеки как с обычным OpenAI API
- Включение — либо переключатель «Start server» во вкладке Developer, либо команда lms server start
- Дополнительно — настройка «Serve on Local Network», чтобы к серверу получали доступ другие устройства в вашей сети
Headless-режим: llmster и автозапуск
Если GUI вам нужен только чтобы один раз настроить систему, а дальше хочется, чтобы всё работало само, — документация описывает llmster как рекомендуемый вариант. Это «ядро» десктопного приложения LM Studio, упакованное для работы в режиме сервера, без зависимости от окна. Ставится одной командой на Linux/Mac или Windows, а запускается через lms daemon up. По документации, llmster может работать на Linux-машинах, облачных серверах, GPU-ригах или локально — без GUI.
Есть и второй путь, более знакомый, если вы уже пользуетесь десктопным приложением: включить в настройках (Cmd / Ctrl + ,) галочку «запускать LLM-сервер при входе в систему». Тогда при закрытии окна приложение сворачивается в системный трей, а сервер продолжает работать в фоне. Как пишут в LM Studio, последнее состояние сервера сохраняется и восстанавливается при следующем запуске — то есть то, что было включено, включится и в следующий раз.
JIT-загрузка: зачем это нужно при работе с текстами
Кодовая память ограничена, и запускать все модели сразу часто расточительно. Здесь LM Studio предлагает механизм Just-In-Time (JIT) загрузки для REST-эндпоинтов: если он включён, то запросы к OpenAI-совместимому /v1/models возвращают все скачанные модели, а обращение к inference-эндпоинту при необходимости загружает модель в память автоматически. Если JIT выключен, поведение другое: /v1/models показывает только уже загруженные модели, и выгружать вручную или загружать заранее придётся самостоятельно.
Например, гипотетически: если у вас скрипт корректуры, который раз в час обращается к одной модели, JIT-режим избавляет вас от ручного контроля за памятью. Авто-выгрузка настроена так: модели, загруженные через JIT, по умолчанию выгружаются из памяти после заданного периода бездействия — как указано в справке.
Как это проверять: локальность, скорость и корректность
То, что модель крутится локально, ещё не гарантирует, что ответы корректны. Авто-корректура текста легко превращается в правку смысла, если модель переформулирует то, что трогать не следовало. Важно проверять результат не «на глазок», а инструментально. Ниже — несколько шагов, которые стоит пройти.
- Запустите сервер и убедитесь, что локально он поднимается: откройте страницу или скрипт, который обращается к локальному адресу сервера, и убедитесь, что доступ работает.
- Список моделей: проверьте, что /v1/models при включённом JIT показывает нужные, а при выключенном — только загруженные, как описано в документации.
- Тест ответов: напишите небольшой скрипт с обычным запросом через OpenAI-совместимый эндпоинт и убедитесь, что модель отвечает.
- Проверка сохранности смысла: возьмите короткий документ, где изменения смысла легко обнаружить (например, договор или абзац с числами), и сравните вывод модели с оригиналом — правились ли только орфография и грамматика, не сместились ли числа, суммы, сроки, обязательства.
- Память и таймаут: посмотрите, как модель выгружается из памяти после периода бездействия, если вы используете JIT — не остаётся ли лишний раз что-то съедающим ресурс.
- Обновление: функции LM Studio меняются; если что-то не так, сверьтесь с текущими страницами документации по headless и серверной части — они и есть первоисточник.
Источники
Материал подготовлен по перечисленным источникам и проверен редакцией. Заметили неточность? Напишите нам: исправления вносятся с сохранением адреса и даты.