Поделиться через


Модели причин 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_penaltyfrequency_penaltylogprobstop_logprobslogit_biasmax_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.

В зависимости от ожидаемых выходных данных может потребоваться настроить исходное сообщение разработчика для конкретного варианта использования.