改进ollama结构化输出;2.ollama框架原生接口与openAI SDK的概括;type[BaseModel]与BaseModel;ollama强束缚结构化输出与OpenAI的结构化输出;type[BaseModel]与BaseModel
1.改进ollama结构化输出
✅Ollama 现在支持结构化输出
可以将模型的输出限制为 JSON 模式定义的特定格式。
Ollama 的 Python 和 JavaScript 库已更新,以支持结构化输出。
结构化输出的应用场景包括:
从文档中解析数据
从图像中提取数据
构建所有语言模型响应
比 JSON 模式更可靠、更一致
2.ollama框架原生接口与openAI SDK的概括
SDK(Software Development Kit)= 官方或社区提供的一套“现成工具 + 规范封装”
“把大模型跑起来,并通过 HTTP/API 提供服务”的工具,ollama就属于其中一种框架;
OpenAI 兼容性 = 行业事实标准
当ollama后端调用现在的写法是requests.post(...)
✅ ollama自身调用模型写的API
同样的调用Ollama 原生接口与OpenAI SDK的两种不同写法:
如果你不用 OpenAI SDK,而用 Ollama 原生接口,其实等价于:
POST /api/chat
例如(示意):
{
"model": "qwen2.5vl:7b",
"messages": [
{ "role": "user", "content": "..." }
],
"stream": false
}
✅ 用OpenAI标准写的模型调用API
client = OpenAI(
base_url="http://localhost:8001/v1",
api_key="ollama"
)
resp = client.chat.completions.create(...)
参考文档:
https://docs.ollama.com/capabilities/thinking#python
3.ollama强束缚结构化输出与OpenAI的结构化输出
(1)ollama强束缚,对提示词有要求,不然会卡死,在模型层面对输出做要求。
(2)为什么 OpenAI 的 Structured Outputs 不会这样?
这是非常关键的区别 👇
OpenAI Structured Outputs(Responses API),不是靠模型“硬想JSON”,是先生成结构化token,再在系统层保证合法性
4.type[BaseModel]与BaseModel
BaseModel 表示“一个对象(实例)”
Type[BaseModel] 表示“一个类(模型本身),是一个类引用,并不会实例化”
浙公网安备 33010602011771号