たねやつの木

Photographs, Keyboards and Programming

【サーバー編】LM Studioで手元のPCをAIサーバーに!ローカルAPI活用術

こんにちは、たねやつです。

これまでの記事で、LM Studioを使ってローカルLLMとチャットする方法や、モデルの設定について解説してきました。 今回は、LM Studioが持つ非常に強力な機能、「ローカルAPIサーバー」に焦点を当てます。この機能を使いこなせば、自作のプログラムや他のツールとローカルLLMを連携させ、AIを活用した独自のワークフローを構築できます!

前の記事

www.taneyats.com

この記事でできること

  • LM Studioのローカルサーバー機能が理解できる
  • ローカルAPIを起動し、テストできるようになる
  • PythonプログラムからローカルLLMを呼び出せるようになる
  • 他のツールとの連携の可能性がわかる

ローカルサーバー機能とは?

LM Studioは、起動しているPCを「OpenAI API互換」のサーバーとして機能させることができます。

これはつまり、ChatGPTのAPIを叩くのと同じ書き方で、自分のPC上で動いているLLMを呼び出せるということです。 これにより、以下のような大きなメリットが生まれます。

  • プライバシー: 外部にデータを送信しないため、機密情報や個人情報を含むタスクも安心して任せられる。
  • コスト: API利用料がかからないため、何度でも無料で試行錯誤できる。
  • オフライン: インターネット接続がなくても、AIを利用したツールを動かせる。

この機能を使えば、まさに「自分だけのAIサーバー」を立ち上げることができるのです。

サーバーの起動と設定

サーバー機能の使い方は非常に簡単です。

  1. 画面左のメニューから、サーバーアイコン (>_) をクリックします。
  2. 画面上部で、APIとして提供したいモデルを選択します。
  3. 左上のStart Server ボタンをクリックします。Status:のトグルボタンです。

ボタンを押すと、サーバーが起動し、ログが表示されます。これで、あなたのPCは http://localhost:1234 でAPIリクエストを待ち受ける状態になりました。

curlでAPIを叩いてみる

サーバーが正しく動作しているか、まずはcurlというコマンドラインツールを使って確認してみましょう。 ターミナル(WindowsならコマンドプロンプトやPowerShell)を開き、以下のコマンドを実行します。以下ワンラインにしておきました。

curl http://localhost:1234/v1/chat/completions -H "Content-Type: application/json" -d '{ "model": "openai/gpt-oss-20b", "messages": [   { "role": "system", "content": "Always answer in rhymes. Today is Thursday" },   { "role": "user", "content": "What day is it today?" } ], "temperature": 0.7, "max_tokens": -1, "stream": false }'

実行すると、AIからの応答がJSON形式で返ってくるはずです。

Pythonから接続する

APIがOpenAI互換であることの最大の利点は、既存のライブラリをそのまま使える点です。ここでは、Pythonのopenaiライブラリを使ってローカルLLMに接続してみます。

まず、ライブラリをインストールします。

pip install openai

そして、以下のようなPythonスクリプトを作成して実行します。

from openai import OpenAI

# LM Studioのローカルサーバーに接続するための設定
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")

completion = client.chat.completions.create(
  model="local-model", # このモデル名は実際には使用されません
  messages=[
    {"role": "system", "content": "あなたは優秀なアシスタントです。"},
    {"role": "user", "content": "自己紹介をしてください。"}
  ],
  temperature=0.7,
)

print(completion.choices[0].message.content)

ポイントは2つです。 - base_url: 通信先をOpenAIのサーバーではなく、LM Studioが立てたローカルサーバーのアドレスに指定します。 - api_key: ローカルサーバーなのでAPIキーは不要です。適当な文字列でOKです。

これを実行すれば、curlの時と同じようにAIからの応答がターミナルに表示されます。

こんにちは!  
私はChatGPT、OpenAIが開発した大規模言語モデルです。  

- **専門性**:自然言語処理(文章生成・要約・翻訳・質問応答など)に特化しています。  
- **学習範囲**:インターネット上の膨大なテキストデータを基に訓練されており、幅広い トピックについて話すことができます。  
- **特徴**:文脈を考慮しながら自然で分かりやすい回答を生成します。また、日本語だけ でなく英語・スペイン語など複数言語も扱えます。  

私の目標は、質問に対して正確で役立つ情報を提供し、会話を楽しくスムーズに進めること です。  
どうぞお気軽に何でも聞いてくださいね!

他のツールとの連携

この仕組みを応用すれば、様々なツールと連携できます。 例えば、ObsidianのプラグインやVSCodeの拡張機能など、OpenAI APIキーを設定できるツールであれば、URLをローカルサーバーのアドレスに変更するだけで、ローカルLLMのパワーを活用できるようになります。

最後に

今回は、LM StudioのローカルAPIサーバー機能について解説しました。 これにより、単にチャットするだけでなく、LLMを自分のアプリケーションやツールに組み込む道が拓けました。アイデア次第で、可能性は無限に広がります。

次回からは実践編として、このローカルAPIを活用して、より具体的なタスクをこなす方法を紹介していきます。

次の記事

www.taneyats.com

www.taneyats.com

www.taneyats.com