Compartilhar via


Modelos de raciocínio do OpenAI do Azure

Os modelos de o-series do OpenAI do Azure são projetados para lidar com tarefas de raciocínio e resolução de problemas com maior foco e capacidade. Esses modelos gastam mais tempo processando e entendendo a solicitação do usuário, o que os torna excepcionalmente competentes em áreas como ciência, programação e matemática, em comparação com as iterações anteriores.

Principais funcionalidades dos modelos da série o:

  • Geração de Código Complexo: Capaz de gerar algoritmos e lidar com tarefas avançadas de codificação para dar suporte para desenvolvedores.
  • Resolução Avançada de Problemas: Ideal para sessões abrangentes de debates e solução de desafios multifacetados.
  • Comparação Complexa de Documentos: Perfeito para analisar contratos, arquivos de casos ou documentos legais para identificar diferenças sutis.
  • Seguir Instruções e Gerenciamento de Fluxos de Trabalho: Particularmente eficaz para gerenciar fluxos de trabalho que exigem contextos mais curtos.

Disponibilidade

Para acesso a o3-mini, o1e o1-preview, o registro é necessário e o acesso será concedido com base nos critérios de qualificação da Microsoft.

Os clientes que já aplicaram e receberam acesso a o1 ou o1-preview, não precisam reaplicar, pois estão automaticamente na lista de espera para o modelo mais recente.

Solicitar acesso: aplicativo de modelo de acesso limitado

Disponibilidade de região

Modelar Region Acesso limitado
o3-mini Leste dos US2 (Padrão Global)
Suécia Central (Padrão Global)
Aplicativo do modelo de acesso limitado
o1 Leste dos US2 (Padrão Global)
Suécia Central (Padrão Global)
Aplicativo do modelo de acesso limitado
o1-preview Consulte a página de modelos. Aplicativo do modelo de acesso limitado
o1-mini Consulte a página de modelos. Nenhuma solicitação de acesso necessária

Suporte a API e aos recursos

Recurso o3-mini, 31/01/2025 o1, 2024-12-17 o1-preview, 2024-09-12 o1-mini, 2024-09-12
Versão da API 2024-12-01-preview
2025-01-01-preview
2024-12-01-preview
2025-01-01-preview
2024-09-01-preview
2024-10-01-preview
2024-12-01-preview
2024-09-01-preview
2024-10-01-preview
2024-12-01-preview
Mensagens de Desenvolvedor - -
Saídas Estruturadas - -
Janela de Contexto Entrada: 200.000
Saída: 100.000
Entrada: 200.000
Saída: 100.000
Input: 128,000
Saída: 32.768
Input: 128,000
Saída: 65.536
Esforço de raciocínio - -
Suporte à Visão - - -
Funções/Ferramentas - -
max_completion_tokens*
Mensagens do Sistema** - -
Streaming - - -

* Modelos de raciocínio só funcionarão com o parâmetro max_completion_tokens.

O modelo **mais recente da série o* dá suporte a mensagens do sistema para facilitar a migração. Quando você usa uma mensagem do sistema com o3-mini e o1 ela é tratada como uma mensagem de desenvolvedor. Você não deve usar uma mensagem de desenvolvedor e uma mensagem do sistema na mesma solicitação de API.

Sem suporte

No momento, não há suporte para os modelos de raciocínio a seguir:

  • Chamada de ferramenta paralela
  • temperature, top_p, presence_penalty, frequency_penalty, logprobs, top_logprobs, logit_bias, max_tokens

Uso

Esses modelos atualmente não dão suporte ao mesmo conjunto de parâmetros que outros modelos que usam a API de conclusões de chat.

Você precisará atualizar sua biblioteca de clientes do OpenAI para ter acesso aos parâmetros mais recentes.

pip install openai --upgrade

Se você é novo no uso do Microsoft Entra ID para autenticação, veja Como configurar o Serviço OpenAI do Azure com autenticação do Microsoft Entra ID.

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))

Saída:

{
  "id": "chatcmpl-AEj7pKFoiTqDPHuxOcirA9KIvf3yz",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "Writing your first Python API is an exciting step in developing software that can communicate with other applications. An API (Application Programming Interface) allows different software systems to interact with each other, enabling data exchange and functionality sharing. Here are the steps you should consider when creating your first Python API...truncated for brevity.",
        "refusal": null,
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      },
      "content_filter_results": {
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "protected_material_code": {
          "filtered": false,
          "detected": false
        },
        "protected_material_text": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ],
  "created": 1728073417,
  "model": "o1-2024-12-17",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_503a95a7d8",
  "usage": {
    "completion_tokens": 1843,
    "prompt_tokens": 20,
    "total_tokens": 1863,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 448
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 0
    }
  },
  "prompt_filter_results": [
    {
      "prompt_index": 0,
      "content_filter_results": {
        "custom_blocklists": {
          "filtered": false
        },
        "hate": {
          "filtered": false,
          "severity": "safe"
        },
        "jailbreak": {
          "filtered": false,
          "detected": false
        },
        "self_harm": {
          "filtered": false,
          "severity": "safe"
        },
        "sexual": {
          "filtered": false,
          "severity": "safe"
        },
        "violence": {
          "filtered": false,
          "severity": "safe"
        }
      }
    }
  ]
}

Esforço de raciocínio

Observação

Os modelos de raciocínio têm reasoning_tokens como parte de completion_tokens_details na resposta do modelo. Esses são tokens ocultos que não são retornados como parte do conteúdo da resposta da mensagem, mas são usados pelo modelo para ajudar a gerar uma resposta final para sua solicitação. 2024-12-01-preview adiciona um novo parâmetro adicional reasoning_effort que pode ser definido como low, mediumou high com o modelo o1 mais recente. Quanto maior a configuração de esforço, mais tempo o modelo gastará processando a solicitação, o que geralmente resultará em um número maior de reasoning_tokens.

Mensagens do desenvolvedor

Funcionalmente, as mensagens do desenvolvedor "role": "developer" são as mesmas que as mensagens do sistema.

Adicionar uma mensagem de desenvolvedor ao exemplo de código anterior teria a seguinte aparência:

Você precisará atualizar sua biblioteca de clientes do OpenAI para ter acesso aos parâmetros mais recentes.

pip install openai --upgrade

Se você é novo no uso do Microsoft Entra ID para autenticação, veja Como configurar o Serviço OpenAI do Azure com autenticação do Microsoft Entra ID.

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2024-12-01-preview"
)

response = client.chat.completions.create(
    model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
    messages=[
        {"role": "developer","content": "You are a helpful assistant."}, # optional equivalent to a system message for reasoning models 
        {"role": "user", "content": "What steps should I think about when writing my first Python API?"},
    ],
    max_completion_tokens = 5000

)

print(response.model_dump_json(indent=2))