ドキュメント

lmstudio-python (Python SDK)

LM StudioのPython SDKで始める

lmstudio-python は、LLM、埋め込みモデル、エージェントフローと対話するためのAPIセットを提供します。

SDKのインストール

lmstudio-python はPyPIパッケージとして利用可能です。pipを使ってインストールできます。

pip install lmstudio

ソースコードとオープンソースへの貢献については、GitHubの lmstudio-python を参照してください。

機能

クイック例:Llamaモデルとのチャット

import lmstudio as lms

model = lms.llm("llama-3.2-1b-instruct")
result = model.respond("What is the meaning of life?")

print(result)

ローカルモデルの入手

上記のコードはLlama 3.2 1Bモデルを必要とします。モデルをお持ちでない場合は、ターミナルで次のコマンドを実行してダウンロードしてください。

lms get llama-3.2-1b-instruct

LM StudioのCLIでlms getについて、こちらで詳しく読むことができます。

インタラクティブな利便性、決定論的なリソース管理、または構造化された並行処理?

上記の例で示されているように、LM Studio Python SDKを操作するには3つの異なるアプローチがあります。

1つ目は、インタラクティブな利便性API(例では「Python (convenience API)」と記載)です。これは、デフォルトのLM Studioクライアントインスタンスを使用して、同期PythonプロンプトやJupyter Notebookでの便利な対話に焦点を当てています。

2つ目は、同期スコープ付きリソースAPI(例では「Python (scoped resource API)」と記載)です。これは、コンテキストマネージャーを使用して、割り当てられたリソース(ネットワーク接続など)がプロセス全体が終了するまで開いたままになる可能性に代わって、決定論的に解放されることを保証します。

最後は、非同期構造化並行処理API(例では「Python (asynchronous API)」と記載)です。これは、APIサーバーホストへのSDKの接続を処理するバックグラウンドタスクが正しく管理されるように、「構造化並行処理」の設計原則に従う非同期プログラムでの使用のために設計されています。これらの設計原則に従わない非同期アプリケーションは、SDKネイティブの非同期APIを試みる代わりに、同期スコープ付きリソースAPIのスレッドアクセスに依存する必要があります。Python SDKバージョン1.5.0は、非同期APIを完全にサポートする最初のバージョンです。

インタラクティブな利便性APIと同期スコープ付きリソースAPIの間で共通する例がいくつかあります。これらの例は「Python (synchronous API)」と記載されています。

同期APIでのタイムアウト

必要なPython SDKバージョン: 1.5.0

Python SDKバージョン1.5.0以降、同期APIは、APIサーバーからの応答またはストリーミングイベント通知を待機中に、アクティビティがない場合、デフォルトで60秒後にタイムアウトします。

応答とイベント通知を待機する秒数は、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()のような汎用的な非同期タイムアウトメカニズムを使用する必要があります。

このページのソースはGitHubで利用可能です。