Model yang mendukung kemampuan berpikir menghasilkan field thinking yang memisahkan jejak penalarannya dari jawaban akhir.
Gunakan kemampuan ini untuk mengaudit langkah-langkah model, menganimasikan proses berpikir model di UI, atau menyembunyikan jejak sepenuhnya jika Anda hanya memerlukan respons akhir.
Model yang didukung
- Qwen 3
- GPT-OSS (gunakan level
think:low,medium,high— jejak tidak dapat dinonaktifkan sepenuhnya) - DeepSeek-v3.1
- DeepSeek R1
- Jelajahi penambahan terbaru di bawah model berpikir
Aktifkan berpikir pada panggilan API
Atur field think pada permintaan chat atau generate. Sebagian besar model menerima boolean (true/false) atau level (low, medium, high, max), di mana max meminta level berpikir tertinggi.
GPT-OSS sebagai gantinya mengharapkan salah satu dari low, medium, atau high untuk menyesuaikan panjang jejak.
Field message.thinking (endpoint chat) atau thinking (endpoint generate) berisi jejak penalaran, sementara message.content / response menyimpan jawaban akhir.
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)
```
Catatan
GPT-OSS mengharuskan think diatur ke "low", "medium", atau "high". Pengiriman nilai true/false akan diabaikan untuk model tersebut.
Stream jejak penalaran
Stream berpikir menyisipkan token penalaran sebelum token jawaban. Deteksi chunk thinking pertama untuk menampilkan bagian "berpikir", kemudian beralih ke balasan akhir setelah message.content diterima.
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()
```
Referensi cepat CLI
- Aktifkan berpikir untuk satu kali menjalankan:
ollama run deepseek-r1 --think "Where should I visit in Lisbon?" - Nonaktifkan berpikir:
ollama run deepseek-r1 --think=false "Summarize this article" - Sembunyikan jejak sambil tetap menggunakan model berpikir:
ollama run deepseek-r1 --hidethinking "Is 9.9 bigger or 9.11?" - Di dalam sesi interaktif, alihkan dengan
/set thinkatau/set nothink. - GPT-OSS hanya menerima level:
ollama run gpt-oss --think=low "Draft a headline"(gantilowdenganmediumatauhighsesuai kebutuhan).
Catatan
Berpikir diaktifkan secara default di CLI dan API untuk model yang didukung.