Modelos de raciocínio do OpenAI do Azure
Os modelos o1
e o1-mini
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 da série o1:
- 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
Os modelos da série o1 agora estão disponíveis para acesso à API e implantação de modelos. O registro é obrigatório e o acesso será concedido com base nos critérios de elegibilidade da Microsoft. Os clientes que já aplicaram e receberam acesso ao 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
Depois que o acesso for concedido, você precisará criar uma implantação para cada modelo. Se você tiver uma implantação o1-preview
existente, atualmente não há suporte para a atualização in-loco, será necessário criar uma nova implantação.
Disponibilidade de região
Modelar | Region |
---|---|
o1 |
Leste dos US2 (Padrão Global) Suécia Central (Padrão Global) |
o1-preview |
Consulte a página de modelos. |
o1-mini |
Consulte a página de modelos. |
Suporte a API
O suporte inicial para os modelos de versão prévia o1-preview e o1-mini foi adicionado na versão 2024-09-01-preview
da API.
Como parte dessa versão, o parâmetro max_tokens
foi preterido e substituído pelo novo parâmetro max_completion_tokens
. Os modelos da série o1 só funcionarão com o parâmetro max_completion_tokens
.
O modelo mais recente com mais funcionalidade da série o1 é a o1
Versão: 2024-12-17. Esse modelo de GA (disponibilidade geral) deve ser usado com a versão 2024-12-01-preview
da API.
2024-12-01-preview
2024-12-01-preview
adiciona suporte para o novo parâmetro reasoning_effort
, saídas estruturadas e mensagens de desenvolvedor. Atualmente, os modelos de raciocínio de visualização mais antigos não dão suporte a esses recursos. Para modelos de raciocínio, esses recursos estão disponíveis atualmente apenas com a o1
versão: 2024-12-17.
Uso
Atualmente, esses modelos não oferecem suporte ao mesmo conjunto de parâmetros que outros modelos que usam a API de conclusões de chat. No momento, há suporte para apenas um subconjunto limitado. Usar parâmetros padrão como temperature
e top_p
resultará em erros.
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"
}
}
}
]
}
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
, medium
ou 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.
- Não há suporte para mensagens do sistema com os modelos de raciocínio da série o1.
o1-2024-12-17
com a versão da API:2024-12-01-preview
e posteriormente adiciona suporte para mensagens de desenvolvedor.
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))