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