Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Förutsagda utdata kan förbättra svarsfördröjningen för modellen för chattavslutningar där minimala ändringar krävs för en större texttext. Om du ber modellen att ge ett svar där en stor del av det förväntade svaret redan är känt kan förutsagda utdata avsevärt minska svarstiden för den här begäran. Den här funktionen passar särskilt bra för kodningsscenarier, inklusive automatisk komplettering, felidentifiering och realtidsredigering, där hastighet och svarstider är viktiga för utvecklare och slutanvändare. I stället för att modellen återskapar all text från grunden kan du ange för modellen att det mesta av svaret redan är känt genom att skicka den kända texten till parametern prediction .
Modellstöd
-
gpt-4o-miniversion:2024-07-18 -
gpt-4oversion:2024-08-06 -
gpt-4oversion:2024-11-20 -
gpt-4.1version:2025-04-14 -
gpt-4.1-nanoversion:2025-04-14 -
gpt-4.1-miniversion:2025-04-14
API-stöd
Introducerades först i 2025-01-01-preview. Stöds i alla efterföljande versioner.
Funktioner som inte stöds
Förutsagda utdata är för närvarande endast text. Dessa funktioner kan inte användas tillsammans med parametern prediction och förutsagda utdata.
- Verktyg/funktionsanrop
- ljudmodeller/indata och utdata
-
nvärden som är högre än1 logprobs-
presence_penaltyvärden som är större än0 -
frequency_penaltyvärden som är större än0 max_completion_tokens
Anmärkning
Funktionen för förutsagda utdata är för närvarande inte tillgänglig för modeller i regionen Sydostasien.
Komma igång
För att demonstrera grunderna i förutsagda utdata börjar vi med att be en modell att omstrukturera koden från det vanliga programmeringsproblemet FizzBuzz för att ersätta instansen av FizzBuzz med MSFTBuzz. Vi skickar vår exempelkod till modellen på två platser. Först som en del av ett användarmeddelande i matrisen messages /listan och en andra gång som en del av innehållet i den nya prediction parametern.
Du kan behöva uppgradera OpenAI-klientbiblioteket för att få åtkomst till parametern prediction .
pip install openai --upgrade
import os
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,
)
code = """
for number in range(1, 101):
if number % 3 == 0 and number % 5 == 0:
print("FizzBuzz")
elif number % 3 == 0:
print("Fizz")
elif number % 5 == 0:
print("Buzz")
else:
print(number)
"""
instructions = """
Replace string `FizzBuzz` with `MSFTBuzz`. Respond only
with code, and with no markdown formatting.
"""
completion = client.chat.completions.create(
model="gpt-4o-mini", # replace with your unique model deployment name
messages=[
{
"role": "user",
"content": instructions
},
{
"role": "user",
"content": code
}
],
prediction={
"type": "content",
"content": code
}
)
print(completion.model_dump_json(indent=2))
Utgång
{
"id": "chatcmpl-AskZk3P5QGmefqobDw4Ougo6jLxSP",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "for number in range(1, 101):\n if number % 3 == 0 and number % 5 == 0:\n print(\"MSFTBuzz\")\n elif number % 3 == 0:\n print(\"Fizz\")\n elif number % 5 == 0:\n print(\"Buzz\")\n else:\n print(number)",
"refusal": null,
"role": "assistant",
"audio": null,
"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": 1737612112,
"model": "gpt-4o-mini-2024-07-18",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_5154047bf2",
"usage": {
"completion_tokens": 77,
"prompt_tokens": 124,
"total_tokens": 201,
"completion_tokens_details": {
"accepted_prediction_tokens": 6,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 4
},
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
}
},
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"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"
}
}
}
]
}
Observera i utdata de nya svarsparametrarna för accepted_prediction_tokens och rejected_prediction_tokens:
"usage": {
"completion_tokens": 77,
"prompt_tokens": 124,
"total_tokens": 201,
"completion_tokens_details": {
"accepted_prediction_tokens": 6,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 4
}
Hjälp till accepted_prediction_tokens att minska svarsfördröjningen för modellen, men alla rejected_prediction_tokens har samma kostnadskonsekvenser som ytterligare utdatatoken som genereras av modellen. Därför kan förutsagda utdata förbättra modellens svarstider, men det kan leda till större kostnader. Du måste utvärdera och balansera den ökade modellprestandan mot potentiella kostnadsökningar.
Det är också viktigt att förstå att användning av förutsägande utdata inte garanterar en minskning av svarstiden. En stor begäran med en större procentandel avvisade förutsägelsetoken än accepterade förutsägelsetoken kan leda till en ökning av svarstiderna för modellen i stället för en minskning.
Anmärkning
Till skillnad från promptcachelagring som bara fungerar när ett visst minsta antal initiala token i början av en begäran är identiska, begränsas inte förutsagda utdata av tokenplats. Även om svarstexten innehåller nya utdata som returneras före de förutsagda utdata kan accepted_prediction_tokens det fortfarande inträffa.
Strömmande
Prestandaökningar för förutsagda utdata är ofta tydligast om du returnerar dina svar med strömning aktiverat.
Du kan behöva uppgradera OpenAI-klientbiblioteket för att få åtkomst till parametern prediction .
pip install openai --upgrade
import os
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,
)
code = """
for number in range(1, 101):
if number % 3 == 0 and number % 5 == 0:
print("FizzBuzz")
elif number % 3 == 0:
print("Fizz")
elif number % 5 == 0:
print("Buzz")
else:
print(number)
"""
instructions = """
Replace string `FizzBuzz` with `MSFTBuzz`. Respond only
with code, and with no markdown formatting.
"""
completion = client.chat.completions.create(
model="gpt-4o-mini", # replace with your unique model deployment name
messages=[
{
"role": "user",
"content": instructions
},
{
"role": "user",
"content": code
}
],
prediction={
"type": "content",
"content": code
},
stream=True
)
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end='',)