Модели причин Azure OpenAI
Модели Azure OpenAI o-series
предназначены для решения задач по устранению причин и решению проблем с повышенным вниманием и возможностями. Эти модели тратят больше времени на обработку и понимание запроса пользователя, что делает их исключительно сильными в таких областях, как наука, программирование и математика по сравнению с предыдущими итерациями.
Ключевые возможности моделей o-серии:
- Сложное создание кода: способен создавать алгоритмы и обрабатывать сложные задачи программирования для поддержки разработчиков.
- Расширенное решение проблем: идеально подходит для комплексных сеансов мозгового штурма и решения сложных задач.
- Комплексное сравнение документов: идеально подходит для анализа контрактов, файлов дела или юридических документов для выявления тонких различий.
- Инструкции и управление рабочими процессами: особенно эффективно для управления рабочими процессами, требующими более коротких контекстов.
Availability
Для доступа к o3-mini
, o1
а o1-preview
также требуется регистрация, и доступ будет предоставлен на основе критериев соответствия корпорации Майкрософт.
Клиенты, которые ранее применили и получили доступ к o1
или o1-preview
не должны повторно применяться, так как они автоматически находятся в списке ожидания для последней модели.
Запрос доступа: приложение модели ограниченного доступа
Доступность по регионам
Модель | Область/регион | Ограниченный доступ |
---|---|---|
o3-mini |
Доступность модели. | Приложение модели ограниченного доступа |
o1 |
Доступность модели. | Приложение модели ограниченного доступа |
o1-preview |
Доступность модели. | Эта модель доступна только для клиентов, которым предоставлен доступ в рамках исходного выпуска ограниченного доступа. В настоящее время мы не расширяем доступ к o1-preview . |
o1-mini |
Доступность модели. | Запрос на доступ для развертываний Global Standard не требуется. Развертывания уровня "Стандартный" (региональные) в настоящее время доступны только для выбора клиентов, которым ранее предоставлен доступ в рамках o1-preview выпуска. |
Поддержка API и функций
Компонент | o3-mini, 2025-01-31 | o1, 2024-12-17 | o1-preview, 2024-09-12 | o1-mini, 2024-09-12 |
---|---|---|---|---|
Версия 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 |
Сообщения разработчика | ✅ | ✅ | - | - |
Структурированные выходные данные | ✅ | ✅ | - | - |
Окно контекста | Входные данные: 200 000 Выходные данные: 100 000 |
Входные данные: 200 000 Выходные данные: 100 000 |
Входные данные: 128 000 Выходные данные: 32 768 |
Входные данные: 128 000 Выходные данные: 65 536 |
Аргументирование усилий | ✅ | ✅ | - | - |
Поддержка визуального зрения | - | ✅ | - | - |
Функции и инструменты | ✅ | ✅ | - | - |
max_completion_tokens * |
✅ | ✅ | ✅ | ✅ |
Системные сообщения** | ✅ | ✅ | - | - |
Потоковая передача | ✅ | - | - | - |
* Модели причин будут работать только с параметром max_completion_tokens
.
**Последняя модель серии O* поддерживает системные сообщения, чтобы упростить миграцию. При использовании системного сообщения с o1
ним оно будет рассматриваться как сообщение o3-mini
разработчика. Не следует использовать как сообщение разработчика, так и системное сообщение в одном запросе API.
Не поддерживается
В настоящее время в настоящее время неподдерживаемые модели рассуждений:
- Вызов параллельного инструмента
-
temperature
,top_p
,presence_penalty
frequency_penalty
logprobs
top_logprobs
logit_bias
max_tokens
Использование
В настоящее время эти модели не поддерживают тот же набор параметров, что и другие модели, использующие API завершения чата.
Вам потребуется обновить клиентскую библиотеку OpenAI для доступа к последним параметрам.
pip install openai --upgrade
Если вы не знакомы с использованием идентификатора Microsoft Entra для проверки подлинности, см . инструкции по настройке Службы Azure OpenAI с проверкой подлинности Идентификатора Microsoft Entra.
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))
Выходные данные:
{
"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"
}
}
}
]
}
Аргументирование усилий
Примечание.
Модели причин имеют reasoning_tokens
в ответе completion_tokens_details
модели. Это скрытые маркеры, которые не возвращаются в составе содержимого ответа сообщения, но используются моделью для создания окончательного ответа на запрос.
2024-12-01-preview
добавляет дополнительный новый параметр reasoning_effort
, для которого можно задать low
значение , medium
или high
с последней o1
моделью. Чем выше параметр усилий, тем дольше модель будет тратить обработку запроса, что, как правило, приведет к большему количеству reasoning_tokens
.
Сообщения разработчика
Функциональные сообщения "role": "developer"
разработчика совпадают с системным сообщением.
Добавление сообщения разработчика в предыдущий пример кода будет выглядеть следующим образом:
Вам потребуется обновить клиентскую библиотеку OpenAI для доступа к последним параметрам.
pip install openai --upgrade
Если вы не знакомы с использованием идентификатора Microsoft Entra для проверки подлинности, см . инструкции по настройке Службы Azure OpenAI с проверкой подлинности Идентификатора Microsoft Entra.
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))
Выходные данные 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.
В зависимости от ожидаемых выходных данных может потребоваться настроить исходное сообщение разработчика для конкретного варианта использования.