トランスポートとデプロイ

2.1 既定のデプロイ

サービスは既定でループバックアドレス 127.0.0.1 と ::1 で待ち受けなければならない。慣例のポートは 17832 で、既定のベースアドレスは http://127.0.0.1:17832 となる。

項目 値
待ち受けアドレス 127.0.0.1 と ::1
トランスポート JSON を運ぶ HTTP/1.1 または HTTP/2
ストリーミング サーバー送信イベント。Content-Type: text/event-stream
コアインターフェースのプレフィックス /lmsp/v1
OpenAI 互換のプレフィックス /v1
サービス記述 GET /.well-known/lmsp.json
機械可読な契約 GET /lmsp/v1/openapi.json
任意のローカルチャネル Unix ドメインソケットまたは Windows 名前付きパイプ

リクエストとレスポンスは UTF-8 の JSON(Content-Type: application/json)を使う。ただし、ストリーム(text/event-stream)とエラー(application/problem+json)は除く。タイムスタンプは整数で、Unix エポックからの秒数とする。識別子は不透明な文字列であり、resp_ や task_ のような型プレフィックスを付けることを推奨する。

インターフェース契約は OpenAPI 3.2 ドキュメントである。OpenAPI 3.2 はサーバー送信イベント、JSON Lines、JSON Sequences を記述できるため、ストリーミングエンドポイントも他のエンドポイントと同じドキュメントで規定される。このバージョンの契約は /lmsp/1.0/openapi.json で公開されている。

サービスは、同じ HTTP セマンティクスで Unix ドメインソケットや Windows 名前付きパイプによる接続を受け付けてもよい。1.0 では、そのようなエンドポイントをどう通知するかは拡張に委ねられる。

2.2 常時稼働

サービスは OS によってホストされるべきである。macOS では launchd、Linux では systemd、Windows では Windows サービスマネージャーを使う。

サービスのプロセスとモデルのプロセスは分離されるべきである。モデルのクラッシュは、そのモデルを使うタスクだけに影響するべきである。サービス発見、モデルカタログ、過去のタスクへの問い合わせを利用不能にするべきではない。