Ollama API 删除模型

2026-10-29 19:01 更新

DELETE /api/delete 删除本地模型,等价于 ollama rm。

版本基线 v0.40.12,官方 docs.ollama.com/api/delete。⚠️ 只能走本地服务。

一、调用

注意是 DELETE 方法,不是 POST:

curl -X DELETE http://localhost:11434/api/delete -d '{
  "model": "gemma4"
}'

成功返回 HTTP 200,无响应体。

二、请求字段

字段 类型 必填 说明
model string 是 要删除的模型名

就这一个字段。

三、Python 示例

import requests

def delete_model(name):
    r = requests.delete("http://localhost:11434/api/delete", json={"model": name})
    if r.status_code == 200:
        print(f"已删除 {name}")
    else:
        print(f"失败 {r.status_code}: {r.text}")

delete_model("gemma4-backup")

四、删除的边界

情况 结果
删除一个被 cp 复制出来的名字 只删这个别名,其他别名仍可用
删除最后一个指向某内容的别名 底层权重文件被真正回收
模型正在加载/使用中 会先卸载再删除
删除不存在的模型 返回 404

第二行是关键:多个名字共享同一份权重时,删到最后一个才释放磁盘。这是它在实现上带引用计数的结果。

五、批量清理思路

import requests

API = "http://localhost:11434"

models = requests.get(f"{API}/api/tags").json()["models"]

## 策略:删除所有 30 天未修改的模型
from datetime import datetime, timedelta, timezone
cutoff = datetime.now(timezone.utc) - timedelta(days=30)

for m in models:
    mt = datetime.fromisoformat(m["modified_at"])
    if mt < cutoff:
        print(f"删除 {m['name']}({m['modified_at']},{m['size']/1e9:.1f} GB)")
        requests.delete(f"{API}/api/delete", json={"model": m["name"]})

⚠️ 跑这类脚本前先打印清单确认。删除是不可逆的,重新拉取要重新下载几十 GB。

六、更安全的做法

想批量清理时,先用交互命令确认:

## 列出并按大小排序,人工挑选
ollama list

或者用 API 只做「候选清单」不执行:

## 只打印不删除
for m in models:
    if m["size"] > 10e9:
        print(f"大模型候选: {m['name']}  {m['size']/1e9:.1f} GB")

常见问题

现象 原因 处理
405 Method Not Allowed 用了 POST 改 -X DELETE
404 模型不存在 ollama list 核对
删完磁盘没释放 还有其他别名指向同一内容 把别名都删掉
云端模型删不掉 云端模型不在本地 无需删除

动手试

## ① 先看有哪些
ollama list

## ② 删一个备份
curl -X DELETE http://localhost:11434/api/delete -d '{"model":"gemma4-backup"}'

## ③ 确认已消失
curl -s http://localhost:11434/api/tags | python -c "
import sys,json;print([m['name'] for m in json.load(sys.stdin)['models']])"
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号