Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модели Azure OpenAI для рассуждений предназначены для решения проблем и задач с повышенной концентрацией и возможностями. Эти модели тратят больше времени на обработку и понимание запроса пользователя, что делает их исключительно сильными в таких областях, как наука, программирование и математика по сравнению с предыдущими итерациями.
Ключевые возможности моделей рассуждений:
- Сложное создание кода: способен создавать алгоритмы и обрабатывать сложные задачи программирования для поддержки разработчиков.
- Расширенное решение проблем: идеально подходит для комплексных сеансов мозгового штурма и решения сложных задач.
- Комплексное сравнение документов: идеально подходит для анализа контрактов, файлов дела или юридических документов для выявления тонких различий.
- Инструкции и управление рабочими процессами: особенно эффективно для управления рабочими процессами, требующими более коротких контекстов.
Необходимые условия
Модель логического вывода OpenAI на основе Azure развернута.
Если вы используете примеры REST:
Установите Azure CLI. Дополнительные сведения см. в разделе Install Azure CLI.
Войдите с помощью
az login, затем создайте токен предъявителя и сохраните его в переменной средыAZURE_OPENAI_AUTH_TOKEN.az account get-access-token --resource https://cognitiveservices.azure.com --query accessToken -o tsv
Использование
В настоящее время эти модели не поддерживают тот же набор параметров , что и другие модели, использующие API завершения чата.
API завершения чата
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
ChatClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletionOptions options = new ChatCompletionOptions
{
MaxOutputTokenCount = 100000
};
ChatCompletion completion = client.CompleteChat(
new DeveloperChatMessage("You are a helpful assistant"),
new UserChatMessage("Tell me about the bitter lesson")
);
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Обоснование усилий
Примечание
Модели выводов имеют reasoning_tokens как часть completion_tokens_details в ответе модели. Это скрытые маркеры, которые не возвращаются в составе содержимого ответа сообщения, но используются моделью для создания окончательного ответа на запрос.
reasoning_effort может быть задано значение low, mediumили high для всех моделей причин, кроме o1-mini. Чем выше параметр усилий, тем дольше модель будет тратить на обработку запроса, что обычно приводит к большему количеству reasoning_tokens.
Сообщения разработчика
Сообщения разработчика ("role": "developer") функционально совпадают с системным сообщением.
Добавление сообщения разработчика в предыдущий пример кода будет выглядеть следующим образом:
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
ChatClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletionOptions options = new ChatCompletionOptions
{
ReasoningEffortLevel = ChatReasoningEffortLevel.Low,
MaxOutputTokenCount = 100000
};
ChatCompletion completion = client.CompleteChat(
new DeveloperChatMessage("You are a helpful assistant"),
new UserChatMessage("Tell me about the bitter lesson")
);
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Сводка по причинам
При использовании новейших моделей рассуждения с API ответов можно использовать параметр сводки рассуждений для получения сводок цепочки рассуждений модели.
Важно
Попытка извлечь сырой вывод с помощью методов, отличных от параметра сводки вывода, не поддерживается, может нарушить Политику допустимого использования и может привести к ограничению или приостановке при обнаружении.
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
OpenAIResponseClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
OpenAIResponse response = await client.CreateResponseAsync(
userInputText: "What's the optimal strategy to win at poker?",
new ResponseCreationOptions()
{
ReasoningOptions = new ResponseReasoningOptions()
{
ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
ReasoningSummaryVerbosity = ResponseReasoningSummaryVerbosity.Auto,
},
});
// Get the reasoning summary from the first OutputItem (ReasoningResponseItem)
Console.WriteLine("=== Reasoning Summary ===");
foreach (var item in response.OutputItems)
{
if (item is ReasoningResponseItem reasoningItem)
{
foreach (var summaryPart in reasoningItem.SummaryParts)
{
if (summaryPart is ReasoningSummaryTextPart textPart)
{
Console.WriteLine(textPart.Text);
}
}
}
}
Console.WriteLine("\n=== Assistant Response ===");
// Get the assistant's output
Console.WriteLine(response.GetOutputText());
Примечание
Даже если этот параметр включен, сводки по соображениям не гарантируются для каждого шага или запроса. Это ожидаемое поведение.
Python Lark
Модели рассуждений серии GPT-5 способны инициировать новый custom_tool, называемый lark_tool. Это средство основано на Python lark и может использоваться для более гибкого ограничения выходных данных модели.
API для ответов
{
"model": "gpt-5-2025-08-07",
"input": "please calculate the area of a circle with radius equal to the number of 'r's in strawberry",
"tools": [
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
"tool_choice": "required"
}
Microsoft Entra ID:
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="gpt-5", # replace with your model deployment name
tools=[
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
input=[{"role": "user", "content": "Please calculate the area of a circle with radius equal to the number of 'r's in strawberry"}],
)
print(response.model_dump_json(indent=2))
Ключ API:
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-5", # replace with your model deployment name
tools=[
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
input=[{"role": "user", "content": "Please calculate the area of a circle with radius equal to the number of 'r's in strawberry"}],
)
print(response.model_dump_json(indent=2))
Выходные данные:
{
"id": "resp_689a0cf927408190b8875915747667ad01c936c6ffb9d0d3",
"created_at": 1754926332.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"model": "gpt-5",
"object": "response",
"output": [
{
"id": "rs_689a0cfd1c888190a2a67057f471b5cc01c936c6ffb9d0d3",
"summary": [],
"type": "reasoning",
"encrypted_content": null,
"status": null
},
{
"id": "msg_689a0d00e60c81908964e5e9b2d6eeb501c936c6ffb9d0d3",
"content": [
{
"annotations": [],
"text": "“strawberry” has 3 r’s, so the radius is 3.\nArea = πr² = π × 3² = 9π ≈ 28.27 square units.",
"type": "output_text",
"logprobs": null
}
],
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"temperature": 1.0,
"tool_choice": "auto",
"tools": [
{
"name": "lark_tool",
"parameters": null,
"strict": null,
"type": "custom",
"description": null,
"format": {
"type": "grammar",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/",
"syntax": "lark"
}
}
],
"top_p": 1.0,
"background": false,
"max_output_tokens": null,
"max_tool_calls": null,
"previous_response_id": null,
"prompt": null,
"prompt_cache_key": null,
"reasoning": {
"effort": "medium",
"generate_summary": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"status": "completed",
"text": {
"format": {
"type": "text"
}
},
"top_logprobs": null,
"truncation": "disabled",
"usage": {
"input_tokens": 139,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 240,
"output_tokens_details": {
"reasoning_tokens": 192
},
"total_tokens": 379
},
"user": null,
"content_filters": null,
"store": true
}
Завершение чата
{
"messages": [
{
"role": "user",
"content": "Which one is larger, 42 or 0?"
}
],
"tools": [
{
"type": "custom",
"name": "custom_tool",
"custom": {
"name": "lark_tool",
"format": {
"type": "grammar",
"grammar": {
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
}
}
],
"tool_choice": "required",
"model": "gpt-5-2025-08-07"
}
Доступность
Доступность региона
| Модель | Регион | Ограниченный доступ |
|---|---|---|
gpt-chat-latest |
Глобальный стандарт: Восточная часть США2 Центральная Швеция Южная часть США Центральная Польша |
Запрос на доступ не требуется. |
gpt-5.5 |
Доступность модели | Запрос на доступ не требуется. Запрос квоты, необходимый в зависимости от уровня квоты. По умолчанию подписки уровня 5 и 6 имеют квоту. |
gpt-5.4-mini |
Доступность модели | Запрос на доступ не требуется. |
gpt-5.4-nano |
Доступность модели | Запрос на доступ не требуется. |
gpt-5.4-pro |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.4 |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.3-codex |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.2-codex |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.2 |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.1-codex-max |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5.1 |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5.1-chat |
Доступность модели | Запрос на доступ не требуется. |
gpt-5.1-codex |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5.1-codex-mini |
Доступность модели | Запрос на доступ не требуется. |
gpt-5-pro |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5-codex |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5 |
Доступность модели | Доступ больше не ограничен для этой модели. |
gpt-5-mini |
Доступность модели | Запрос на доступ не требуется. |
gpt-5-nano |
Доступность модели | Запрос на доступ не требуется. |
o3-pro |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
codex-mini |
Доступность модели | Запрос на доступ не требуется. |
o4-mini |
Доступность модели | Запрос доступа не требуется для использования основных возможностей этой модели. Запрос доступа: функция сводки рассуждений для o4-mini |
o3 |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа |
o3-mini |
Доступность модели. | Доступ больше не ограничен для этой модели. |
o1 |
Доступность модели. | Доступ больше не ограничен для этой модели. |
Поддержка API и функций
| Функция | gpt-5.5, 2026-04-24 | gpt-5.4-nano, 2026-03-17 | gpt-5.4-mini, 2026-03-17 | gpt-5.4-pro | gpt-5.4, 2026-03-05 | gpt-5.3-codex, 2026-02-24 | gpt-5.2-codex, 2026-01-14 | gpt-5.2, 2025-12-11 | gpt-5.1-codex-max, 2025-12-04 | gpt-5.1, 2025-11-13 | gpt-5.1-chat, 2025-11-13 | gpt-5.1-codex, 2025-11-13 | gpt-5.1-codex-mini, 2025-11-13 | gpt-5-pro, 2025-10-06 | gpt-5-codex, 2025-09-011 | gpt-5, 2025-08-07 | gpt-5-mini, 2025-08-07 | gpt-5-nano, 2025-08-07 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Сообщения разработчика | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Структурированные выходные данные | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Окно контекста | 1,050,000 Вход: 922,000 Выход: 128,000 |
400,000 Входные данные: 272 000 Выход: 128 000 |
400,000 Входные данные: 272 000 Вывод: 128 000 |
1,050,000 Вход: 922,000 Выход: 128,000 |
1,050,000 Ввод: 922,000 Выход: 128,000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выход: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
128,000 Входные данные: 111 616 Вывод: 16384 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
400,000 Входные данные: 272 000 Выходные данные: 128 000 |
| Аргументирование усилий7 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ 6 | ✅ 4 | ✅ | ✅ | ✅ | ✅ 5 | ✅ | ✅ | ✅ | ✅ |
| Ввод изображения | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| API завершения чата | ✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | - | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| API для ответов | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Функции и инструменты | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Вызовы параллельных инструментов1 | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
max_completion_tokens
2 |
✅ | ✅ | ✅ | - | ✅ | - | - | ✅ | - | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| Системные сообщения 3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Сводка по причинам | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Стриминг | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
1 Вызовы параллельных инструментов не поддерживаются, если reasoning_effort установлено значение minimal
2 Модели причин будут работать только с max_completion_tokens параметром при использовании API завершения чата. Используйте max_output_tokens с API ответов.
3 Последние модели рассуждений поддерживают системные сообщения для облегчения миграции. Не следует использовать как сообщение разработчика, так и системное сообщение в одном запросе API.
По умолчанию используется значение 4gpt-5.1reasoning_effortnone. При переходе с предыдущих моделей рассуждений на gpt-5.1 помните, что может потребоваться обновить ваш код, чтобы явно указать уровень reasoning_effort, если требуется задействовать reasoning_effort.
5gpt-5-pro поддерживает только reasoning_efforthigh, это значение по умолчанию, даже если оно не передается явно в модель.
6gpt-5.1-codex-max добавляет поддержку нового reasoning_effort уровня xhigh, на котором можно установить максимальные усилия для рассуждений.
7gpt-5.2, gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-max и gpt-5.1-codex-mini поддерживают 'None' как значение для параметра reasoning_effort. Если вы хотите использовать эти модели для создания ответов без аргументов, задайте .reasoning_effort='None' Этот параметр может увеличить скорость.
НОВЫЕ функции рассуждения GPT-5
| Функция | Описание |
|---|---|
reasoning_effort |
xhigh поддерживается только в gpt-5.1-codex-max minimal поддерживается только оригинальными моделями рассуждений GPT-5.
minimal не поддерживается с gpt-5.1 или более новой версией * Параметры: none, , minimallowmedium, highxhigh |
verbosity |
Новый параметр, предоставляющий более детализированный контроль над степенью краткости выходных данных модели. Параметры: low, medium, high. |
preamble |
Модели определения последовательности GPT-5 имеют возможность тратить дополнительное время на "мышление" перед выполнением вызова функции или инструмента. Когда такое планирование происходит, модель может получить представление о шагах планирования в ответе модели с помощью нового объекта, называемого preamble объектом.Создание преамбул в ответе модели не гарантируется, хотя вы можете стимулировать модель, используя параметр instructions и передавая содержимое, например: "Вы ДОЛЖНЫ тщательно планировать перед каждым вызовом функции." Всегда выводите ваш план пользователю перед вызовом любой функции. |
| разрешенные средства | Можно указать несколько инструментов tool_choice вместо только одного. |
| настраиваемый тип инструмента | Включает выходные данные необработанного текста (не json) |
lark_tool |
Позволяет использовать некоторые возможности Python lark для более гибкого ограничения ответов модели |
*
gpt-5-codex кроме того, не поддерживается reasoning_effortminimal.
Для получения дополнительных сведений мы также рекомендуем прочитать руководство OpenAI по созданию запросов на GPT-5 и их руководство по функциям GPT-5.
Примечание
- Чтобы избежать времени ожидания, рекомендуется использовать фоновый
o3-proрежим. -
o3-proв настоящее время не поддерживает генерацию изображений.
Не поддерживается
В настоящее время следующие возможности не поддерживаются в моделях рассуждений:
-
temperature,top_p,presence_penaltyfrequency_penaltylogprobstop_logprobslogit_biasmax_tokens
Выходные данные Markdown
По умолчанию модели o3-mini и o1 не будут генерировать выходные данные, которые включают форматирование markdown. Распространенный вариант использования, когда это поведение нежелательно, если требуется, чтобы модель выводила код, содержащийся в блоке кода Markdown. При создании выходных данных без форматирования markdown вы теряете такие функции, как выделение синтаксиса и блоки кода для копирования в интерактивных игровых площадках. Чтобы переопределить это новое поведение по умолчанию и поощрять включение markdown в ответы модели, добавьте строку Formatting re-enabled в начало сообщения разработчика.
Добавление Formatting re-enabled в начало сообщения разработчика не гарантирует, что модель будет использовать форматирование в стиле markdown в ответе, а только повышает вероятность этого. Мы обнаружили в результате внутреннего тестирования, что Formatting re-enabled менее эффективно само по себе с моделью o1, чем с o3-mini.
Чтобы повысить производительность Formatting re-enabled , можно дополнительно увеличить начало сообщения разработчика, которое часто приведет к нужным выходным данным. Вместо того чтобы просто добавить Formatting re-enabled в начало сообщения разработчика, можно поэкспериментировать с добавлением более описательных начальных инструкций, таких как один из приведенных ниже примеров:
Formatting re-enabled - please enclose code blocks with appropriate markdown tags.Formatting re-enabled - code output should be wrapped in markdown.
В зависимости от ожидаемых выходных данных может потребоваться настроить исходное сообщение разработчика для конкретного варианта использования.