Pular para o conteúdo principal

Modelos de raciocínio de consulta

Neste artigo, você aprenderá a escrever solicitações de consulta para modelos básicos otimizados para tarefas de raciocínio e enviá-las ao seu Modelo Básico API endpoint.

A API do Mosaic AI Foundation Model fornece uma API unificada para interagir com todos os modelos básicos, incluindo modelos de raciocínio. O raciocínio proporciona aos modelos básicos capacidades aprimoradas para lidar com tarefas complexas. Alguns modelos também oferecem transparência ao revelar seu processo de pensamento passo a passo antes de fornecer uma resposta final.

Tipos de modelos de raciocínio

Existem dois tipos de modelos, apenas para raciocínio e híbridos. A tabela a seguir descreve como modelos diferentes usam abordagens diferentes para controlar o raciocínio:

Tipo de modelo de raciocínio

Detalhes

Exemplos de modelos

Parâmetros

Raciocínio híbrido

Suporta respostas rápidas e instantâneas e raciocínio mais profundo quando necessário.

Claude modela como databricks-claude-3-7-sonnet e databricks-claude-sonnet-4.

Inclua os seguintes parâmetros para usar o raciocínio híbrido:

  • thinking
  • budget_tokens: controla quantos tokens o modelo pode utilizar para o pensamento interno. Orçamentos mais elevados podem melhorar a qualidade para tarefas complexas, mas o uso acima de 32K pode variar. budget_tokens deve ser menor que max_tokens.

Apenas raciocínio

Esses modelos sempre usam o raciocínio interno em suas respostas.

Modelos GPT OSS como databricks-gpt-oss-120b e databricks-gpt-oss-20b.

Use o seguinte parâmetro em sua solicitação:

  • reasoning_effort: aceita valores de "low", "medium" (default) ou "high". Um maior esforço de raciocínio pode resultar em respostas mais ponderadas e precisas, mas pode aumentar a latência e o uso de tokens. Esse parâmetro só é aceito por um conjunto limitado de modelos, incluindo databricks-gpt-oss-120b e databricks-gpt-oss-20b.

Exemplos de consultas

Todos os modelos de raciocínio são acessados por meio do endpoint de conclusões do chat.

Python
from openai import OpenAI
import base64
import httpx

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="databricks-claude-3-7-sonnet",
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)

A resposta da API inclui blocos de conteúdo textual e de reflexão:

Python
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
)

gerenciar o raciocínio em várias etapas

Esta seção é específica para o databricks-claude-3-7-sonnet model.

Em conversas com várias voltas, apenas os blocos de raciocínio associados à última volta do assistente ou sessão de uso da ferramenta são visíveis para o modelo e contados como tokens de entrada.

Se não desejar passar tokens de raciocínio de volta para o modelo (por exemplo, se não precisar dele para raciocinar sobre as etapas anteriores), é possível omitir o bloco de raciocínio completamente. Por exemplo:

Python
response = client.chat.completions.create(
model="databricks-claude-3-7-sonnet",
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)

No entanto, se você precisar que o modelo raciocine sobre seu processo de raciocínio anterior - por exemplo, se estiver criando experiências que revelem seu raciocínio intermediário - você deve incluir a mensagem completa e não modificada do assistente, incluindo o bloco de raciocínio do turno anterior. Veja como continuar um tópico com a mensagem completa do assistente:

Python
assistant_message = response.choices[0].message

response = client.chat.completions.create(
model="databricks-claude-3-7-sonnet",
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)

Como funciona um modelo de raciocínio?

Os modelos de raciocínio introduzem tokens de raciocínio especiais, além dos tokens de entrada e saída padrão. Esses tokens permitem que o modelo "reflita sobre o prompt", decompondo-o e considerando diferentes maneiras de responder. Após esse processo de raciocínio interno, o modelo gera sua resposta final como tokens de saída visíveis. Alguns modelos, como o databricks-claude-3-7-sonnet, exibem esses tokens de raciocínio aos usuários, enquanto outros, como a série OpenAI o, os descartam e não os expõem na saída final.

Recurso adicional