Skip to Content

DMR REST API

Model Runner を有効化すると、新しい API エンドポイントが利用可能になります。 これらのエンドポイントを使って、プログラムからモデルとやり取りできます。

ベース URL の確認

利用するエンドポイントのベース URL は、Docker の実行環境によって異なります。

  • コンテナからアクセス: http://model-runner.docker.internal/
  • ホストプロセスからアクセス: http://localhost:12434/(デフォルトポート 12434 で TCP ホストアクセスが有効な場合)

利用可能な DMR エンドポイント

  • モデルを作成:

    POST /models/create
  • モデル一覧の取得:

    GET /models
  • モデルを取得:

    GET /models/{namespace}/{name}
  • ローカルモデルを削除:

    DELETE /models/{namespace}/{name}

利用可能な OpenAPI エンドポイント

DMR は以下の OpenAPI エンドポイントをサポートしています:

Unix ソケット(/var/run/docker.sock)経由でこれらのエンドポイントを呼び出す場合は、 パスの先頭に /exp/vDD4.40 を付与してください。

Note

パスから llama.cpp を省略することも可能です。 例: POST /engines/v1/chat/completions

REST API の使用例

コンテナ内からリクエストする

curl を使ってコンテナ内から chat/completions の OpenAI エンドポイントを呼び出す例:

#!/bin/sh curl http://model-runner.docker.internal/engines/llama.cpp/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ai/smollm2", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Please write 500 words about the fall of Rome." } ] }'

ホストから TCP を使ってリクエストする

ホストから TCP 経由で chat/completions エンドポイントを呼び出す手順:

  1. Docker Desktop GUI もしくは Docker Desktop CLI  でホスト側 TCP サポートを有効化します。

    例:

    docker desktop enable model-runner --tcp <port>

    Windows を利用している場合は、GPU 推論サポートも有効化してください。 詳細は Docker Model Runner を有効化する を参照してください。

  2. 前のセクションで説明したように、localhost と指定ポートを使ってリクエストします。

    #!/bin/sh curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ai/smollm2", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Please write 500 words about the fall of Rome." } ] }'

ホストから Unix ソケットを使ってリクエストする

ホストから Docker ソケット経由で chat/completions エンドポイントを呼び出す例:

#!/bin/sh curl --unix-socket $HOME/.docker/run/docker.sock \ localhost/exp/vDD4.40/engines/llama.cpp/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ai/smollm2", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Please write 500 words about the fall of Rome." } ] }'
Last updated on