Skip to content

Commit 76caa06

Browse files
feat: add usage tracking to config method
- Add tracking call for :ai:config:function:single event - Include test to verify tracking functionality - Follows SDK spec requirement 1.2.3.5 Co-Authored-By: [email protected] <[email protected]>
1 parent b86b77a commit 76caa06

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

ldai/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ def config(
222222
:param variables: Additional variables for the model configuration.
223223
:return: The value of the model configuration along with a tracker used for gathering metrics.
224224
"""
225+
self._client.track('$ld:ai:config:function:single', context, key, 1)
226+
225227
model, provider, messages, instructions, tracker, enabled = self.__evaluate(key, context, default_value.to_dict(), variables)
226228

227229
config = AIConfig(

ldai/testing/test_model_config.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,3 +303,28 @@ def test_model_initial_config_enabled(ldai_client: LDAIClient):
303303
assert config.model is None
304304
assert config.messages is None
305305
assert config.provider is None
306+
307+
308+
def test_config_method_tracking(ldai_client: LDAIClient):
309+
from unittest.mock import Mock
310+
311+
mock_client = Mock()
312+
mock_client.variation.return_value = {
313+
'_ldMeta': {'enabled': True, 'variationKey': 'test-variation', 'version': 1},
314+
'model': {'name': 'test-model'},
315+
'provider': {'name': 'test-provider'},
316+
'messages': []
317+
}
318+
319+
client = LDAIClient(mock_client)
320+
context = Context.create('user-key')
321+
default_value = AIConfig(enabled=False, model=ModelConfig('fake-model'), messages=[])
322+
323+
config, tracker = client.config('test-config-key', context, default_value)
324+
325+
mock_client.track.assert_called_once_with(
326+
'$ld:ai:config:function:single',
327+
context,
328+
'test-config-key',
329+
1
330+
)

0 commit comments

Comments
 (0)