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?

LM Studio の新バージョン(0.4.0)の新機能の 1つ「stateful な新しい REST API エンドポイント」を curl で試す

Last updated at Posted at 2026-01-30

はじめに

この記事の内容は、直近でリリースされたばかりの LM Studio の新バージョン(0.4.0)に関する話です。

●Introducing LM Studio 0.4.0 | LM Studio Blog
 https://lmstudio.ai/blog/0.4.0

image.png

stateful な新しい REST API エンドポイント

この新バージョンでは、以下の公式のポストでも書かれているように、複数の新機能がリリースされています。

この記事では、その中の 1つの「stateful な新しい REST API エンドポイント」を試してみます。

image.png

LM Studio の API には OpenAI互換の API がありますが、今回の話はそちらの API ではない、LM Studio の REST API のほうの話になります。LM Studio の REST API で、過去のやりとりを引き継ぐ機能が手軽に使えるようになったという話のようです。

OpenAI互換の API のほうの話

OpenAI互換の API のほうは、2025年の10月に OpenAI の Responses API に対応したエンドポイントが実装されていました。OpenAI互換の API のほうでは、その Responses API に対応したエンドポイントを使えば、過去のやりとりを引き継いだチャットの実装を手軽な方法で行えていたかと思います。

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

2026-01-31_01-03-22.jpg

ちなみに、OpenAI の Responses API に対応したエンドポイントは、以下の赤線で示したものです。

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

2026-01-31_01-04-40.jpg

さっそく試してみる

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

Stateful なチャットについて

関連する公式ドキュメントのページは、以下などがあるようです。

●Stateful Chats | LM Studio Docs
 https://lmstudio.ai/docs/developer/rest/stateful-chats

2026-01-30_21-05-56.jpg

上記のページに書かれている説明を見ると、「/api/v1/chat のエンドポイント」は「デフォルトで Stateful」となるようです。

この機能により、クライアント側からチャットリクエストを送信すると、LM Studio は会話を保存しつつ、クライアントへのレスポンス内で「response_id」を返します。そして、クライアント側からの後続のリクエストに、この response_id を使用することで会話を継続できるようです。

それを実際に確かめてみます。

試した内容

今回は、公式ページに書かれた curl を使った手順で試してみます。

今回の内容を試すにあたり、LM Studio でローカルサーバーを起動し、適当なモデルを読み込んでおきます。モデルに関して、以下では openai/gpt-oss-20b を使いました。

1回目のリクエスト

1回目のリクエストの内容は、以下のとおりです。内容は、公式ドキュメントの例を元に作りました。

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

これを実行したところ、以下のとおりの返答が返ってきました。LM Studio からのテキストの返答と合わせて、「response_id」として、「resp_」で始まる文字列が返ってきています。

2026-01-30_21-15-42.jpg

2回目のリクエスト

先ほどのレスポンスに含まれていた「response_id」を使い、2回目のリクエストを送ってみます。リクエストの内容は、また公式ドキュメントの例を元に作りました。

curl http://localhost:1234/api/v1/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "input": "先ほど私が話していた色は?",
    "previous_response_id": "【先ほどの「response_id」】"
  }'

これを実行した結果は、以下のとおりです。想定どおり、先ほどの会話の内容を踏まえた回答が得られました。

2026-01-30_21-19-01.jpg

最後のお試しで、「response_id」を含めないで 2回目のリクエストの文章を送ってみました。この場合は、以前のやりとりの内容を踏まえた回答はできないはずです。

それを試したところ、以下のように「残念ながら、前のやり取りを記憶しているわけではないので...」という返答になりました。

2026-01-30_21-23-56.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?