Model penalaran kueri

Dalam artikel ini, Anda belajar cara menulis permintaan kueri untuk model dasar yang dioptimalkan untuk tugas penalaran, dan dilayani oleh Unity Gateway.

Tip

Genie Code (mode Agen) dapat melakukan ini untuk Anda. Coba perintah contoh ini:

Query the databricks-claude-sonnet-4-5 model using the OpenAI client with extended thinking enabled (budget_tokens set to 10240). Send a reasoning question and print both the thinking summary and the final answer.

Databricks Foundation Model API menyediakan API terpadu untuk berinteraksi dengan semua Model Foundation, termasuk model penalaran. Penalaran memberikan model dasar kemampuan yang lebih baik untuk mengatasi tugas-tugas yang kompleks. Beberapa model juga memberikan transparansi dengan mengungkapkan proses pemikiran langkah demi langkah mereka sebelum memberikan jawaban akhir.

Jenis model penalaran

Ada dua jenis model, berbasis penalaran saja dan hibrid. Tabel berikut menjelaskan bagaimana model yang berbeda menggunakan pendekatan yang berbeda untuk mengontrol penalaran:

Jenis model penalaran Detail lebih lanjut Contoh model Parameter-parameternya
Hanya penalaran Model ini selalu menggunakan pemikiran adaptif, dan penalaran tidak dapat dinonaktifkan. databricks-claude-fable-5-1 Gunakan parameter berikut dengan API Anthropic Messages:
  • thinking: Atur type ke adaptive.
  • output_config.effort: Menerima low, medium, high, , xhighatau max. Databricks tidak mengatur default; Anthropic menggunakan high saat Anda menghilangkan parameter ini. Nilai lain, termasuk none, ditolak.
Penalaran hibrid Mendukung balasan cepat dan instan dan penalaran yang lebih dalam saat diperlukan. Model Claude seperti databricks-claude-sonnet-4-6, databricks-claude-sonnet-4-5, databricks-claude-sonnet-4, databricks-claude-opus-5, databricks-claude-opus-4-8, databricks-claude-opus-4-7, databricks-claude-opus-4-6, databricks-claude-opus-4-5, dan databricks-claude-opus-4-1. Sertakan parameter berikut untuk menggunakan penalaran hibrid:
  • thinking
  • budget_tokens: mengontrol berapa banyak token yang dapat digunakan model untuk pemikiran internal. Anggaran yang lebih tinggi dapat meningkatkan kualitas untuk tugas yang kompleks, tetapi penggunaan di atas 32K dapat bervariasi. budget_tokens harus kurang dari max_tokens.
Hanya penalaran Model-model ini selalu menggunakan penalaran internal dalam responsnya. Model GPT OSS seperti databricks-gpt-oss-120b dan databricks-gpt-oss-20b. Gunakan parameter berikut dalam permintaan Anda:
  • reasoning_effort: menerima nilai "low", "medium" (default), atau "high". Upaya penalaran yang lebih tinggi dapat mengakibatkan respons yang lebih bijaksana dan akurat tetapi dapat meningkatkan latensi dan penggunaan token. Parameter ini hanya diterima oleh sekumpulan model terbatas, termasuk databricks-gpt-oss-120b dan databricks-gpt-oss-20b.

Contoh kueri

Note

Contoh berikut didasarkan pada Unity Gateway dan layanan model. Jika Anda menggunakan model yang melayani titik akhir alih-alih layanan model, ganti nama layanan model dengan nama titik akhir. Lihat model fondasi yang di-hosting oleh Databricks yang tersedia di API Model Fondasi untuk daftar model fondasi yang tersedia beserta nama layanan model dan endpoint-nya.

Semua model penalaran diakses melalui endpoint penyelesaian percakapan.

Contoh model Claude

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ.get('YOUR_DATABRICKS_TOKEN'),
  base_url=os.environ.get('YOUR_DATABRICKS_BASE_URL')
  )

response = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    max_tokens=20480,
    extra_body={
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10240
        }
    }
)

msg = response.choices[0].message
reasoning = msg.content[0]["summary"][0]["text"]
answer = msg.content[1]["text"]

print("Reasoning:", reasoning)
print("Answer:", answer)

Contoh model Claude Fable 5.1

Claude Fable 5.1 selalu menggunakan pemikiran adaptif. Atur output_config.effort ke low, medium, high, xhigh, atau max untuk mengontrol kedalaman penalaran.

curl -X POST "https://<workspace_host>.databricks.com/serving-endpoints/anthropic/v1/messages" \
  -u token:$DATABRICKS_TOKEN \
  -H "Content-Type: application/json" \
  -H "anthropic-beta: effort-2025-11-24" \
  -d '{
    "model": "databricks-claude-fable-5-1",
    "max_tokens": 4096,
    "thinking": {
      "type": "adaptive"
    },
    "output_config": {
      "effort": "high"
    },
    "messages": [
      {
        "role": "user",
        "content": "Why is the sky blue?"
      }
    ]
  }'

GPT-5.1

Parameter reasoning_effort untuk GPT-5.1 diatur ke none secara default, tetapi dapat diubah dalam permintaan. Upaya penalaran yang lebih tinggi dapat mengakibatkan respons yang lebih bijaksana dan akurat, tetapi dapat meningkatkan latensi dan penggunaan token.

curl -X POST "https://<workspace_host>/ai-gateway/mlflow/v1/chat/completions" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "system.ai.gpt-5-1",
    "messages": [
      {
        "role": "user",
        "content": "Why is the sky blue?"
      }
    ],
    "max_tokens": 4096,
    "reasoning_effort": "none"
  }'

Contoh model GPT OSS

Parameter reasoning_effort menerima "low", "medium" (default), atau "high" nilai. Upaya penalaran yang lebih tinggi dapat mengakibatkan respons yang lebih bijaksana dan akurat, tetapi dapat meningkatkan latensi dan penggunaan token.

curl -X POST "https://<workspace_host>/ai-gateway/mlflow/v1/chat/completions" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "system.ai.gpt-oss-120b",
    "messages": [
      {
        "role": "user",
        "content": "Why is the sky blue?"
      }
    ],
    "max_tokens": 4096,
    "reasoning_effort": "high"
  }'

Contoh model Gemini

Contoh ini menggunakan system.ai.gemini-3-1-pro. Parameter reasoning_effort diatur ke "low" secara default, tetapi dapat digantikan pada permintaan ini seperti yang terlihat dalam contoh berikut.

curl -X POST "https://<workspace_host>/ai-gateway/mlflow/v1/chat/completions" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "system.ai.gemini-3-1-pro",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Why is the sky blue?"
      }
    ],
    "max_tokens": 2000,
    "stream": true,
    "reasoning_effort": "high"
  }'

Respons API mencakup blok konten pemikiran dan teks:

ChatCompletionMessage(
    role="assistant",
    content=[
        {
            "type": "reasoning",
            "summary": [
                {
                    "type": "summary_text",
                    "text": ("The question is asking about the scientific explanation for why the sky appears blue... "),
                    "signature": ("EqoBCkgIARABGAIiQAhCWRmlaLuPiHaF357JzGmloqLqkeBm3cHG9NFTxKMyC/9bBdBInUsE3IZk6RxWge...")
                }
            ]
        },
        {
            "type": "text",
            "text": (
                "# Why the Sky Is Blue\n\n"
                "The sky appears blue because of a phenomenon called Rayleigh scattering. Here's how it works..."
            )
        }
    ],
    refusal=None,
    annotations=None,
    audio=None,
    function_call=None,
    tool_calls=None
)

Mengelola penalaran di beberapa percakapan

Bagian ini khusus untuk databricks-claude-sonnet-4-5 model.

