Ollama API 查看模型详情
POST /api/show 返回模型的元信息:参数配置、支持的能力、思考档位、架构细节。它是「这个模型能做什么」的权威来源——比看文档猜更可靠。
版本基线 v0.40.12,官方
docs.ollama.com/api-reference/show-model-details。
一、调用
curl http://localhost:11434/api/show -d '{
"model": "gemma4"
}'
二、最该关注的字段:capabilities
这是接入工具前的必查项:
"capabilities": ["completion", "thinking", "vision"]
| 能力值 | 含义 |
|---|---|
completion |
基础文本生成 |
thinking |
支持思考输出 |
vision |
支持图像输入 |
tools |
支持工具调用 |
embedding |
支持嵌入 |
decision |
支持 System One 判断 |
模型没有 tools,工具调用就一定不work。编码代理接不上、工具不触发,第一个要查的就是这里。
三、thinking 档位
"thinking": {
"values": [false, true],
"default": true
}
values 是该模型接受的全部取值,default 是默认值。
有些模型支持命名档位(如 "low"、"high"),此时 values 会是字符串数组。调用时 think 字段传的值必须和这里完全一致,否则回落到默认。
没有思考元数据的模型不会返回这个字段。
四、其他响应字段
| 字段 | 说明 |
|---|---|
parameters |
参数配置,以文本形式返回(如 "temperature 0.7\nnum_ctx 2048") |
license |
许可证全文 |
modified_at |
最后修改时间 |
template |
提示词模板 |
renderer |
生效的对话渲染器(别名已解析) |
parser |
配置的输出解析器 |
template_source |
提示词的实际来源 |
details |
高层信息(格式、家族、参数量、量化等级) |
model_info |
底层架构参数(注意力头数、层数、rope 配置等) |
template_source 的取值
这个字段解释模型到底怎么渲染提示词:
| 值 | 含义 |
|---|---|
renderer_parser |
渲染器 + 解析器组合 |
renderer |
用 Go 渲染器 |
parser |
用 Go 解析器,打包的模板不生效 |
harmony |
Harmony 格式 |
go_template |
Go 模板 |
gguf_chat_template |
用 GGUF 内嵌的 jinja 模板 |
none |
无 |
排查「为什么输出格式不对」时这个字段很有用——如果 template_source 是 parser,那你改 Modelfile 里的 TEMPLATE 是无效的。
verbose 参数
curl http://localhost:11434/api/show -d '{
"model": "gemma4",
"verbose": true
}'
verbose: true 会返回大体积字段(完整的 model_info、tokenizer 配置等)。默认不开是因为 model_info 可能有上百个键。
五、model_info 里值得看的几项
"model_info": {
"gemma4.context_length": 131072,
"gemma4.block_count": 42,
"gemma4.embedding_length": 2560,
"gemma4.attention.head_count": 8,
"gemma4.attention.head_count_kv": 2,
...
}
| 键 | 用途 |
|---|---|
*.context_length |
模型支持的最大上下文——判断能不能跑 64k 任务 |
*.block_count |
层数,影响显存估算 |
*.attention.head_count_kv |
KV 头数,直接决定 KV 缓存大小 |
*.embedding_length |
隐藏维度 |
context_length: 131072 表示这个模型理论上支持 128k 上下文——但实际能用多少还取决于显存。运行时真实分配值看 /api/ps 的 context_length。
六、Python 示例
import requests
info = requests.post("http://localhost:11434/api/show", json={"model": "gemma4"}).json()
print("能力:", info.get("capabilities"))
print("参数:", info.get("parameters", "").replace("\n", " | "))
print("量化:", info["details"]["quantization_level"])
print("参数量:", info["details"]["parameter_size"])
## 找上下文长度(键名带模型前缀,需模糊匹配)
for k, v in info.get("model_info", {}).items():
if k.endswith(".context_length"):
print(f"最大上下文: {v}")
break
## 思考档位
t = info.get("thinking")
if t:
print(f"思考档位: {t['values']} 默认: {t['default']}")
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 404 | 模型不存在 | ollama list 核对名字 |
没有 capabilities |
版本太旧 | 升级 Ollama |
| 想看的架构参数缺失 | 未开 verbose |
加 "verbose": true |
| 能力列表没有 tools | 该模型确实不支持 | 换模型,别硬试 |
| 改了 TEMPLATE 无效 | template_source 是 parser |
改 renderer/parser 配置 |
动手试
## ① 查能力(接任何工具前先跑这个)
curl -s http://localhost:11434/api/show -d '{"model":"gemma4"}' | python -c "
import sys,json
d=json.load(sys.stdin)
print('能力:', d.get('capabilities'))
print('最大上下文:', [v for k,v in d.get('model_info',{}).items() if k.endswith('.context_length')])"
## ② 看参数配置
curl -s http://localhost:11434/api/show -d '{"model":"gemma4"}' | python -c "
import sys,json;print(json.load(sys.stdin).get('parameters'))"
第一条返回的 capabilities 决定了这个模型能接哪些工具。

TRAE-AI编程


更多建议: