Modelli di ragionamento OpenAI di Azure
I modelli e o1-mini
OpenAI o1
di Azure sono progettati per affrontare le attività di ragionamento e risoluzione dei problemi con maggiore attenzione e funzionalità. Questi modelli dedicano più tempo all'elaborazione e comprensione delle richieste degli utenti, rafforzando al contempo aree come scienze, codifica e matematica rispetto alle iterazioni precedenti.
Funzionalità principali della serie o1:
- Generazione di codice complessa: in grado di generare algoritmi e gestire attività di codifica avanzate per supportare gli sviluppatori.
- Risoluzione avanzata dei problemi: ideale per sessioni di brainstorming complete e per affrontare le sfide multiformi.
- Confronto documenti complessi: perfetto per l'analisi di contratti, file di casi o documenti legali per identificare piccole differenze.
- Istruzioni successive e Gestione del flusso di lavoro: particolarmente efficace per la gestione dei flussi di lavoro che richiedono contesti più brevi.
Disponibilità
I modelli di serie o1 sono ora disponibili per l'accesso alle API e la distribuzione del modello. La registrazione è obbligatoria e l'accesso verrà concesso in base ai criteri di idoneità di Microsoft. I clienti che in precedenza hanno applicato e ricevuto l'accesso a o1-preview
, non devono riapplicare perché sono automaticamente presenti nell'elenco di attesa per il modello più recente.
Richiesta di accesso: domanda per il modello con accesso limitato
Dopo aver concesso l'accesso, sarà necessario creare una distribuzione per ogni modello. Se si dispone di una distribuzione esistente o1-preview
, l'aggiornamento sul posto non è attualmente supportato, è necessario creare una nuova distribuzione.
Aree di disponibilità
Modello | Paese |
---|---|
o1 |
Stati Uniti orientali 2 (standard globale) Svezia centrale (standard globale) |
o1-preview |
Vedere la pagina dei modelli. |
o1-mini |
Vedere la pagina dei modelli. |
Supporto dell'API
Il supporto iniziale per i modelli di anteprima o1-preview e o1-mini è stato aggiunto nella versione 2024-09-01-preview
dell'API .
Come parte di questa versione, il max_tokens
parametro è stato deprecato e sostituito con il nuovo max_completion_tokens
parametro. I modelli di serie o1 funzioneranno solo con il max_completion_tokens
parametro .
Il modello di serie o1 più con supporto più recente è o1
Version: 2024-12-17. Questo modello di disponibilità generale (GA) deve essere usato con la versione 2024-12-01-preview
dell'API .
Anteprima 2024-12-01
2024-12-01-preview
aggiunge il supporto per il nuovo reasoning_effort
parametro, gli output strutturati e i messaggi per sviluppatori. I modelli di ragionamento dell'anteprima meno recenti non supportano attualmente queste funzionalità. Per i modelli di ragionamento, queste funzionalità sono attualmente disponibili solo con o1
la versione 2024-12-17.
Utilizzo
Questi modelli non supportano attualmente lo stesso set di parametri di altri modelli che usano l'API di completamento della chat. Attualmente è supportato solo un subset limitato. L'uso di parametri standard come temperature
e top_p
genererà errori.
Sarà necessario aggiornare la libreria client OpenAI per accedere ai parametri più recenti.
pip install openai --upgrade
Se non si ha ancora una volta usato Microsoft Entra ID per l'autenticazione, vedere How to configure Azure OpenAI Service with Microsoft Entra ID authentication (Come configurare il servizio Azure OpenAI con l'autenticazione 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))
Output:
{
"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"
}
}
}
]
}
Nota
I modelli di ragionamento hanno reasoning_tokens
come parte della completion_tokens_details
risposta del modello. Si tratta di token nascosti che non vengono restituiti come parte del contenuto della risposta del messaggio, ma vengono usati dal modello per generare una risposta finale alla richiesta. 2024-12-01-preview
aggiunge un nuovo parametro aggiuntivo reasoning_effort
che può essere impostato su low
, medium
o high
con il modello più recente o1
. Maggiore è l'impostazione dell'impegno, maggiore sarà la spesa per l'elaborazione della richiesta da parte del modello, che in genere comporterà un numero maggiore di reasoning_tokens
.
Messaggi per sviluppatori
I messaggi "role": "developer"
dello sviluppatore funzionalmente sono gli stessi dei messaggi di sistema.
- I messaggi di sistema non sono supportati con i modelli di ragionamento della serie o1.
o1-2024-12-17
con la versione dell'API:2024-12-01-preview
e versioni successive aggiunge il supporto per i messaggi per sviluppatori.
L'aggiunta di un messaggio per sviluppatore all'esempio di codice precedente sarà simile alla seguente:
Sarà necessario aggiornare la libreria client OpenAI per accedere ai parametri più recenti.
pip install openai --upgrade
Se non si ha familiarità con l'uso dell'ID Entra di Microsoft per l'autenticazione, vedere Come configurare il servizio Azure OpenAI con l'autenticazione 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))