Skip to content

Commit edd6263

Browse files
committed
feat: allow default model to be set via DEEPEVAL_DEFAULT_MODEL env var
Adds DEEPEVAL_DEFAULT_MODEL setting that acts as a provider-agnostic model fallback. GPTModel, AnthropicModel, GeminiModel, and OpenRouterModel now read it when no model arg or provider-specific model env var is set, before falling back to their hardcoded defaults. Closes confident-ai#2602
1 parent 8692f84 commit edd6263

5 files changed

Lines changed: 8 additions & 4 deletions

File tree

deepeval/config/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,10 @@ def __setattr__(self, name: str, value):
303303
None,
304304
description="Identifier/tag to help identify your test run on Confident AI.",
305305
)
306+
DEEPEVAL_DEFAULT_MODEL: Optional[str] = Field(
307+
None,
308+
description="Default model name used across all providers when no provider-specific model is set (e.g. 'gpt-4.1', 'claude-3-7-sonnet-latest').",
309+
)
306310

307311
#
308312
# Storage & Output

deepeval/models/llms/anthropic_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(
5858
else:
5959
self.api_key = settings.ANTHROPIC_API_KEY
6060

61-
model = model or settings.ANTHROPIC_MODEL_NAME or default_model
61+
model = model or settings.ANTHROPIC_MODEL_NAME or settings.DEEPEVAL_DEFAULT_MODEL or default_model
6262

6363
if temperature is not None:
6464
temperature = float(temperature)

deepeval/models/llms/gemini_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(
7272

7373
settings = get_settings()
7474

75-
model = model or settings.GEMINI_MODEL_NAME or default_gemini_model
75+
model = model or settings.GEMINI_MODEL_NAME or settings.DEEPEVAL_DEFAULT_MODEL or default_gemini_model
7676
self.model_data = GEMINI_MODELS_DATA.get(model)
7777

7878
# Get API key from settings if not provided

deepeval/models/llms/openai_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def __init__(
6767
if api_key is None and "api_key" in alias_values:
6868
api_key = alias_values["api_key"]
6969

70-
model = model or settings.OPENAI_MODEL_NAME
70+
model = model or settings.OPENAI_MODEL_NAME or settings.DEEPEVAL_DEFAULT_MODEL
7171
if model is None:
7272
model = DEFAULT_GPT_MODEL
7373

deepeval/models/llms/openrouter_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def __init__(
8080
**kwargs,
8181
):
8282
settings = get_settings()
83-
model = model or settings.OPENROUTER_MODEL_NAME
83+
model = model or settings.OPENROUTER_MODEL_NAME or settings.DEEPEVAL_DEFAULT_MODEL
8484
if model is None:
8585
model = DEFAULT_OPENROUTER_MODEL
8686

0 commit comments

Comments
 (0)