Начало работы с Python SDK от LM Studio

lmstudio-python предоставляет набор API для взаимодействия с LLM, моделями эмбеддингов и агентскими потоками.

Установка SDK

lmstudio-python доступен как пакет PyPI. Вы можете установить его с помощью pip.

pip install lmstudio

Исходный код и вклад в открытый исходный код доступны на GitHub: lmstudio-python.

Возможности

  • Использование LLM для ответов в чатах или предсказания завершения текста
  • Определение функций как инструментов и превращение LLM в автономных агентов, работающих полностью локально
  • Загрузка, настройка и выгрузка моделей из памяти
  • Генерация эмбеддингов для текста и многое другое!

Быстрый пример: Чат с моделью Llama

Python (API удобства):

import lmstudio as lms

model = lms.llm("qwen/qwen3-4b-2507")
result = model.respond("What is the meaning of life?")

print(result)

Получение локальных моделей

Приведённый выше код требует модель qwen3-4b-2507. Если у вас нет этой модели, выполните следующую команду в терминале для её загрузки:

lms get qwen/qwen3-4b-2507

Подробнее о lms get в CLI от LM Studio читайте здесь.

Удобство интерактивной работы, детерминированное управление ресурсами или структурированная конкурентность?

Как показано в примере выше, существует три различных подхода для работы с Python SDK от LM Studio.

Первый — это API удобства для интерактивной работы (в примерах указан как "Python (convenience API)"), который фокусируется на использовании экземпляра клиента LM Studio по умолчанию для удобного взаимодействия в синхронном приглашении Python или при использовании блокнотов Jupyter.

Второй — это синхронный API управления ресурсами с областью действия (в примерах указан как "Python (scoped resource API)"), который использует менеджеры контекста для обеспечения детерминированного освобождения выделенных ресурсов (таких как сетевые соединения), а не их потенциального оставления открытыми до завершения всего процесса.

Последний — это асинхронный API структурированной конкурентности (в примерах указан как "Python (asynchronous API)"), который предназначен для использования в асинхронных программах, следующих принципам дизайна "структурированной конкурентности", чтобы обеспечить правильное управление фоновыми задачами, обрабатывающими соединения SDK с хостом сервера API. Асинхронные приложения, которые не соблюдают эти принципы дизайна, должны будут полагаться на потоковый доступ к синхронному API управления ресурсами с областью действия, а не пытаться использовать собственный асинхронный API SDK. Python SDK версии 1.5.0 — первая версия с полной поддержкой асинхронного API.

Некоторые примеры являются общими для API удобства для интерактивной работы и синхронного API управления ресурсами с областью действия. Эти примеры указаны как "Python (synchronous API)".

Таймауты в синхронном API

Требуется версия Python SDK: 1.5.0

Начиная с версии Python SDK 1.5.0, синхронный API по умолчанию истекает через 60 секунд без активности при ожидании ответа или уведомления о событии потоковой передачи от сервера API.

Количество секунд ожидания ответов и уведомлений о событиях можно настроить с помощью функции lmstudio.set_sync_api_timeout(). Установка таймаута в None полностью отключает таймаут (восстанавливая поведение предыдущих версий SDK).

Текущий таймаут синхронного API можно запросить с помощью функции lmstudio.get_sync_api_timeout().

Таймауты в асинхронном API

Требуется версия Python SDK: 1.5.0

Поскольку асинхронные корутины поддерживают отмену, в асинхронном API не реализована специальная поддержка таймаутов. Вместо этого следует использовать механизмы асинхронного таймаута общего назначения, такие как asyncio.wait_for() или anyio.move_on_after().

Дополнительные ресурсы

TypeScript SDK (lmstudio-js)

Используйте lmstudio-js в приложениях Node.js или TypeScript для локальных рабочих процессов с моделями

CLI (lms)

Используйте lms для чата, загрузки моделей, управления демоном, контроля сервера и публикации



Оригинал страницы