DMR REST API
Model Runner を有効化すると、新しい API エンドポイントが利用可能になります。 これらのエンドポイントを使って、プログラムからモデルとやり取りできます。
ベース URL の確認
利用するエンドポイントのベース URL は、Docker の実行環境によって異なります。
Docker Desktop
- コンテナからアクセス: 
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 エンドポイントをサポートしています:
- 
GET /engines/llama.cpp/v1/models - 
GET /engines/llama.cpp/v1/models/{namespace}/{name} - 
POST /engines/llama.cpp/v1/chat/completions - 
POST /engines/llama.cpp/v1/completions - 
POST /engines/llama.cpp/v1/embeddings 
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 エンドポイントを呼び出す手順:
- 
Docker Desktop GUI もしくは Docker Desktop CLI でホスト側 TCP サポートを有効化します。
例:
docker desktop enable model-runner --tcp <port>Windows を利用している場合は、GPU 推論サポートも有効化してください。 詳細は Docker Model Runner を有効化する を参照してください。
 - 
前のセクションで説明したように、
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