ollama v0.35.0发布:决策模型正式上线,接口直接返回选择、概率与评分

发布日期:2026年9月30日

版本号:v0.35.0

核心关键词:决策模型、/v1/systemone、choice、noul、score、概率、评分、模型路由、工单分流、内容分类

Ollama v0.35.0 正式发布。本次更新最值得关注的内容,是新增了对决策模型的支持。

与常见的文本生成模型不同,决策模型并不以输出自然语言文本为主要目标,而是直接返回选择结果、各选项对应的概率以及评分等结构化信息。对于需要快速完成分类、判断、路由和筛选的业务场景来说,这种返回形式更加直接,也更方便程序接收和处理。

在 v0.35.0 中,Ollama 通过 /v1/systemone 接口支持决策模型,该能力基于 TypeSafe 的 Jev API。开发者可以将一段上下文内容连同一个或多个问题发送到接口中,由模型返回结构化决策结果。

除了决策模型能力外,v0.35.0 还包含多项体验与稳定性改进,包括设置页面启动逻辑优化、macOS 更新提示修复、MLX 模型下载卡住问题修复,以及对已弃用参数 typical_p 的兼容处理优化。


一、Ollama v0.35.0 的核心更新:决策模型来了

Ollama v0.35.0 新增了决策模型支持。

决策模型与传统的文本生成模式有明显差异。传统模型通常根据输入内容生成一段文字,输出可能是一句话、一段解释、一个回答,或者较长的文本内容。而决策模型的重点不在于生成文本,而在于针对给定的上下文和问题,返回明确的结构化判断。

它可以返回的内容包括:

  • 选择结果
  • 每个候选选项的概率
  • 置信度
  • 条件成立的概率
  • 基于有序标准得到的评分

这种能力适合用于需要明确结果的数据处理任务,例如工单分流、模型路由、内容分类等。

例如,一条客服工单内容中提到结账出现 500 错误。对于传统文本生成方式,模型可能会输出"这看起来是一个软件错误"之类的文字。对于决策模型来说,返回结果则可以直接是 bug,同时附带账单、软件错误、账号访问等不同标签的概率。

对于程序而言,后者更容易处理。业务系统不需要从一段自然语言中继续提取分类标签,也不需要额外判断模型描述是否明确,而是可以直接读取结构化字段中的选择结果和概率结果。


二、决策模型的接口:/v1/systemone

在 Ollama v0.35.0 中,决策模型通过以下接口提供:

text 复制代码
/v1/systemone

该接口基于 TypeSafe 的 Jev API。

调用时,需要将模型名称、上下文状态内容,以及一个或多个问题一并传入。模型根据传入的状态和问题,输出对应的决策答案。

官方给出的调用示例如下:

bash 复制代码
curl http://localhost:11434/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "nimble",
    "state": "Our checkout has returned 500 errors since 9am.",
    "questions": {
      "label": {
        "type": "choice",
        "instructions": "Which label fits this ticket?",
        "criteria": {
          "billing": "Payments and refunds",
          "bug": "Software errors",
          "account": "Login and account access"
        }
      }
    }
  }'

从这段请求可以看出,接口请求主要由几个部分组成。

首先是 model 字段。

json 复制代码
"model": "nimble"

该字段用于指定当前要调用的决策模型。v0.35.0 提供的可用模型包括 Nimble 和 Tev1。

其次是 state 字段。

json 复制代码
"state": "Our checkout has returned 500 errors since 9am."

这个字段用于传递当前需要分析的上下文信息。在示例中,状态内容描述的是从上午 9 点开始,结账功能持续返回 500 错误。

接下来是 questions 字段。

json 复制代码
"questions": {
  "label": {
    "type": "choice",
    "instructions": "Which label fits this ticket?",
    "criteria": {
      "billing": "Payments and refunds",
      "bug": "Software errors",
      "account": "Login and account access"
    }
  }
}

这里定义了需要模型完成的决策问题。

questions 中可以包含一个或多个问题。示例中定义了一个名为 label 的问题,其问题类型是 choice,目标是让模型在多个工单分类标签中选择最匹配的一项。

可供选择的分类标准包括:

