diff --git a/ldai/client.py b/ldai/client.py index 261012c..a8bd888 100644 --- a/ldai/client.py +++ b/ldai/client.py @@ -222,6 +222,8 @@ def config( :param variables: Additional variables for the model configuration. :return: The value of the model configuration along with a tracker used for gathering metrics. """ + self._client.track('$ld:ai:config:function:single', context, key, 1) + model, provider, messages, instructions, tracker, enabled = self.__evaluate(key, context, default_value.to_dict(), variables) config = AIConfig( diff --git a/ldai/testing/test_model_config.py b/ldai/testing/test_model_config.py index 6e2c40c..1ffc033 100644 --- a/ldai/testing/test_model_config.py +++ b/ldai/testing/test_model_config.py @@ -303,3 +303,28 @@ def test_model_initial_config_enabled(ldai_client: LDAIClient): assert config.model is None assert config.messages is None assert config.provider is None + + +def test_config_method_tracking(ldai_client: LDAIClient): + from unittest.mock import Mock + + mock_client = Mock() + mock_client.variation.return_value = { + '_ldMeta': {'enabled': True, 'variationKey': 'test-variation', 'version': 1}, + 'model': {'name': 'test-model'}, + 'provider': {'name': 'test-provider'}, + 'messages': [] + } + + client = LDAIClient(mock_client) + context = Context.create('user-key') + default_value = AIConfig(enabled=False, model=ModelConfig('fake-model'), messages=[]) + + config, tracker = client.config('test-config-key', context, default_value) + + mock_client.track.assert_called_once_with( + '$ld:ai:config:function:single', + context, + 'test-config-key', + 1 + )