Моделі, що підтримують функцію мислення, генерують поле thinking, яке відокремлює ланцюжок їх розумування від остаточної відповіді.
Використовуйте цю можливість для аудиту кроків моделі, анімації процесу мислення моделі в інтерфейсі користувача або повного приховування ланцюжка розумування, якщо вам потрібна лише остаточна відповідь.
Підтримувані моделі
- Qwen 3
- GPT-OSS (використовуйте рівні
think:low,medium,high— ланцюжок розумування не можна повністю вимкнути) - DeepSeek-v3.1
- DeepSeek R1
- Переглядайте останні додатки в розділі моделей з підтримкою мислення
Увімкнення мислення в API-запитах
Задайте поле think в запитах на чат або генерацію. Більшість моделей приймають булеві значення (true/false) або рівні (low, medium, high, max), де max вимагає найвищий рівень мислення.
Натомість GPT-OSS очікує одне зі значень low, medium або high для налаштування довжини ланцюжка розумування.
Поле message.thinking (кінцева точка чату) або thinking (кінцева точка генерації) містить ланцюжок розумування, тоді як message.content / response містить остаточну відповідь.
cURL
```shell
curl http://localhost:11434/api/chat -d '{
"model": "qwen3",
"messages": [{
"role": "user",
"content": "How many letter r are in strawberry?"
}],
"think": true,
"stream": false
}'
```
Python
```python
from ollama import chat
response = chat(
model='qwen3',
messages=[{'role': 'user', 'content': 'How many letter r are in strawberry?'}],
think=True,
stream=False,
)
print('Thinking:\n', response.message.thinking)
print('Answer:\n', response.message.content)
```
JavaScript
```javascript
import ollama from 'ollama'
const response = await ollama.chat({
model: 'deepseek-r1',
messages: [{ role: 'user', content: 'How many letter r are in strawberry?' }],
think: true,
stream: false,
})
console.log('Thinking:\n', response.message.thinking)
console.log('Answer:\n', response.message.content)
```
Примітка
Для GPT-OSS необхідно задавати для поля think значення "low", "medium" або "high". Передача значень true/false для цієї моделі ігнорується.
Потокове передавання ланцюжка розумування
Потоки мислення перемішують токени розумування перед токенами відповіді. Виявіть перший фрагмент thinking, щоб відобразити секцію «мислення», потім перейдіть до остаточної відповіді, як тільки надійде message.content.
Python
```python
from ollama import chat
stream = chat(
model='qwen3',
messages=[{'role': 'user', 'content': 'What is 17 × 23?'}],
think=True,
stream=True,
)
in_thinking = False
for chunk in stream:
if chunk.message.thinking and not in_thinking:
in_thinking = True
print('Thinking:\n', end='')
if chunk.message.thinking:
print(chunk.message.thinking, end='')
elif chunk.message.content:
if in_thinking:
print('\n\nAnswer:\n', end='')
in_thinking = False
print(chunk.message.content, end='')
```
JavaScript
```javascript
import ollama from 'ollama'
async function main() {
const stream = await ollama.chat({
model: 'qwen3',
messages: [{ role: 'user', content: 'What is 17 × 23?' }],
think: true,
stream: true,
})
let inThinking = false
for await (const chunk of stream) {
if (chunk.message.thinking && !inThinking) {
inThinking = true
process.stdout.write('Thinking:\n')
}
if (chunk.message.thinking) {
process.stdout.write(chunk.message.thinking)
} else if (chunk.message.content) {
if (inThinking) {
process.stdout.write('\n\nAnswer:\n')
inThinking = false
}
process.stdout.write(chunk.message.content)
}
}
}
main()
```
Швидкий довідник CLI
- Увімкніть мислення для одного запуску:
ollama run deepseek-r1 --think "Where should I visit in Lisbon?" - Вимкніть мислення:
ollama run deepseek-r1 --think=false "Summarize this article" - Приховайте ланцюжок розумування, продовжуючи використовувати модель з підтримкою мислення:
ollama run deepseek-r1 --hidethinking "Is 9.9 bigger or 9.11?" - У інтерактивних сесіях перемикайте режим за допомогою
/set thinkабо/set nothink. - GPT-OSS приймає лише рівні:
ollama run gpt-oss --think=low "Draft a headline"(замінітьlowнаmediumабоhighза потреби).
Примітка
Мислення увімкнено за замовчуванням в CLI та API для підтримуваних моделей.