分类标签 分类说明
billing 支付与退款
bug 软件错误
account 登录与账号访问

因为上下文中明确提到了结账返回 500 错误,因此模型需要在这些分类中判断最合适的标签。


三、接口返回结果:选择、概率与置信度

针对前面的请求,接口会返回如下结构化结果:

json 复制代码
{
  "model": "nimble",
  "answers": {
    "label": {
      "type": "choice",
      "choice": "bug",
      "probabilities": {
        "billing": 0.0125,
        "bug": 0.9781,
        "account": 0.0093
      },
      "confidence": 0.8906
    }
  },
  "usage": {
    "input_tokens": 174,
    "output_tokens": 1
  }
}

从返回内容可以看到,模型不仅给出了最终分类,而且给出了每个候选分类的概率。

返回结果中的模型字段如下:

json 复制代码
"model": "nimble"

它表示本次请求所使用的模型为 nimble。

核心结果位于 answers 字段中:

json 复制代码
"answers": {
  "label": {
    ...
  }
}

其中的 label 与请求中定义的问题名称对应。也就是说,请求中定义了名为 label 的问题,返回中也会在 answers.label 中给出这一问题的决策答案。

结果类型为:

json 复制代码
"type": "choice"

这说明本次返回的是一个选择类型的问题结果。

最终选择结果为:

json 复制代码
"choice": "bug"

模型将这条工单归类为 bug,即软件错误。

更重要的是,接口还返回了各个候选项的概率:

json 复制代码
"probabilities": {
  "billing": 0.0125,
  "bug": 0.9781,
  "account": 0.0093
}

从这些数据中可以看到:

标签 概率
billing 0.0125
bug 0.9781
account 0.0093

在三个标签中,bug 的概率为 0.9781,明显高于其他选项。因此,模型最终返回 bug 作为选择结果。

接口还提供了置信度:

json 复制代码
"confidence": 0.8906

该字段表示此次选择结果的置信度为 0.8906。

在使用决策模型时,最终选择结果、候选项概率和置信度可以共同构成完整的结构化判断结果。相比只返回一段说明文字,这种形式能够让调用方直接得到分类结论,同时保留不同候选结果之间的概率差异。

返回内容中还包含使用量信息:

json 复制代码
"usage": {
  "input_tokens": 174,
  "output_tokens": 1
}

其中:

字段 数值
input_tokens 174
output_tokens 1

这说明该请求的输入 token 数为 174,输出 token 数为 1。


四、v0.35.0 提供的决策模型

Ollama v0.35.0 中列出的可用决策模型包括以下两个:

模型 来源
Nimble Bespoke Labs
Tev1 Together AI

其中,Nimble 可以通过以下命令拉取:

bash 复制代码
ollama pull nimble

拉取完成后,可以在 /v1/systemone 接口请求中将模型字段设置为 nimble:

json 复制代码
"model": "nimble"

在官方示例中,正是使用 nimble 对工单内容进行了分类,并返回了 bug 的选择结果、多个分类标签的概率以及置信度。


五、三种问题类型:choice、noul、score

Ollama v0.35.0 的决策模型接口支持三种问题类型:

类型 作用
choice 从多个选项中选择一个,并返回每个选项的概率
noul 返回某个条件为真的概率
score 根据一组有序标准返回评分

这三种类型覆盖了选择、真假判断和分级评分三类结构化决策需求。


六、choice:选择一个选项并返回所有选项概率

choice 类型用于从多个候选项中选择最符合条件的一项。

官方示例中的工单分类,就是一个典型的 choice 使用方式:

json 复制代码
"type": "choice"

在这一模式下,请求中可以定义多个候选标准:

json 复制代码
"criteria": {
  "billing": "Payments and refunds",
  "bug": "Software errors",
  "account": "Login and account access"
}

模型会根据 state 中提供的上下文内容,在这些候选标准中选择最匹配的一项。

最终结果会包含:

  • 问题类型
  • 最终选择项
  • 每一个候选项的概率
  • 置信度

对应到示例中,模型返回:

