Akashmj22122002's picture
Upload folder using huggingface_hub
14edff4 verified
import copy
import os
from typing import Optional
from openai.types.shared.reasoning import Reasoning
from agents.model_settings import ModelSettings
OPENAI_DEFAULT_MODEL_ENV_VARIABLE_NAME = "OPENAI_DEFAULT_MODEL"
# discourage directly accessing this constant
# use the get_default_model and get_default_model_settings() functions instead
_GPT_5_DEFAULT_MODEL_SETTINGS: ModelSettings = ModelSettings(
# We chose "low" instead of "minimal" because some of the built-in tools
# (e.g., file search, image generation, etc.) do not support "minimal"
# If you want to use "minimal" reasoning effort, you can pass your own model settings
reasoning=Reasoning(effort="low"),
verbosity="low",
)
def gpt_5_reasoning_settings_required(model_name: str) -> bool:
"""
Returns True if the model name is a GPT-5 model and reasoning settings are required.
"""
if model_name.startswith("gpt-5-chat"):
# gpt-5-chat-latest does not require reasoning settings
return False
# matches any of gpt-5 models
return model_name.startswith("gpt-5")
def is_gpt_5_default() -> bool:
"""
Returns True if the default model is a GPT-5 model.
This is used to determine if the default model settings are compatible with GPT-5 models.
If the default model is not a GPT-5 model, the model settings are compatible with other models.
"""
return gpt_5_reasoning_settings_required(get_default_model())
def get_default_model() -> str:
"""
Returns the default model name.
"""
return os.getenv(OPENAI_DEFAULT_MODEL_ENV_VARIABLE_NAME, "gpt-4.1").lower()
def get_default_model_settings(model: Optional[str] = None) -> ModelSettings:
"""
Returns the default model settings.
If the default model is a GPT-5 model, returns the GPT-5 default model settings.
Otherwise, returns the legacy default model settings.
"""
_model = model if model is not None else get_default_model()
if gpt_5_reasoning_settings_required(_model):
return copy.deepcopy(_GPT_5_DEFAULT_MODEL_SETTINGS)
return ModelSettings()