1
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?

ミニPC「GMKtec EVO-X2」でローカルLLM: LM Studio の OpenAI互換のAPI + gpt-oss-120b を利用【Node.js】

Last updated at Posted at 2025-10-20

はじめに

以前からローカルLLM を色々と試してみて、そして Qiita の記事を書いてきた中で、LM Studio を使ったお試しも色々とやってみていました。

●「lm studio user:youtoy」の検索結果 - Qiita
https://qiita.com/search?q=lm%20studio%20user%3Ayoutoy&sort=created

今回の内容

今回の記事は、その流れの中で書いた記事の中の、以下を組み合わせたようなものになります。

●LM Studio の OpenAI互換のAPI でローカルLLM でのストリーミングの軽いお試し(M4 MacBook Air を利用)【Node.js】 - Qiita
https://qiita.com/youtoy/items/4d3fdcda979f6778016b

●ミニPC「GMKtec EVO-X2」でローカルLLM: LM Studio で ROCm llama.cpp(Windows)+ gpt-oss-120b を利用【Ryzen AI Max+ 395・メモリ128GB搭載の PC】 - Qiita
https://qiita.com/youtoy/items/b6b376cae88b11e11100

M4 の Mac で試した時と変わりはないだろうとは思いつつ、以下の EVO-X2 での API利用を試してみます。

サクッと試してみる

それでは、サクッと試していきます。

LM Studio でサーバーを立ち上げる

以下の内容に進む前に、LM Studio でサーバーを立ち上げておきます。

そのやり方は、過去にいくつかの記事で書いていたり、検索すると説明が書かれた記事が色々出てくると思うので、詳細は省略します。

自分が書いた記事の例だと、「Vercel の AI SDK と LM Studio を使ったローカルLLM を組み合わせて試す【Node.js】」という記事内の「LM Studio の準備」という項目の部分になります。

ブラウザ で動作確認

LM Studio のサーバーのサーバーを立ち上げた後、とりあえず、ブラウザで LM Studio のサーバーにアクセスできるかどうかを確認して、動作確認を行ってみます。

LM Studio上では、アクセス用の URL として以下の情報を見ることができます。

スクリーンショット 2025-10-20 021131.png

スクリーンショット 2025-10-20 021039.png

これらの内容から、 http://localhost:1234/v1/models にブラウザでアクセス(この URL に GETメソッドでアクセス)してみて、モデルに関する情報が得られれば OK ということになりそうです。

動作確認の結果

動作確認の結果は以下の通りで、無事に LM Studio のサーバーは立ち上がっていそうです。

スクリーンショット 2025-10-20 021353.png

Node.js での API を使ったやりとり

Node.js のパッケージのインストール

今回、LM Studio の OpenAI互換の API を使うので、以下の OpenAI公式のパッケージを使った処理もできます。

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

以下のコマンドで、上記のパッケージをインストールします。

npm i openai

お試し用のコードと実行結果【その1】

以下などを見つつ、お試し用のコードを準備してみます。

●API Reference - OpenAI API
https://platform.openai.com/docs/api-reference/responses

●Node.js で OpenAI の 新API(Responses API)をシンプルに試す - Qiita
https://qiita.com/youtoy/items/12749481635230fae586

具体的には、以下の内容を用意しました。

import OpenAI from "openai";

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

const response = await client.responses.create({
  model: "model-identifier",
  input: "あなたは誰?",
  reasoning: { "effort": "low" }
});

console.log(response.output_text);

今回の場合は apiKey・model は空の文字列でも動作しますが、よく上記のような内容にするようなので、それに習った処理にしています。上記を実行した結果、以下のようなレスポンスを得ることができました。

2025-10-20_02-27-03.jpg

お試し用のコードと実行結果【その2】

次に、ストリーミングを使った処理を試してみます。具体的には、コードの中で stream: true を指定して、出力部分をストリーミング用のものに少し変えてやります。

それと今回は、apiKey・model を空の文字列にして試してみることにしました。以下が準備したコードの内容です。

import OpenAI from "openai";

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

const input = "あなたは誰?";

const stream = await client.responses.create({
  model: "",
  input,
  reasoning: { "effort": "low" },
  stream: true,
});

console.log(`\nプロンプト: ${input}\n`);

for await (const event of stream) {
  if (event.type === "response.output_text.delta") {
    const chunk = event.delta;
    if (chunk && chunk.trim() !== "") {
      process.stdout.write(chunk);
    }
  }
}
process.stdout.write("\n");

これを試した結果は以下のとおりです。画像で結果を掲載しているので先ほどと違いが分からないですが、今回のものは、ストリーミングでの出力になります。

2025-10-20_02-30-48.jpg

おわりに

今回、ミニPC「GMKtec EVO-X2」で LM Studio の OpenAI互換のAPI を使ったローカルLLM を試すことができました。その際、EVO-X2(メモリ 128GB)であれば扱うことが可能な、60GB超(65GBほど)のモデルである gpt-oss-120b を利用しました。

今回はシンプルな出力を試しただけなので、さらに AIエージェントSDK との組み合わせや、今回よりも複雑な処理を試してみられればと思います。

その他のメモ

直近で(今月の上旬に)公式が発表した内容として、以下の「LM Studio の OpenAI の Responses API関連の内容」があり、それをメモとして残しておければと思ったので、リンクの掲載のみという感じですが以下に書いておきます。

●Use OpenAI's Responses API with local models | LM Studio Blog
https://lmstudio.ai/blog/lmstudio-v0.3.29

2025-10-20_02-00-37.jpg

●Responses | LM Studio Docs
https://lmstudio.ai/docs/developer/openai-compat/responses

2025-10-20_02-02-06.jpg

1
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
1
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?