1
1
import pytest
2
2
from ldclient import LDClient , Context , Config
3
3
from ldclient .integrations .test_data import TestData
4
- from ldai .types import AIConfig , AIConfigData , LDMessage
5
- from ldai .client import LDAIClient
4
+ from ldai .client import AIConfig , AIConfigData , LDAIClient , LDMessage
6
5
from ldai .tracker import LDAIConfigTracker
7
6
from ldclient .testing .builders import *
8
7
@@ -41,13 +40,17 @@ def client(td: TestData) -> LDClient:
41
40
config = Config ('sdk-key' , update_processor_class = td , send_events = False )
42
41
return LDClient (config = config )
43
42
43
+ @pytest .fixture
44
+ def tracker (td : TestData ) -> LDAIConfigTracker :
45
+ return LDAIConfigTracker (client (td ), 'abcd' , 'model-config' , Context .create ('user-key' ))
46
+
44
47
@pytest .fixture
45
48
def ldai_client (client : LDClient ) -> LDAIClient :
46
49
return LDAIClient (client )
47
50
48
51
def test_model_config_interpolation (ldai_client : LDAIClient ):
49
52
context = Context .create ('user-key' )
50
- default_value = AIConfig (config = AIConfigData (model = { 'modelId' : 'fakeModel' }, prompt = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )], _ldMeta = { 'enabled' : True , 'versionKey' : 'abcd' } ), tracker = LDAIConfigTracker ( ), enabled = True )
53
+ default_value = AIConfig (config = AIConfigData (model = { 'modelId' : 'fakeModel' }, prompt = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )]), tracker = tracker ( td () ), enabled = True )
51
54
variables = {'name' : 'World' }
52
55
53
56
config = ldai_client .model_config ('model-config' , context , default_value , variables )
@@ -59,7 +62,7 @@ def test_model_config_interpolation(ldai_client: LDAIClient):
59
62
60
63
def test_model_config_no_variables (ldai_client : LDAIClient ):
61
64
context = Context .create ('user-key' )
62
- default_value = AIConfig (config = AIConfigData (model = {}, prompt = [], _ldMeta = { 'enabled' : True , 'versionKey' : 'abcd' } ), tracker = LDAIConfigTracker ( ), enabled = True )
65
+ default_value = AIConfig (config = AIConfigData (model = {}, prompt = []), tracker = tracker ( td () ), enabled = True )
63
66
64
67
config = ldai_client .model_config ('model-config' , context , default_value , {})
65
68
@@ -70,7 +73,7 @@ def test_model_config_no_variables(ldai_client: LDAIClient):
70
73
71
74
def test_context_interpolation (ldai_client : LDAIClient ):
72
75
context = Context .builder ('user-key' ).name ("Sandy" ).build ()
73
- default_value = AIConfig (config = AIConfigData (model = {}, prompt = [], _ldMeta = { 'enabled' : True , 'versionKey' : 'abcd' } ), tracker = LDAIConfigTracker ( ), enabled = True )
76
+ default_value = AIConfig (config = AIConfigData (model = {}, prompt = []), tracker = tracker ( td () ), enabled = True )
74
77
variables = {'name' : 'World' }
75
78
76
79
config = ldai_client .model_config ('ctx-interpolation' , context , default_value , variables )
@@ -80,17 +83,9 @@ def test_context_interpolation(ldai_client: LDAIClient):
80
83
assert config .config .prompt [0 ].content == 'Hello, Sandy!'
81
84
assert config .enabled is True
82
85
83
- def test_model_config_disabled (ldai_client : LDAIClient ):
84
- context = Context .create ('user-key' )
85
- default_value = AIConfig (config = AIConfigData (model = {}, prompt = [], _ldMeta = {'enabled' : True , 'versionKey' : 'abcd' }), tracker = LDAIConfigTracker (), enabled = True )
86
-
87
- config = ldai_client .model_config ('off-config' , context , default_value , {})
88
-
89
- assert config .enabled is False
90
-
91
86
def test_model_config_multiple (ldai_client : LDAIClient ):
92
87
context = Context .create ('user-key' )
93
- default_value = AIConfig (config = AIConfigData (model = {}, prompt = [], _ldMeta = { 'enabled' : True , 'versionKey' : 'abcd' } ), tracker = LDAIConfigTracker ( ), enabled = True )
88
+ default_value = AIConfig (config = AIConfigData (model = {}, prompt = []), tracker = tracker ( td () ), enabled = True )
94
89
variables = {'name' : 'World' , 'day' : 'Monday' }
95
90
96
91
config = ldai_client .model_config ('multiple-prompt' , context , default_value , variables )
@@ -99,4 +94,12 @@ def test_model_config_multiple(ldai_client: LDAIClient):
99
94
assert len (config .config .prompt ) > 0
100
95
assert config .config .prompt [0 ].content == 'Hello, World!'
101
96
assert config .config .prompt [1 ].content == 'The day is, Monday!'
102
- assert config .enabled is True
97
+ assert config .enabled is True
98
+
99
+ def test_model_config_disabled (ldai_client : LDAIClient ):
100
+ context = Context .create ('user-key' )
101
+ default_value = AIConfig (config = AIConfigData (model = {}, prompt = []), tracker = tracker (td ()), enabled = False )
102
+
103
+ config = ldai_client .model_config ('off-config' , context , default_value , {})
104
+
105
+ assert config .enabled is False
0 commit comments