Modely zdůvodňování dotazů

V tomto článku se dozvíte, jak psát požadavky dotazů pro základové modely optimalizované pro úlohy vyžadující uvažování, které poskytuje Unity AI Gateway.

Tip

Genie Code (režim agenta) to může udělat za vás. Vyzkoušejte tento příklad výzvy:

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.

Rozhraní Databricks Foundation Model API poskytuje jednotné rozhraní API pro interakci se všemi modely foundation, včetně modelů odůvodnění. Odůvodnění poskytuje základní modely vylepšené možnosti pro řešení složitých úloh. Některé modely také poskytují transparentnost tím, že před poskytnutím konečné odpovědi odhalí jejich podrobný proces.

Typy modelů odůvodnění

Existují dva typy modelů, deduktivní a hybridní. Následující tabulka popisuje, jak různé modely používají různé přístupy k řízení důvodů:

Typ modelu zdůvodnění Podrobnosti Příklady modelů Parametry
Hybridní odůvodnění Podporuje rychlé, okamžité odpovědi i hlubší důvody v případě potřeby. Modely Claude, jako jsou databricks-claude-sonnet-4-6, databricks-claude-sonnet-4-5, databricks-claude-sonnet-4, databricks-claude-opus-4-8, databricks-claude-opus-4-7, databricks-claude-opus-4-6, databricks-claude-opus-4-5 a databricks-claude-opus-4-1. Pokud chcete použít hybridní odůvodnění, uveďte následující parametry:
  • thinking
  • budget_tokens: Určuje, kolik tokenů může model použít pro interní myšlení. Vyšší rozpočty mohou zlepšit kvalitu složitých úloh, ale využití nad 32K se může lišit. budget_tokens musí být menší než max_tokens.
Pouze zdůvodnění Tyto modely ve svých odpovědích vždy používají interní odůvodnění. Modely GPT s otevřeným zdrojovým kódem jako databricks-gpt-oss-120b a databricks-gpt-oss-20b. V požadavku použijte následující parametr:
  • reasoning_effort: přijímá hodnoty , "low"( "medium" výchozí) nebo "high". Vyšší úsilí může vést k promyšlenějším a přesným odpovědím, ale může zvýšit latenci a využití tokenů. Tento parametr je přijímán pouze omezenou sadou modelů, včetně databricks-gpt-oss-120b a databricks-gpt-oss-20b.

Příklady dotazů

Note

Následující příklady jsou založené na službě Unity AI Gateway a modelových službách. Pokud místo služeb modelu používáte koncové body obsluhující modely, nahraďte název služby modelu názvem koncového bodu. Seznam dostupných základních modelů a jejich modelových služeb a názvů koncových bodů najdete v tématu Základní modely hostované službou Databricks, které jsou k dispozici v rozhraních API pro základní modely.

Všechny modely odůvodnění jsou přístupné prostřednictvím koncového bodu dokončení chatu .

Příklad modelu Clauda

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)

GPT-5.1

Parametr reasoning_effort pro GPT-5.1 je ve výchozím nastavení none, ale lze ho přepsat v požadavcích. Vyšší úsilí o odůvodnění může vést k promyšlenějším a přesným odpovědím, ale může zvýšit latenci a využití 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"
  }'

Příklad modelu OSS GPT

Parametr reasoning_effort přijímá "low"( "medium" výchozí) nebo "high" hodnoty. Vyšší úsilí o odůvodnění může vést k promyšlenějším a přesným odpovědím, ale může zvýšit latenci a využití 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"
  }'

Příklad modelu Gemini

Tento příklad používá system.ai.gemini-3-1-pro. Parametr reasoning_effort je ve výchozím nastavení nastavený "low" , ale lze ho přepsat v požadavcích, jak je vidět v následujícím příkladu.

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"
  }'

Odpověď rozhraní API zahrnuje bloky obsahu úvah i textu.

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
)

Řízení logiky napříč několika interakcemi

Tato část je specifická pro databricks-claude-sonnet-4-5 model.

V konverzacích s více koly jsou pro model viditelné pouze bloky odůvodnění přidružené k poslednímu kolu asistenta nebo relaci používání nástrojů a počítají se jako vstupní tokeny.

Pokud nechcete vracet do modelu tokeny určené k odůvodnění (například není potřeba, aby model odůvodňoval své předchozí kroky), můžete blok odůvodnění zcela vypustit. Například:

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)

Pokud ale potřebujete, aby model uvažoval nad svým předchozím procesem odůvodňování – například pokud vytváříte prostředí, které zprostředkuje jeho mezičlánky odůvodnění – musíte zahrnout úplnou, nemodifikovanou předchozí zprávu asistenta, včetně bloku odůvodnění z předchozího kola. Tady je postup, jak pokračovat ve vlákně s úplnou zprávou od asistenta:

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)

Open API pro odpovědi

Když použijete rozhraní Open Responses API, úvahy se v odpovědi reasoning vrací jako položky output. Chcete-li modelu umožnit, aby v pozdějším kroku navázal na své předchozí úvahy, zahrňte tyto položky reasoning s nezměněným polem encrypted_content do pole input v další žádosti.

Položka reasoning vrácená ve výstupu odpovědi má následující tvar:

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

Chcete-li pokračovat v rozhovoru, odešlete výstup předchozí odpovědi zpět v input, se zachováním položky reasoning beze změny:

{
  "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?" }
  ]
}

Hodnota encrypted_content obsahuje informace o odůvodnění specifické pro poskytovatele. Pokud dojde k jeho vyřazení nebo úpravě, model nemůže zdůvodnět své dřívější myšlení. To platí pro modely Anthropic Claude a Google Gemini.

Jak model zdůvodnění funguje?

Modely zdůvodnění představují kromě standardních vstupních a výstupních tokenů speciální zdůvodnění. Tyto tokeny umožňují modelu "přemýšlet" prostřednictvím výzvy, rozdělit ho a zvážit různé způsoby reakce. Po tomto interním procesu odůvodnění model vygeneruje svou konečnou odpověď jako viditelné výstupní tokeny. Některé modely, například databricks-claude-sonnet-4-5, zobrazují tyto důvodové tokeny pro uživatele, zatímco jiné, například OpenAI o series, je zahodí a nezpřístupňují je v konečném výstupu.

Dodatečné zdroje