json 复制代码
{
  "type": "choice",
  "choice": "bug",
  "probabilities": {
    "billing": 0.0125,
    "bug": 0.9781,
    "account": 0.0093
  },
  "confidence": 0.8906
}

在这个结果里,bug 是最终选择,billing、bug、account 则分别拥有各自的概率。

对于工单分流场景,choice 可以用于将不同内容归入预先定义好的类别。在模型路由场景中,也可以用于在多个候选模型或处理路径中选择一个结果。在内容分类场景中,则可以根据给定的分类标准,输出最匹配的标签及相关概率。


七、noul:返回条件为真的概率

noul 类型用于返回某个条件为真的概率。

与 choice 的多个候选项选择不同,noul 更关注一个具体条件是否成立。它返回的是该条件为真的概率。

在需要判断一个条件是否满足时,noul 可以提供直接的概率结果。其核心目标不是从多个标签中选一个,而是针对某个判断条件给出概率。

根据 v0.35.0 的说明,noul 的定义为:

text 复制代码
Return the probability that a condition is true.

也就是返回一个条件为真的概率。

如果说 choice 的结果重点是"多个候选项中哪个最符合",那么 noul 的结果重点则是"某个条件成立的可能性有多高"。


八、score:基于有序标准返回评分

score 类型用于根据一组有序标准返回评分。

v0.35.0 对 score 的定义是:

text 复制代码
Return a score across an ordered set of criteria.

即在一组有序的标准之中返回一个评分结果。

与 choice 侧重于选择一个类别不同,score 侧重于在具有顺序关系的一组标准上进行评分。与 noul 侧重于一个条件是否为真不同,score 侧重于得分或等级结果。

因此,三个问题类型可以这样理解:

问题类型 关注重点 返回形式
choice 哪一个选项最匹配 选择结果与各选项概率
noul 条件是否成立 条件为真的概率
score 在有序标准中的评分 评分结果

九、决策模型适用的任务类型

Ollama v0.35.0 明确提到了决策模型适用于以下任务:

  • 工单分流
  • 模型路由
  • 内容分类

工单分流是官方示例展示的典型任务。

示例中的状态信息为:

text 复制代码
Our checkout has returned 500 errors since 9am.

在三个候选分类中,模型选择了:

text 复制代码
bug

其对应概率为:

text 复制代码
0.9781

这表明,对于"结账功能返回 500 错误"这一内容,模型将其与软件错误标签建立了最高匹配关系。

模型路由同样属于决策模型适用的任务类型。决策模型可以输出选择、概率与评分,因此适合用于需要根据输入内容进行判断,并输出明确路由结果的任务。

内容分类也是决策模型的适用方向。通过向 criteria 提供一组分类标准,模型可以根据上下文状态选择对应类别,并在 choice 类型下返回各类别的概率。

决策模型的关键价值在于,输出结果不是单纯的文本描述,而是可被程序直接读取的结构化数据。


十、v0.35.0 的其他更新与修复

除了新增决策模型支持,Ollama v0.35.0 还包含以下改动。

改动 内容
设置页面优化 设置现在无需等待模型发现完成即可打开
macOS 更新修复 修复启动时更新菜单和图标未反映可用更新的问题
MLX 下载修复 修复 MLX 模型下载停滞后无限期挂起的问题
typical_p 兼容优化 请求包含已弃用的 typical_p 参数时,改为记录警告而不是直接失败

下面分别展开说明。


十一、设置页面不再等待模型发现

v0.35.0 中,设置页面现在可以在不等待模型发现完成的情况下打开。

更新说明为:

text 复制代码
Settings now opens without waiting for model discovery.

也就是说,设置页面的打开不再依赖模型发现流程结束。

这一改动针对的是设置页面启动时与模型发现之间的等待关系。更新后,设置可以直接打开,而不需要等待模型发现完成。


十二、修复 macOS 启动时更新菜单和图标未正确显示的问题

v0.35.0 修复了 macOS 中与更新状态显示相关的问题。

更新说明指出,修复了在启动时,更新菜单和更新图标未能反映可用更新的问题。

原始说明为:

text 复制代码
Fixed the macOS update menu and icon not reflecting an available update at startup.

修复内容涉及两个位置:

  • 更新菜单
  • 更新图标

