DMR REST API

一旦啟用了 Model Runner,新的 API 端點就會可用。您可以使用這些端點以程式設計方式與模型進行互動。

決定基礎 URL

與端點互動的基礎 URL 取決於您執行 Docker 的方式

  • 從容器內部:http://model-runner.docker.internal/
  • 從主機程序:https://:12434/,假設預設連接埠 (12434) 已啟用 TCP 主機存取。
  • 從容器內部:http://172.17.0.1:12434/(其中 172.17.0.1 代表主機閘道位址)
  • 從主機程序:https://:12434/
注意

172.17.0.1 介面預設可能無法供 Compose 專案中的容器存取。在此情況下,請將 extra_hosts 指令新增至您的 Compose 服務 YAML 中

extra_hosts:
  - "model-runner.docker.internal:host-gateway"

之後,您就可以透過 http://model-runner.docker.internal:12434/ 存取 Docker Model Runner API

可用的 DMR 端點

  • 建立模型

    POST /models/create
  • 列出模型

    GET /models
  • 取得模型

    GET /models/{namespace}/{name}
  • 刪除本機模型

    DELETE /models/{namespace}/{name}

可用的 OpenAPI 端點

DMR 支援以下 OpenAPI 端點

若要透過 Unix socket (/var/run/docker.sock) 呼叫這些端點,請在其路徑前加上 /exp/vDD4.40

注意

您可以從路徑中省略 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 OpenAI 端點

  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 https://: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 socket 從主機請求

若要從主機使用 curl 透過 Docker socket 呼叫 chat/completions OpenAI 端點

#!/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."
            }
        ]
    }'
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.