本ドキュメントは、LM Studio APIの概要と使用方法を日本語でまとめたものです。
LM Studioは、ローカル環境で大規模言語モデル(LLM)を実行するためのソフトウェアです。OpenAI互換のAPIサーバーを提供し、様々なオープンソースモデルをローカルで実行できます。
- ローカルLLM実行: GPUを使用してローカルでモデルを実行
- OpenAI互換API: OpenAI APIと互換性のあるエンドポイントを提供
- モデル管理: 様々なオープンソースモデルのダウンロードと管理
- ストリーミング応答: リアルタイムでの応答取得
LM Studioのllm.respondメソッドを使用して、チャット会話に対する補完を生成します。
モデルハンドルを取得し、respondメソッドにプロンプトを渡すことで、AIからの応答を得ることができます。
respond_streamメソッドを使用すると、応答全体を待たずにテキストフラグメントを受信しながら表示できます。
トップレベルのllm便利APIまたはスコープリソースAPIのllmネームスペースのmodelメソッドを使用してモデルハンドルを取得します。
特定のモデル(例:qwen2.5-7b-instruct)を使用する場合は、モデル名を引数として指定します。
モデルへの入力は「コンテキスト」と呼ばれます。概念的には、モデルはマルチターンの会話を入力として受け取り、その会話でのアシスタントの応答を予測するよう求められます。
初期システムプロンプトを指定してChatオブジェクトを作成し、ユーザーメッセージやアシスタントメッセージを追加してコンテキストを構築します。
respondメソッドを使用して、チャットコンテキストに対する次の応答を予測させます。
respond_streamメソッドを使用すると、応答をリアルタイムで受信できます。
respondメソッドのconfigキーワードパラメータを通じて推論パラメータを渡すことができます。
- temperature: 出力のランダム性を制御(0.0〜1.0)
- maxTokens: 生成する最大トークン数
予測結果から以下のメタデータを取得できます:
- model_info.display_name: 生成に使用されたモデル
- stats.predicted_tokens_count: 生成されたトークン数
- stats.time_to_first_token_sec: 最初のトークンまでの時間(秒)
- stats.stop_reason: 停止理由
対話的なチャットボットを実装するには、会話履歴を管理しながらユーザー入力を処理し、モデルの応答を取得します。
- モデルハンドルを取得
- システムプロンプトを設定したChatオブジェクトを作成
- ユーザー入力を受け取りチャットに追加
- respond_streamで応答を取得
- 応答をチャットに追加
- 繰り返し
本プロジェクトのLMStudioClientクラスでは、LM StudioのOpenAI互換APIを使用してLLMとの対話を行います。
config.yamlのllm.lmstudioセクションで以下を設定します:
- base_url: LM StudioサーバーのURL(デフォルト:localhost:1234)
- model: 使用するモデル
- context_length: コンテキスト長
- LM Studioアプリケーションを起動
- 使用するモデルをロード
- サーバーを開始(デフォルトポート:1234)
- config.yamlでllm.providerをlmstudioに設定
参照元: LM Studio公式ドキュメント(https://lmstudio.ai/docs)