修复场景则是应用启动时存在可用更新,但菜单和图标没有正确体现这一状态的问题。


十三、修复 MLX 模型下载停滞后无限期挂起的问题

v0.35.0 还修复了 MLX 模型下载相关的问题。

更新说明为:

text 复制代码
Fixed stalled MLX model downloads hanging indefinitely.

该问题的表现是,MLX 模型下载在停滞后可能会无限期挂起。

此次更新对这一问题进行了修复,处理的重点是下载过程已经停滞,但任务仍持续处于挂起状态的情况。


十四、已弃用的 typical_p 参数不再导致请求失败

在 v0.35.0 中,包含已弃用参数 typical_p 的请求,处理方式发生了变化。

更新说明为:

text 复制代码
Requests containing the deprecated typical_p parameter now log a warning instead of failing.

此前,包含已弃用 typical_p 参数的请求会失败。

在 v0.35.0 中,这类请求不会再因为该参数而直接失败,而是会记录一条警告信息。

涉及的参数名称为:

text 复制代码
typical_p

涉及的变化可以概括为:

情况 处理方式
请求包含已弃用的 typical_p 参数 记录警告
请求包含已弃用的 typical_p 参数 不再直接失败

这一调整保留了对弃用参数的提醒,同时改变了请求因该参数直接失败的行为。


十五、Ollama v0.35.0 更新内容汇总

Ollama v0.35.0 的核心更新可以归纳为以下内容:

分类 更新内容
新能力 新增决策模型支持
接口 通过 /v1/systemone 提供决策模型能力
基础 基于 TypeSafe 的 Jev API
模型 提供 Nimble 和 Tev1
问题类型 支持 choice、noul、score
choice 选择一个选项并返回每个选项的概率
noul 返回条件为真的概率
score 基于有序标准返回评分
使用场景 工单分流、模型路由、内容分类
设置体验 设置页面无需等待模型发现完成即可打开
macOS 修复 修复启动时更新菜单和图标未显示可用更新的问题
MLX 修复 修复模型下载停滞后无限期挂起的问题
参数兼容 typical_p 参数由请求失败改为记录警告

结语

代码地址:github.com/ollama/ollama

Ollama v0.35.0 的重点在于决策模型能力的加入。

通过 /v1/systemone 接口,调用方可以向模型传递状态信息和一个或多个问题,并获得选择结果、概率、置信度或评分等结构化结果。接口支持 choice、noul、score 三种问题类型,覆盖多选一分类、条件成立概率判断以及有序标准评分等需求。

在官方示例中,针对"结账功能从上午 9 点开始返回 500 错误"的工单内容,模型选择了 bug 标签,并返回了 billing、bug、account 三个标签的概率以及置信度。

与此同时,v0.35.0 还优化了设置页面打开逻辑,修复了 macOS 启动时更新显示问题,修复了 MLX 模型下载无限期挂起问题,并将已弃用 typical_p 参数的处理方式从直接失败调整为记录警告。

相关推荐
茉莉玫瑰花茶4 小时前
GO [ 泛型 ]
golang
念何架构之路13 小时前
go-grpc服务端调用
开发语言·后端·golang
茉莉玫瑰花茶14 小时前
GO [ 单元测试 ]
golang·单元测试·log4j
喵了几个咪15 小时前
Go 写业务,Rust 扛底盘:一套可落地的混合架构
微服务·架构·golang·rust·多租户·gowind·rushwind
ttwuai15 小时前
Golang Web后台管理框架推荐:Gin、GoFrame与数据面板项目怎么分
前端·golang·gin
魏码不凡16 小时前
Go 编译报错:undefined: webp.Encode 问题排查与解决
开发语言·后端·golang
tachibana218 小时前
与其他语言相比,使用 Go 有什么好处?
开发语言·后端·golang·go
hasty1 天前
限制写了却没生效:OpenTelemetry Go 的 Unicode 截断边界
开发语言·后端·golang
EatFan1 天前
Go语言全栈实战:基于 Gin + Vue + JWT + RBAC 从零搭建前后端分离权限管理系统
vue.js·golang·go·vue·gin·jwt·rbac