Skip to content

Commit d67d0ab

Browse files
committed
modified default behaviour
1 parent d277b49 commit d67d0ab

File tree

3 files changed

+11
-39
lines changed

3 files changed

+11
-39
lines changed

packages/sdk/server-ai/src/ldai/client.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,11 @@ def judge_config(
9898
key, context, default_value.to_dict(), variables
9999
)
100100

101-
def _extract_evaluation_metric_key(
102-
variation: Dict[str, Any], default_value: AIJudgeConfigDefault
103-
) -> Optional[str]:
101+
def _extract_evaluation_metric_key(variation: Dict[str, Any]) -> Optional[str]:
104102
"""
105103
Extract evaluation_metric_key with backward compatibility.
106104
107-
Priority: 1) evaluationMetricKey from variation, 2) evaluationMetricKeys from variation,
108-
3) evaluation_metric_key from default, 4) evaluation_metric_keys from default
105+
Priority: 1) evaluationMetricKey from variation, 2) first from evaluationMetricKeys in variation
109106
"""
110107
if evaluation_metric_key := variation.get('evaluationMetricKey'):
111108
return evaluation_metric_key
@@ -114,15 +111,9 @@ def _extract_evaluation_metric_key(
114111
if isinstance(variation_keys, list) and variation_keys:
115112
return variation_keys[0]
116113

117-
if default_value.evaluation_metric_key:
118-
return default_value.evaluation_metric_key
119-
120-
if default_value.evaluation_metric_keys:
121-
return default_value.evaluation_metric_keys[0]
122-
123114
return None
124115

125-
evaluation_metric_key = _extract_evaluation_metric_key(variation, default_value)
116+
evaluation_metric_key = _extract_evaluation_metric_key(variation)
126117

127118
config = AIJudgeConfig(
128119
key=key,

packages/sdk/server-ai/src/ldai/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,9 @@ def to_dict(self) -> dict:
296296
result = self._base_to_dict()
297297
result['messages'] = [message.to_dict() for message in self.messages] if self.messages else None
298298
result['evaluationMetricKey'] = self.evaluation_metric_key
299+
# Include deprecated evaluationMetricKeys for backward compatibility
300+
if self.evaluation_metric_keys:
301+
result['evaluationMetricKeys'] = self.evaluation_metric_keys
299302
return result
300303

301304

packages/sdk/server-ai/tests/test_judge.py

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -442,25 +442,15 @@ def test_judge_config_extracts_evaluation_metric_key(
442442
assert config.messages is not None
443443
assert len(config.messages) > 0
444444

445-
def test_judge_config_uses_default_when_key_missing(
445+
def test_judge_config_uses_default_when_flag_does_not_exist(
446446
self, client: LDClient, context: Context
447447
):
448-
"""judge_config should use default evaluation_metric_key when not in variation."""
448+
"""judge_config should use default evaluation_metric_key when flag does not exist."""
449449
from ldai import LDAIClient
450+
from ldclient import Config, LDClient
451+
from ldclient.integrations.test_data import TestData
450452

451453
td = TestData.data_source()
452-
td.update(
453-
td.flag('judge-no-key')
454-
.variations(
455-
{
456-
'model': {'name': 'gpt-4'},
457-
'provider': {'name': 'openai'},
458-
'messages': [{'role': 'system', 'content': 'You are a judge.'}],
459-
'_ldMeta': {'enabled': True, 'variationKey': 'judge-v1', 'version': 1},
460-
}
461-
)
462-
.variation_for_all(0)
463-
)
464454

465455
test_client = LDClient(Config('sdk-key', update_processor_class=td, send_events=False))
466456
ldai_client = LDAIClient(test_client)
@@ -520,24 +510,12 @@ def test_judge_config_uses_first_evaluation_metric_keys_from_variation(
520510
def test_judge_config_uses_first_evaluation_metric_keys_from_default(
521511
self, context: Context
522512
):
523-
"""judge_config should use first value from default evaluation_metric_keys when both variation and default evaluation_metric_key are None."""
513+
"""judge_config should use first value from default evaluation_metric_keys when flag does not exist."""
524514
from ldai import LDAIClient
525515
from ldclient import Config, LDClient
526516
from ldclient.integrations.test_data import TestData
527517

528518
td = TestData.data_source()
529-
td.update(
530-
td.flag('judge-fallback-keys')
531-
.variations(
532-
{
533-
'model': {'name': 'gpt-4'},
534-
'provider': {'name': 'openai'},
535-
'messages': [{'role': 'system', 'content': 'You are a judge.'}],
536-
'_ldMeta': {'enabled': True, 'variationKey': 'judge-v1', 'version': 1},
537-
}
538-
)
539-
.variation_for_all(0)
540-
)
541519

542520
test_client = LDClient(Config('sdk-key', update_processor_class=td, send_events=False))
543521
ldai_client = LDAIClient(test_client)

0 commit comments

Comments
 (0)