Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модели причин Azure OpenAI предназначены для решения задач по устранению причин и решению проблем с повышенным фокусом и возможностями. Эти модели тратят больше времени на обработку и понимание запроса пользователя, что делает их исключительно сильными в таких областях, как наука, программирование и математика по сравнению с предыдущими итерациями.
Ключевые возможности моделей рассуждений:
- Сложное создание кода: способен создавать алгоритмы и обрабатывать сложные задачи программирования для поддержки разработчиков.
- Расширенное решение проблем: идеально подходит для комплексных сеансов мозгового штурма и решения сложных задач.
- Комплексное сравнение документов: идеально подходит для анализа контрактов, файлов дела или юридических документов для выявления тонких различий.
- Управление инструкциями и рабочими процессами: особенно эффективно для тех рабочих процессов, которые требуют более коротких контекстов.
Использование
В настоящее время эти модели не поддерживают тот же набор параметров, что и другие модели, использующие 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://cognitiveservices.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. Модели причин GPT-5 поддерживают новый reasoning_effort параметр minimal. Чем выше параметр усилий, тем дольше модель будет обрабатывать запрос, что обычно приводит к большему количеству 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://cognitiveservices.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://cognitiveservices.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 и может использоваться для более гибкого ограничения выходных данных модели.
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:
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.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-5.1 |
Восточный регион США 2 и Центральный регион Швеции (Global Standard и DataZone Standard) | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.1-chat |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос на доступ не требуется. |
gpt-5.1-codex |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5.1-codex-mini |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос на доступ не требуется. |
gpt-5-pro |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5-codex |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5 |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
gpt-5-mini |
Доступность модели | Запрос на доступ не требуется. |
gpt-5-nano |
Доступность модели | Запрос на доступ не требуется. |
o3-pro |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос доступа: приложение модели ограниченного доступа. Если у вас уже есть доступ к модели ограниченного доступа, запрос не требуется. |
codex-mini |
Восточная часть США2 и Центральная Швеция (глобальный стандарт) | Запрос на доступ не требуется. |
o4-mini |
Доступность модели | Запрос доступа не требуется для использования основных возможностей этой модели. Запрос доступа: функция сводки рассуждений о4-mini |
o3 |
Доступность модели | Запрос доступа: приложение модели ограниченного доступа |
o3-mini |
Доступность модели. | Доступ больше не ограничен для этой модели. |
o1 |
Доступность модели. | Доступ больше не ограничен для этой модели. |
o1-mini |
Доступность модели. | Запрос на доступ для развертываний Global Standard не требуется. Развертывания уровня "Стандартный" (региональные) в настоящее время доступны только для определенных клиентов, которым ранее был предоставлен доступ в рамках релиза o1-preview. |
Поддержка API и функций
| Функция | 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 |
|---|---|---|---|---|---|---|---|---|---|
| Версия API | версия 1 | версия 1 | версия 1 | версия 1 | версия 1 | версия 1 | версия 1 | версия 1 | версия 1 |
| Сообщения разработчика | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Структурированные выходные данные | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Окно контекста | 400,000 Входные данные: 272 000 Выходные данные: 128 000 |
128,000 Входные данные: 111 616 Выходные данные: 16 384 |
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 |
| Усилие на размышление | ✅ 4 | ✅ | ✅ | ✅ | ✅ 5 | ✅ | ✅ | ✅ | ✅ |
| Ввод изображения | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| API завершения чата | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| API ответов на запросы | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Функции и инструменты | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Вызовы параллельных инструментов1 | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
max_completion_tokens
2 |
✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| Системные сообщения 3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Сводка по причинам | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Стриминг | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
1 Вызовы параллельных инструментов не поддерживаются, если
2 Модели причин будут работать только с max_completion_tokens параметром при использовании API завершения чата. Используйте max_output_tokens с API ответов.
3 Последние модели причин поддерживают системные сообщения, чтобы упростить миграцию. Не следует использовать как сообщение разработчика, так и системное сообщение в одном запросе API.
По умолчанию устанавливается значение 4gpt-5.1reasoning_effortnone. При обновлении предыдущих моделей рассуждений до gpt-5.1, помните, что может потребоваться обновить код, чтобы явно указать уровень усилий для рассуждений, если требуются усилия на рассуждения.
5gpt-5-pro поддерживает только reasoning_efforthigh, это значение является значением по умолчанию, даже если оно не передано явно модели.
НОВЫЕ функции причины GPT-5
| Функция | Описание |
|---|---|
reasoning_effort |
minimal теперь поддерживается с моделями анализа серии GPT-5.
*
none поддерживается только для gpt-5.1 Параметры: none, , minimallowmediumhigh |
verbosity |
Новый параметр, предоставляющий более детализированный контроль над степенью краткости выходных данных модели. Параметры: low, medium, high. |
preamble |
Модели определения последовательности GPT-5 имеют возможность тратить дополнительное время на "мышление" перед выполнением вызова функции или инструмента. Когда такое планирование происходит, модель может получить представление о шагах планирования в ответе модели с помощью нового объекта, называемого preamble объектом.Создание преамблировок в ответе модели не гарантируется, хотя вы можете поощрять модель с помощью instructions параметра и передачи содержимого, например "Необходимо тщательно планировать перед каждым вызовом функции. ALWAYS выводит план пользователю перед вызовом любой функции" |
| разрешенные средства | Можно указать несколько инструментов tool_choice вместо одного. |
| настраиваемый тип инструмента | Включает выходные данные необработанного текста (не json) |
lark_tool |
Позволяет использовать некоторые возможности рывка Python для более гибкого ограничения ответов модели |
*
gpt-5-codex не поддерживает reasoning_effort минимальное число.
Для получения дополнительных сведений мы также рекомендуем ознакомиться с руководством по подготовке книги OpenAI в GPT-5 и их руководстве по функциям GPT-5.
Замечание
- Чтобы избежать времени ожидания, рекомендуется использовать фоновый
o3-proрежим. -
o3-proв настоящее время не поддерживает генерацию изображений.
Не поддерживается
В настоящее время не поддерживаются следующие модели рассуждений:
-
temperature,top_p,presence_penaltyfrequency_penaltylogprobstop_logprobslogit_biasmax_tokens - В настоящее время средства
apply_patchиshellне поддерживаются. Поддержка этих инструментов с моделями серии gpt-5.1 скоро ожидается.
Выходные данные 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.
В зависимости от ожидаемых выходных данных может потребоваться настроить исходное сообщение разработчика для конкретного варианта использования.