Dalam percakapan multi-giliran, hanya blok penalaran yang terkait dengan sesi giliran asisten terakhir atau penggunaan alat yang terlihat oleh model dan dihitung sebagai token input.

Jika Anda tidak ingin meneruskan token penalaran kembali ke model (misalnya, Anda tidak memerlukannya untuk alasan atas langkah-langkah sebelumnya), Anda dapat menghilangkan blok penalaran sepenuhnya. Contohnya:

response = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {"role": "user", "content": "Why is the sky blue?"},
        {"role": "assistant", "content": text_content},
        {"role": "user", "content": "Can you explain in a way that a 5-year-old child can understand?"}
    ],
    max_tokens=20480,
    extra_body={
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10240
        }
    }
)

answer = response.choices[0].message.content[1]["text"]
print("Answer:", answer)

Namun, jika Anda memerlukan model untuk beralasan atas proses penalaran sebelumnya - misalnya, jika Anda membangun pengalaman yang memunculkan penalaran menengahnya - Anda harus menyertakan pesan asisten lengkap yang tidak dimodifikasi, termasuk blok penalaran dari giliran sebelumnya. Berikut cara melanjutkan utas dengan pesan lengkap dari asisten:

assistant_message = response.choices[0].message

response = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {"role": "user", "content": "Why is the sky blue?"},
        {"role": "assistant", "content": text_content},
        {"role": "user", "content": "Can you explain in a way that a 5-year-old child can understand?"},
        assistant_message,
        {"role": "user", "content": "Can you simplify the previous answer?"}
    ],
    max_tokens=20480,
    extra_body={
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10240
        }
    }
)

answer = response.choices[0].message.content[1]["text"]
print("Answer:", answer)

API Respons Terbuka

Saat Anda menggunakan Open Responses API, penalaran dikembalikan sebagai item reasoning dalam respons output. Agar model dapat menalar berdasarkan pemikiran sebelumnya pada giliran berikutnya, sertakan item reasoning tersebut—dengan field encrypted_content tetap tidak diubah—dalam input permintaan berikutnya.

Item reasoning yang dikembalikan dalam output respons memiliki bentuk berikut:

{
  "type": "reasoning",
  "id": "rs_abc123",
  "content": [{ "type": "reasoning_text", "text": "Let me work through the question..." }],
  "encrypted_content": "<opaque-provider-signature>"
}

Untuk melanjutkan percakapan, kirim kembali output dari giliran sebelumnya dalam input, dengan elemen reasoning dipertahankan apa adanya:

{
  "model": "databricks-claude-sonnet-4-5",
  "input": [
    { "role": "user", "content": "Why is the sky blue?" },
    {
      "type": "reasoning",
      "id": "rs_abc123",
      "content": [{ "type": "reasoning_text", "text": "Let me work through the question..." }],
      "encrypted_content": "<opaque-provider-signature>"
    },
    { "role": "assistant", "content": "The sky is blue because of Rayleigh scattering..." },
    { "role": "user", "content": "Can you explain it for a five-year-old?" }
  ]
}

Nilai encrypted_content memuat status penalaran spesifik penyedia. Jika dihilangkan atau dimodifikasi, model tidak dapat beralasan atas pemikiran sebelumnya. Ini berlaku untuk model Anthropic Claude dan Google Gemini.

Bagaimana cara kerja model penalaran?

Model penalaran memperkenalkan token penalaran khusus selain token input dan output standar. Token ini memungkinkan model "berpikir" melalui perintah, memecahnya dan mempertimbangkan berbagai cara untuk merespons. Setelah proses penalaran internal ini, model menghasilkan jawaban akhirnya sebagai token output yang terlihat. Beberapa model, seperti databricks-claude-sonnet-4-5, menampilkan token penalaran ini kepada pengguna, sementara yang lain, seperti seri OpenAI o, membuangnya dan tidak mengeksposnya dalam output akhir.

Sumber daya tambahan