Модели обоснования запросов

Из этой статьи вы узнаете, как составлять запросы для базовых моделей, оптимизированных для задач логического вывода и доступ к которым предоставляется через Unity AI Gateway.

Tip

Код Genie (режим агента) может сделать это для вас. Попробуйте следующий пример запроса:

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.

API Foundation Model от Databricks предоставляет единый API для взаимодействия со всеми базовыми моделями, включая рассуждающие модели. Обоснование дает базовым моделям расширенные возможности для решения сложных задач. Некоторые модели также обеспечивают прозрачность путем выявления пошагового процесса мысли перед предоставлением окончательного ответа.

Типы моделей причин

Существует два типа моделей: только для рассуждений и гибридные. В следующей таблице описывается, как различные модели используют различные подходы к управлению обоснованием:

Тип модели причин Сведения Примеры моделей Параметры
Только рассуждения Эта модель всегда использует адаптивное мышление, и рассуждение нельзя отключить. databricks-claude-fable-5-1 Используйте следующие параметры с API Anthropic Messages:
  • thinking: Установите type на adaptive.
  • output_config.effort: Принимает low, medium, high, xhigh, или max. Databricks не устанавливает параметр по умолчанию; Anthropic используетhigh, когда вы опускаете этот параметр. Другие ценности, включая none, отвергаются.
Гибридное умозаключение Поддерживает как мгновенные ответы, так и более глубокие рассуждения при необходимости. Модели Claude, такие как 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 и databricks-claude-opus-4-1. Включите следующие параметры для использования гибридного вывода:
  • thinking
  • budget_tokens: определяет количество маркеров, которые модель может использовать для внутренней мысли. Более высокие бюджеты могут повысить качество выполнения сложных задач, но использование выше 32K может варьироваться. budget_tokens должен быть меньше max_tokens.
Только рассуждения Эти модели всегда используют внутреннюю причину в своих ответах. Модели GPT OSS, такие как databricks-gpt-oss-120b и databricks-gpt-oss-20b. Используйте следующий параметр в запросе:
  • reasoning_effort: принимает значения "low", "medium" (по умолчанию) или "high". Более значительные усилия в рассуждениях могут привести к более задумчивым и точным ответам, но могут увеличить задержку и расход токенов. Этот параметр принимается только ограниченным набором моделей, включая databricks-gpt-oss-120b и databricks-gpt-oss-20b.

Примеры запросов

Note

Следующие примеры основаны на шлюзе ИИ Unity и службах моделей. Если вы используете конечные точки обслуживания моделей вместо служб моделей, замените имя службы модели именем конечной точки. См. Базовые модели, размещенные в Databricks и доступные в API Foundation 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)

Пример модели Claude Fable 5.1

Claude Fable 5.1 всегда использует адаптивное мышление. Установите output_config.effort в значение low, medium, high, xhigh или max, чтобы управлять глубиной рассуждений.

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

ГПТ-5.1

Параметр reasoning_effort в GPT-5.1 по умолчанию установлен на none, но может быть изменён в запросах. Более высокие усилия в области мышления могут привести к более тщательному и точному ответу, но могут увеличить задержку и использование токенов.

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

Пример модели GPT OSS

Параметр reasoning_effort принимает "low", "medium" (по умолчанию) или "high" значения. Более высокие усилия в области мышления могут привести к более тщательному и точному ответу, но могут увеличить задержку и использование токенов.

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

Пример модели Gemini

В этом примере используется system.ai.gemini-3-1-pro. Параметр reasoning_effort имеет значение "low" по умолчанию, но его можно переопределить в запросах, как показано в следующем примере.

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

Ответ API включает как блоки мышления, так и текстового содержимого.

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
)

Управление логическими процессами в нескольких этапах

Этот раздел предназначен для databricks-claude-sonnet-4-5 модели.

В многотуровых беседах модели видны только блоки рассуждений, связанные с последним ответом помощника или сеансом использования инструментов, и считаются входными токенами.

Если вы не хотите передавать токены логики обратно в модель (например, вам не нужно, чтобы она анализировала свои предыдущие шаги), можно полностью опустить логический блок. Рассмотрим пример.

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)

Тем не менее, если вам нужна модель, чтобы осмысливать предыдущий процесс рассуждений, например, если вы создаете опыт, который демонстрирует его промежуточные рассуждения, необходимо включить полное, неизмененное сообщение помощника, включая блок рассуждений из предыдущего шага. Вот как продолжить тему с полным сообщением от помощника:

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 открытых ответов

При использовании API открытых ответов аргументы возвращаются в качестве reasoning элементов в ответе output. Чтобы модель могла на следующем шаге учитывать свои предыдущие рассуждения, включите эти элементы reasoning, оставив их поле encrypted_content без изменений, в input следующего запроса.

Элемент reasoning , возвращаемый в выходных данных ответа, имеет следующую форму:

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

Чтобы продолжить беседу, отправьте ответ из предыдущей реплики обратно в input, сохранив элемент reasoning без изменений:

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

Значение encrypted_content содержит состояние рассуждений, специфичное для поставщика. Если это удалить или изменить, модель не сможет опираться на свои предыдущие рассуждения. Это относится к моделям Anthropic Claude и Google Gemini.

Как работает модель рассуждений?

Модели рассуждения используют специальные маркеры рассуждения в дополнение к стандартным маркерам ввода и вывода. Эти токены позволяют модели "думать" в процессе осмысления запроса, разбивая его и размышляя о разнообразных способах реагирования. После этого процесса внутреннего рассуждения модель создает свой окончательный ответ в виде видимых выходных токенов. Некоторые модели, например databricks-claude-sonnet-4-5, отображают эти токены рассуждений для пользователей, а другие, такие как серия OpenAI o, отбрасывают их и не показывают в окончательных результатах.

Дополнительные ресурсы