Skip to content

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

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 think atau /set nothink.
  • GPT-OSS hanya menerima level: ollama run gpt-oss --think=low "Draft a headline" (ganti low dengan medium atau high sesuai kebutuhan).

Catatan

Berpikir diaktifkan secara default di CLI dan API untuk model yang didukung.