Ollama API 推送模型
2026-10-29 19:01 更新
POST /api/push 把本地模型发布到 ollama.com,等价于 ollama push。
版本基线 v0.40.12,官方
docs.ollama.com/api/push。
一、调用
curl http://localhost:11434/api/push -d '{
"model": "my-username/my-model"
}'
二、请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 是 | 要发布的模型名,必须带用户名 |
insecure |
boolean | 允许通过非安全连接发布 | |
stream |
boolean | 默认 true,流式返回进度 |
三、前置条件(缺一不可)
1. 模型名必须是 用户名/模型名
## 本地模型叫 mymodel,先改名
ollama cp mymodel myuser/mymodel
ollama push myuser/mymodel
用户名就是你在 ollama.com 注册时的那个——它会成为模型标识的一部分。
2. 公钥要添加到账号
到 ollama.com/settings/keys 点 Add Ollama Public Key,把本机公钥内容粘进去。
公钥位置:
| 系统 | 路径 |
|---|---|
| macOS | ~/.ollama/id_ed25519.pub |
| Linux | /usr/share/ollama/.ollama/id_ed25519.pub |
| Windows | C:\Users\<用户名>\.ollama\id_ed25519.pub |
3. 已登录
ollama signin
四、流式响应
默认返回进度流:
{"status":"retrieving manifest"}
{"status":"pushing manifest"}
{"status":"pushing c6eb396dbd59","digest":"sha256:c6eb...","total":9608350245,"completed":1073741824}
{"status":"success"}
字段含义同 /api/pull:total 是当前层大小,completed 是已传字节。
五、Python 示例
import json, requests
def push(model):
with requests.post("http://localhost:11434/api/push",
json={"model": model}, stream=True) as r:
for line in r.iter_lines():
if not line:
continue
c = json.loads(line)
if "error" in c:
raise RuntimeError(c["error"])
if c.get("total"):
pct = c["completed"] / c["total"] * 100
print(f"\r{c['status']:<28} {pct:5.1f}%", end="")
else:
print(f"\r{c['status']:<28}", end="")
if c.get("status") == "success":
print("\n推送完成")
break
push("myuser/mymodel")
六、推送之后
其他人可以这样用:
ollama run myuser/mymodel
模型会出现在你的 ollama.com 主页,可以设为公开或私有。
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 401 | 未登录或公钥未添加 | ollama signin + 上传公钥 |
| 400 | 模型名没带用户名 | ollama cp 改名后重试 |
| 404 | 本地没有该模型 | ollama list 核对 |
| 推送中断 | 网络不稳 | 重新执行,已传的层会跳过 |
| 想更新已推的模型 | 直接重推即可 | 同名覆盖 |
七、和导入配合的完整流程
发布一个自定义模型通常走这条链:
## ① 导入本地权重
ollama create mymodel -f ./Modelfile
## ② 改名(带用户名)
ollama cp mymodel myuser/mymodel
## ③ 推送
ollama push myuser/mymodel
导入的细节见 8.1 Ollama 导入自定义模型。
动手试
## ① 检查公钥是否存在
ls -l ~/.ollama/id_ed25519.pub 2>/dev/null || echo "公钥不存在,需先登录"
## ② 检查登录状态
ollama signin
## ③ 推送(换成你的用户名)
ollama push myuser/mymodel以上内容是否对您有帮助:

TRAE-AI编程


更多建议: