删除模型接口用于从本地删除不需要的模型,释放磁盘空间。
curl -X DELETE http://localhost:11434/api/delete -d '{
"name": "my-model"
}'
成功时返回 200 状态码,无响应体。
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| name | string | 是 | 要删除的模型名称 |
import requests
def delete_model(model_name):
response = requests.delete(
"http://localhost:11434/api/delete",
json={"name": model_name}
)
if response.status_code == 200:
print(f"模型 {model_name} 已删除")
else:
error = response.json().get("error", "未知错误")
print(f"删除失败: {error}")
delete_model("my-model")
def delete_with_confirm(model_name):
models = requests.get("http://localhost:11434/api/tags").json()["models"]
model_info = None
for m in models:
if m["name"] == model_name or m["name"].startswith(model_name + ":"):
model_info = m
break
if not model_info:
print(f"模型 {model_name} 不存在")
return
size_gb = model_info["size"] / (1024 ** 3)
print(f"即将删除: {model_info['name']}")
print(f"大小: {size_gb:.2f} GB")
confirm = input("确认删除?(y/n): ")
if confirm.lower() == "y":
delete_model(model_info["name"])
delete_with_confirm("my-model")
async function deleteModel(modelName) {
const response = await fetch('http://localhost:11434/api/delete', {
method: 'DELETE',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: modelName })
});
if (response.ok) {
console.log(`模型 ${modelName} 已删除`);
} else {
const error = await response.json();
console.error(`删除失败:`, error.error);
}
}
await deleteModel('my-model');
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type DeleteRequest struct {
Name string `json:"name"`
}
func deleteModel(modelName string) error {
req := DeleteRequest{Name: modelName}
body, _ := json.Marshal(req)
httpReq, _ := http.NewRequest(
"DELETE",
"http://localhost:11434/api/delete",
bytes.NewReader(body),
)
httpReq.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(httpReq)
if err != nil {
return err
}
defer resp.Body.Close()
if resp.StatusCode == 200 {
fmt.Printf("模型 %s 已删除\n", modelName)
}
return nil
}
func main() {
deleteModel("my-model")
}
def cleanup_old_versions(model_name, keep_latest=True):
models = requests.get("http://localhost:11434/api/tags").json()["models"]
versions = []
for m in models:
name = m["name"]
if name.startswith(model_name + ":"):
tag = name.split(":")[1]
if tag != "latest" or not keep_latest:
versions.append(name)
for version in versions:
print(f"删除: {version}")
delete_model(version)
print(f"已清理 {len(versions)} 个旧版本")
cleanup_old_versions("llama3.2")
def cleanup_large_models(max_size_gb=5):
models = requests.get("http://localhost:11434/api/tags").json()["models"]
for m in models:
size_gb = m["size"] / (1024 ** 3)
if size_gb > max_size_gb:
print(f"{m['name']}: {size_gb:.2f} GB")
confirm = input("删除以上模型?(y/n): ")
if confirm.lower() == "y":
for m in models:
size_gb = m["size"] / (1024 ** 3)
if size_gb > max_size_gb:
delete_model(m["name"])
cleanup_large_models(5)
def clear_all_models():
models = requests.get("http://localhost:11434/api/tags").json()["models"]
print(f"共有 {len(models)} 个模型")
total_size = sum(m["size"] for m in models) / (1024 ** 3)
print(f"总大小: {total_size:.2f} GB")
confirm = input("确认删除所有模型?(yes/no): ")
if confirm.lower() == "yes":
for m in models:
delete_model(m["name"])
print("所有模型已删除")
clear_all_models()