Skip to content

具备思考能力的模型会输出一个 thinking 字段,该字段将模型的思考过程与最终答案分开。您可以使用此功能来审计模型的步骤、在用户界面中展示模型的思考过程,或者在仅需要最终回复时完全隐藏思考过程。

รุ่นที่รองรับ

  • Qwen 3
  • GPT-OSS (ใช้ระดับ think: low, medium, high — ไม่สามารถปิดกระบวนการคิดได้อย่างสมบูรณ์)
  • DeepSeek-v3.1
  • DeepSeek R1
  • เรียกดูรุ่นล่าสุดที่เพิ่มเข้ามาได้ที่ thinking models

เปิดใช้งานการคิดในการเรียก API

กำหนดฟิลด์ think ในคำขอ chat หรือ generate รุ่นส่วนใหญ่รับค่า boolean (true/false) หรือระดับ (low, medium, high, max) โดย max จะขอระดับการคิดสูงสุด สำหรับ GPT-OSS ต้องระบุค่าเป็น low, medium หรือ high เพื่อปรับความยาวของกระบวนการคิด ฟิลด์ message.thinking (สำหรับ chat endpoint) หรือ thinking (สำหรับ generate endpoint) จะเก็บกระบวนการคิด ในขณะที่ 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)
```

Note

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 ตามต้องการ)

Note

การคิดถูกเปิดใช้งานเป็นค่าเริ่มต้นใน CLI และ API สำหรับรุ่นที่รองรับ