Modely zdůvodňování Azure OpenAI
Modely Azure OpenAI o-series
jsou navržené tak, aby řešily důvody a úlohy řešení problémů se zvýšeným zaměřením a schopností. Tyto modely tráví více času zpracováním a porozuměním požadavku uživatele, což je mimořádně silné v oblastech, jako jsou věda, kódování a matematika v porovnání s předchozími iteracemi.
Klíčové funkce modelů řady o:
- Komplexní generování kódu: Umožňuje generovat algoritmy a zpracovávat pokročilé úlohy kódování pro podporu vývojářů.
- Pokročilé řešení problémů: Ideální pro komplexní debaty a řešení vícestranných problémů.
- Komplexní porovnání dokumentů: Ideální pro analýzu kontraktů, souborů případů nebo právních dokumentů k identifikaci drobných rozdílů.
- Instrukce Sledování a správa pracovních postupů: Zvláště efektivní pro správu pracovních postupů vyžadujících kratší kontexty.
Dostupnost
Pro přístup k o3-mini
aplikaci , o1
a o1-preview
, registrace je vyžadována a přístup bude udělen na základě kritérií způsobilosti společnosti Microsoft.
Zákazníci, kteří dříve použili a obdrželi přístup k o1
nebo o1-preview
, nemusí znovu použít, protože jsou automaticky na seznamu čekání na nejnovější model.
Vyžádání přístupu: aplikace modelu omezeného přístupu
Regionální dostupnost
Model | Oblast | Omezený přístup |
---|---|---|
o3-mini |
Dostupnost modelu | Aplikace modelu s omezeným přístupem |
o1 |
Dostupnost modelu | Aplikace modelu s omezeným přístupem |
o1-preview |
Dostupnost modelu | Tento model je k dispozici pouze pro zákazníky, kteří měli udělený přístup jako součást původní verze omezeného přístupu. V současné době nešiřujeme přístup k o1-preview . |
o1-mini |
Dostupnost modelu | Pro nasazení globálního standardu není potřeba žádná žádost o přístup. Standardní (regionální) nasazení jsou v současné době k dispozici pouze pro vybrané zákazníky, kteří měli v rámci o1-preview vydání dříve udělený přístup. |
Podpora rozhraní API a funkcí
Funkce | o3-mini, 2025-01-31 | o1, 2024-12-17 | o1-preview, 2024-09-12 | o1-mini, 2024-09-12 |
---|---|---|---|---|
Verze rozhraní 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 |
Zprávy pro vývojáře | ✅ | ✅ | - | - |
Strukturované výstupy | ✅ | ✅ | - | - |
Kontextové okno | Vstup: 200 000 Výstup: 100 000 |
Vstup: 200 000 Výstup: 100 000 |
Vstup: 128 000 Výstup: 32 768 |
Vstup: 128 000 Výstup: 65 536 |
Zdůvodnění úsilí | ✅ | ✅ | - | - |
Podpora zpracování obrazu | - | ✅ | - | - |
Funkce/nástroje | ✅ | ✅ | - | - |
max_completion_tokens * |
✅ | ✅ | ✅ | ✅ |
Systémové zprávy** | ✅ | ✅ | - | - |
Streamování | ✅ | - | - | - |
* Modely odůvodnění budou fungovat pouze s parametrem max_completion_tokens
.
**Nejnovější model řady o* series podporuje systémové zprávy, které usnadňují migraci. Když použijete systémovou zprávu o3-mini
a o1
bude se považovat za zprávu vývojáře. Ve stejném požadavku rozhraní API byste neměli používat zprávu vývojáře i systémovou zprávu.
Nepodporuje se
V současné době nejsou podporované modely odůvodnění:
- Paralelní volání nástrojů
-
temperature
,top_p
,presence_penalty
, ,logprobs
frequency_penalty
,top_logprobs
, ,logit_bias
max_tokens
Využití
Tyto modely v současné době nepodporují stejnou sadu parametrů jako jiné modely, které používají rozhraní API pro dokončování chatu.
Abyste měli přístup k nejnovějším parametrům, budete muset upgradovat klientskou knihovnu OpenAI.
pip install openai --upgrade
Pokud s ověřováním začínáte používat ID Microsoft Entra, přečtěte si, jak nakonfigurovat službu Azure OpenAI s ověřováním 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))
Výstup:
{
"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"
}
}
}
]
}
Zdůvodnění úsilí
Poznámka:
Modely odůvodnění jsou reasoning_tokens
součástí completion_tokens_details
odpovědi modelu. Jedná se o skryté tokeny, které se nevrací jako součást obsahu odpovědi na zprávu, ale model je používá k vygenerování konečné odpovědi na vaši žádost.
2024-12-01-preview
přidá další nový parametr reasoning_effort
, který lze nastavit na low
, medium
nebo high
s nejnovějším o1
modelem. Čím vyšší je nastavení úsilí, tím déle model stráví zpracováním požadavku, což obvykle vede k většímu reasoning_tokens
počtu .
Zprávy pro vývojáře
Funkčně vývojářské zprávy "role": "developer"
jsou stejné jako systémové zprávy.
Přidání zprávy vývojáře do předchozího příkladu kódu by vypadalo takto:
Abyste měli přístup k nejnovějším parametrům, budete muset upgradovat klientskou knihovnu OpenAI.
pip install openai --upgrade
Pokud s ověřováním začínáte používat ID Microsoft Entra, přečtěte si, jak nakonfigurovat službu Azure OpenAI s ověřováním 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))
Výstup Markdownu
Ve výchozím nastavení se modely o1
nebudou o3-mini
pokoušet vytvořit výstup, který zahrnuje formátování markdownu. Běžným případem použití, kdy je toto chování nežádoucí, je, když chcete, aby model výstupoval kód obsažený v bloku kódu markdownu. Když model vygeneruje výstup bez formátování Markdownu, ztratíte funkce, jako je zvýraznění syntaxe, a kopírovatelné bloky kódu v interaktivních prostředích dětského hřiště. Pokud chcete toto nové výchozí chování přepsat a podpořit zahrnutí Markdownu do odpovědí modelu, přidejte řetězec Formatting re-enabled
na začátek zprávy vývojáře.
Přidání Formatting re-enabled
na začátek zprávy vývojáře nezaručuje, že model do odpovědi zahrne formátování Markdownu, zvyšuje se tím pravděpodobnost pouze. Zjistili jsme z interního o1
testování, které Formatting re-enabled
je méně účinné samostatně s modelem než s o3-mini
.
Pokud chcete zvýšit výkon Formatting re-enabled
, můžete dále rozšířit začátek zprávy vývojáře, což často vede k požadovanému výstupu. Místo pouhého přidání Formatting re-enabled
na začátek zprávy pro vývojáře můžete experimentovat s přidáním popisnější počáteční instrukce, jako je jeden z následujících příkladů:
Formatting re-enabled - please enclose code blocks with appropriate markdown tags.
Formatting re-enabled - code output should be wrapped in markdown.
V závislosti na očekávaném výstupu možná budete muset počáteční zprávu pro vývojáře dále přizpůsobit, aby se zaměřila na váš konkrétní případ použití.