ollama/model
Devon Rifkin 5f57b0ef42
add thinking support to the api and cli (#10584)
- Both `/api/generate` and `/api/chat` now accept a `"think"`
  option that allows specifying whether thinking mode should be on or
  not
- Templates get passed this new option so, e.g., qwen3's template can
  put `/think` or `/no_think` in the system prompt depending on the
  value of the setting
- Models' thinking support is inferred by inspecting model templates.
  The prefix and suffix the parser uses to identify thinking support is
  also automatically inferred from templates
- Thinking control & parsing is opt-in via the API to prevent breaking
  existing API consumers. If the `"think"` option is not specified, the
  behavior is unchanged from previous versions of ollama
- Add parsing for thinking blocks in both streaming/non-streaming mode
  in both `/generate` and `/chat`
- Update the CLI to make use of these changes. Users can pass `--think`
  or `--think=false` to control thinking, or during an interactive
  session they can use the commands `/set think` or `/set nothink`
- A `--hidethinking` option has also been added to the CLI. This makes
  it easy to use thinking in scripting scenarios like
  `ollama run qwen3 --think --hidethinking "my question here"` where you
  just want to see the answer but still want the benefits of thinking
  models
2025-05-28 19:38:52 -07:00
..
imageproc imageproc mllama refactor (#7537) 2024-12-14 19:50:15 -08:00
input ollamarunner: Separate text and multimodal graphs 2025-05-15 13:46:20 -07:00
models ml: Panic rather than return error on tensor allocation failure 2025-05-22 14:38:09 -07:00
testdata gemma2 impl 2025-03-11 14:35:08 -07:00
bytepairencoding.go add thinking support to the api and cli (#10584) 2025-05-28 19:38:52 -07:00
bytepairencoding_test.go model: handle multiple eos tokens (#10577) 2025-05-16 13:40:23 -07:00
model.go ml: Panic rather than return error on tensor allocation failure 2025-05-22 14:38:09 -07:00
model_test.go fs: move ml.Config to fs package 2025-04-03 13:12:24 -07:00
sentencepiece.go model: handle multiple eos tokens (#10577) 2025-05-16 13:40:23 -07:00
sentencepiece_test.go model: handle multiple eos tokens (#10577) 2025-05-16 13:40:23 -07:00
textprocessor.go model: handle multiple eos tokens (#10577) 2025-05-16 13:40:23 -07:00
vocabulary.go model: handle multiple eos tokens (#10577) 2025-05-16 13:40:23 -07:00