0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LM Studio の直近のバージョン(0.4.0)の新機能の 1つ「認証(APIトークンの利用)」を curl・lmstudio-js・OpenAI互換API で試す

Last updated at Posted at 2026-02-05

はじめに

以下の公式ドキュメントに書かれた「認証(APIトークンの利用)」に関する話の記事です。

●Authentication | LM Studio Docs
 https://lmstudio.ai/docs/developer/core/authentication

2026-01-30_21-26-17.jpg

LM Studio の最新バージョンは以下の 0.4.1 ですが、その 1つ前のバージョンである「0.4.0」でいくつかの新機能が追加されており、認証機能はその中の 1つになります。

2026-02-05_17-54-02.jpg

さっそく試してみる

さっそく試していきます。

LMStudio でのトークンの設定

まずは LM Studio側の設定です。

LM Studio上で、以下の赤矢印で示したメニューをたどっていくと、以下の「Require Authentication」という項目があります。これを ON にします。

2026-02-05_18-00-39.jpg

その次に、先ほどの項目直下にある「Manage Tokens」をクリックします。そうすると以下の画面が出るので、右下にある「Create new token」をクリックして次の画面へ進みます。

2026-02-05_18-02-12.jpg

以下の画面では、(オプションの項目ではありますが)「Name」のところにとりあえず適当な名前を入力して、右下にある「Create token」をクリックしてトークンを作成します。

2026-02-05_18-03-00.jpg

その後に生成されたトークンが表示されるので、それをコピーしておきます。

2026-02-05_18-07-01.jpg

あとは、curl・lmstudio-js を使った手順を進めていきます。

curl で試す

まずは、curl で試します。最初に、以下の記事を書いた時に用いたトークンを含めていないもので試してみます(指定するモデルも、以下と同様のものにしています)。

●LM Studio の新バージョン(0.4.0)の新機能の 1つ「stateful な新しい REST API エンドポイント」を curl で試す - Qiita
 https://qiita.com/youtoy/items/c91c8dafe5fec88e5852

curl http://localhost:1234/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "input": "私の好きな色は青です"
  }'

そうすると、以下のように認証エラーに関するレスポンスが返ってきました。

2026-02-05_18-13-24.jpg

トークンを用いた処理を試す

あらためて、トークンを含む内容で試します。

curl http://localhost:1234/api/v1/chat \
  -H "Authorization: Bearer 【先ほど作成したトークン(環境変数経由で指定する等)】" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "input": "私の好きな色は青です"
  }'

今度は、無事に以下のようにレスポンスを得られました。

2026-02-05_18-18-09.jpg

lmstudio-js(TypeScript SDK)で試す

次に、以下の lmstudio-js(TypeScript SDK)で試してみます。

●lmstudio-js (TypeScript SDK) | LM Studio Docs
 https://lmstudio.ai/docs/typescript

●@lmstudio/sdk - npm
 https://www.npmjs.com/package/@lmstudio/sdk?ref=pkgstats.com

●Authentication | LM Studio Docs
 https://lmstudio.ai/docs/typescript/authentication
2026-01-30_21-32-48.jpg

コードの内容など

npm install @lmstudio/sdk で lmstudio-js をインストールし、以下のコードを実行します。

lmstudio-js を使った場合、トークンを「LM_API_TOKEN」という名前の環境変数で設定しておけば、環境変数からのトークンの読み込み処理を以下のコード内で明示的に書いてなくても、自動的に行ってくれるようです。

試してみた結果、記事執筆時点の自分の環境では、トークンの自動読み込み・コード内での明示的な指定(環境変数経由)の両方を試してみたところ、どちらもエラーが発生していました。以下は、 new LMStudioClient() の中で apiToken を指定した際のエラーです。

2026-02-05_18-36-33.jpg

OpenAI互換API で試す

最後に以下の OpenAI互換API で試してみます。

●OpenAI Compatibility Endpoints | LM Studio Docs
 https://lmstudio.ai/docs/developer/openai-compat

そのコードで以下のパッケージを使うと楽に書けるので、 npm i openai で以下のパッケージをインストールします。

●openai - npm
 https://www.npmjs.com/package/openai

そして、以下の記事を書いた時に使ったコードをもとに、トークンなしのコードを実行してみます。

●OpenAI互換の API でローカルLLM: Node.js + OpenAI APIライブラリで LM Studio のモデル指定・切り替え - Qiita
 https://qiita.com/youtoy/items/8f24beae2a43df5732a4

具体的なコードは以下で、エラーが返ってくる想定です。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:1234/v1",
  apiKey: "",
});

const response = await client.responses.create({
  model: "openai/gpt-oss-20b",
  input: "あなたは誰?",
});

console.log(response.output_text);

上記を実行したところ、以下のように認証エラーが返ってきました。

2026-02-05_18-40-49.jpg

今度は、上記のコードで apiKey: "" としていたところを apiKey: "【先ほど作成したトークン(環境変数経由で指定)】" というトークンを指定した内容にしました(環境変数経由でトークンを使う形にしました)。その結果、以下のとおり無事にレスポンスを得ることができました。

2026-02-05_18-41-44.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?