模型目錄
- 規範性
- 草案 1.0
- 更新於
- 檢視 Markdown
5.1 取得模型列表
GET /lmsp/v1/models?capability=chat&ready_only=false
Authorization: Bearer <token>
| 查詢引數 | 含義 |
|---|---|
capability |
只回傳具備指定能力的模型,例如 chat、embeddings 或 tools。 |
ready_only |
為 true 時只回傳 status 為 ready 的模型,預設為 false。 |
{
"object": "list",
"catalog_revision": "42",
"data": [
{
"id": "qwen3:14b-q4_k_m",
"object": "model",
"display_name": "Qwen3 14B Q4_K_M",
"owned_by": "local",
"family": "qwen3",
"revision": "sha256:8f27c1a4e9b05d36f2a7c8e1b4d90a63c5e2f7b8a1d4c9e60b3f5a7d2c8e1b04",
"status": "ready",
"capabilities": {
"chat": true,
"completion": true,
"embeddings": false,
"tools": true,
"vision": false,
"structured_output": true,
"streaming": true
},
"input_modalities": ["text"],
"output_modalities": ["text"],
"context_window": 32768,
"max_output_tokens": 8192,
"runtime": {
"backend": "llama.cpp",
"device": "metal",
"load_on_demand": true
}
}
]
}
為避免客戶端反覆擷取完整目錄,服務應回傳 ETag 回應標頭、catalog_revision 欄位,或兩者都回傳:
catalog_revision是不透明字串,目錄每次變化時都會改變。- 傳送
ETag的服務應對匹配的If-None-Match回傳304 Not Modified。
5.2 模型物件
| 欄位 | 含義 |
|---|---|
id |
穩定的模型識別碼,所有指明模型的請求都使用它。 |
object |
始終為 "model"。 |
display_name |
便於閱讀的名稱,使用者可以修改。 |
aliases |
可選的別名列表,僅供參考。 |
owned_by |
模型的來源。安裝在本裝置上的模型為 local。 |
family |
模型家族,例如 qwen3。 |
revision |
模型內容的摘要,例如 sha256:8f27...。 |
status |
生命週期狀態(第 5.3 節)。 |
capabilities |
布林旗標:chat、completion、embeddings、tools、vision、structured_output 和 streaming。 |
input_modalities、output_modalities |
模型讀取和寫入的內容型別。1.0 只定義了 text。 |
context_window |
上下文的最大 token 數。 |
max_output_tokens |
單次回應的最大 token 數。 |
runtime |
backend(例如 llama.cpp)、device(例如 metal)和 load_on_demand。 |
error |
status 為 error 時存在,是一個 problem 物件(第 9.3 節)。 |
模型 id 必須穩定。顯示名和別名可由使用者修改,因此不得用作主鍵。
5.3 模型生命週期
installed --> loading --> ready --> unloading --> installed
|
+-----> error
| 狀態 | 含義 |
|---|---|
installed |
模型已存在,但未載入。 |
loading |
正在分配記憶體或初始化執行環境。 |
ready |
可立即處理請求。 |
unloading |
正在釋放資源。 |
error |
載入失敗。模型物件應附帶結構化錯誤。 |
對處於 error 狀態的模型再次發起載入請求,會使其回到 loading。
當請求指定的模型處於 installed 狀態且其 runtime.load_on_demand 為 true 時,服務會在處理請求的過程中載入它。如果模型無法立即使用且不會按需載入,服務回傳 409 和 model_not_ready。載入失敗時,錯誤碼為 model_load_failed。
5.4 模型操作
GET /lmsp/v1/models/{model_id} 回傳單個模型物件。未知的 id 回傳 404 和 model_not_found。
兩個可選介面用於顯式控制載入。它們在 model_management 能力為 true 時可用,並要求 models:manage 許可權範圍(第 10.3 節):
| 介面 | 行為 |
|---|---|
POST /lmsp/v1/models/{model_id}/load |
預載入模型。載入已開始時回傳模型物件和 202 Accepted,模型已經是 ready 時回傳 200。 |
POST /lmsp/v1/models/{model_id}/unload |
解除安裝模型,回傳模型物件。重複請求無害。 |
兩者都接受 Idempotency-Key(第 9.2 節)。