GPT-5: Практическое руководство по Verbosity, функциям, CFG и Minimal Reasoning
'Краткое руководство для разработчиков по возможностям GPT-5: настройка verbosity, свободные вызовы функций, грамматики и режим минимального рассуждения с кодом.'
Установка библиотек
Установите необходимые Python-пакеты и задайте ключ API в переменных окружения.
!pip install pandas openaiimport os
from getpass import getpass
os.environ['OPENAI_API_KEY'] = getpass('Enter OpenAI API Key: ')Параметр Verbosity
Параметр Verbosity управляет длиной и детализацией ответов GPT-5 без изменения самого запроса.
low1 короткие и емкие ответы.medium(по умолчанию) 1 сбалансированная детализация и ясность.high1 подробные объяснения, полезно для обучения и аудита.
Пример ниже запускает один и тот же запрос с тремя значениями verbosity и собирает токен-метрики и ответы.
from openai import OpenAI
import pandas as pd
from IPython.display import display
client = OpenAI()
question = "Write a poem about a detective and his first solve"
data = []
for verbosity in ["low", "medium", "high"]:
response = client.responses.create(
model="gpt-5-mini",
input=question,
text={"verbosity": verbosity}
)
# Extract text
output_text = ""
for item in response.output:
if hasattr(item, "content"):
for content in item.content:
if hasattr(content, "text"):
output_text += content.text
usage = response.usage
data.append({
"Verbosity": verbosity,
"Sample Output": output_text,
"Output Tokens": usage.output_tokens
})
# Create DataFrame
df = pd.DataFrame(data)
# Display nicely with centered headers
pd.set_option('display.max_colwidth', None)
styled_df = df.style.set_table_styles(
[
{'selector': 'th', 'props': [('text-align', 'center')]}, # Center column headers
{'selector': 'td', 'props': [('text-align', 'left')]} # Left-align table cells
]
)
display(styled_df)В этом примере количество выходных токенов приблизительно линейно растет с увеличением verbosity: low (731) 1 medium (1017) 1 high (1263).
Free-form function calling
GPT-5 может генерировать «сырые» текстовые полезные нагрузки, например готовые Python-скрипты, SQL-запросы или команды оболочки. Это упрощает передачу результатов модели напрямую в среду выполнения без дополнительных обёрток.
Пример, где модель генерирует Python-код для подсчета гласных и вычисления куба:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5-mini",
input="Please use the code_exec tool to calculate the cube of the number of vowels in the word 'pineapple'",
text={"format": {"type": "text"}},
tools=[
{
"type": "custom",
"name": "code_exec",
"description": "Executes arbitrary python code",
}
]
)
print(response.output[1].input)Такой выход можно напрямую запускать в целевой среде выполнения.
Контекстно-свободная грамматика (CFG)
CFG задаёт правила для допустимых строк языка. С её помощью можно жёстко ограничить вывод модели, чтобы он строго соответствовал нужному синтаксису (например, корректный SQL или JSON). GPT-5 демонстрирует лучшую точность в соблюдении таких ограничений.
Пример без грамматики (модель может добавить поясняющий текст):
from openai import OpenAI
import re
client = OpenAI()
email_regex = r"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$"
prompt = "Give me a valid email address for John Doe. It can be a dummy email"
# No grammar constraints -- model might give prose or invalid format
response = client.responses.create(
model="gpt-4o", # or earlier
input=prompt
)
output = response.output_text.strip()
print("GPT Output:", output)
print("Valid?", bool(re.match(email_regex, output)))И пример с грамматикой для GPT-5, которая возвращает строгое соответствие регулярному выражению:
from openai import OpenAI
client = OpenAI()
email_regex = r"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$"
prompt = "Give me a valid email address for John Doe. It can be a dummy email"
response = client.responses.create(
model="gpt-5", # grammar-constrained model
input=prompt,
text={"format": {"type": "text"}},
tools=[
{
"type": "custom",
"name": "email_grammar",
"description": "Outputs a valid email address.",
"format": {
"type": "grammar",
"syntax": "regex",
"definition": email_regex
}
}
],
parallel_tool_calls=False
)
print("GPT-5 Output:", response.output[1].input)GPT-4-подобные ответы иногда добавляют окружающий текст, нарушающий строгую валидацию, в то время как GPT-5 может вывести точную строку, соответствующую грамматике.
Minimal reasoning
Режим minimal reasoning убирает большую часть внутренних шагов рассуждения модели, снижая задержку и ускоряя появление первого токена. Это полезно для простых, детерминированных задач: извлечение данных, форматирование, короткие перефразирования и простая классификация.
import time
from openai import OpenAI
client = OpenAI()
prompt = "Classify the given number as odd or even. Return one word only."
start_time = time.time() # Start timer
response = client.responses.create(
model="gpt-5",
input=[
{ "role": "developer", "content": prompt },
{ "role": "user", "content": "57" }
],
reasoning={
"effort": "minimal" # Faster time-to-first-token
},
)
latency = time.time() - start_time # End timer
# Extract model's text output
output_text = ""
for item in response.output:
if hasattr(item, "content"):
for content in item.content:
if hasattr(content, "text"):
output_text += content.text
print("--------------------------------")
print("Output:", output_text)
print(f"Latency: {latency:.3f} seconds")Ресурсы
Используйте приведённые образцы как основу для интеграции GPT-5 в ваши пайплайны и окружения выполнения. Полные примеры и репозитории помогут протестировать и масштабировать эти подходы.
Switch Language
Read this article in English