33from ldclient .integrations .test_data import TestData
44
55from ldai .client import AIConfig , LDAIClient , LDMessage , ModelConfig
6- from ldai .tracker import LDAIConfigTracker
76
87
98@pytest .fixture
@@ -98,11 +97,6 @@ def client(td: TestData) -> LDClient:
9897 return LDClient (config = config )
9998
10099
101- @pytest .fixture
102- def tracker (client : LDClient ) -> LDAIConfigTracker :
103- return LDAIConfigTracker (client , 'abcd' , 'model-config' , Context .create ('user-key' ))
104-
105-
106100@pytest .fixture
107101def ldai_client (client : LDClient ) -> LDAIClient :
108102 return LDAIClient (client )
@@ -125,17 +119,38 @@ def test_model_config_handles_custom():
125119 assert model .get_custom ('id' ) is None
126120
127121
128- def test_model_config_interpolation (ldai_client : LDAIClient , tracker ):
122+ def test_uses_default_on_invalid_flag (ldai_client : LDAIClient ):
123+ context = Context .create ('user-key' )
124+ default_value = AIConfig (
125+ enabled = True ,
126+ model = ModelConfig ('fakeModel' , parameters = {'temperature' : 0.5 , 'maxTokens' : 4096 }),
127+ messages = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )],
128+ )
129+ variables = {'name' : 'World' }
130+
131+ config , _ = ldai_client .config ('missing-flag' , context , default_value , variables )
132+
133+ assert config .messages is not None
134+ assert len (config .messages ) > 0
135+ assert config .messages [0 ].content == 'Hello, World!'
136+ assert config .enabled is True
137+
138+ assert config .model is not None
139+ assert config .model .id == 'fakeModel'
140+ assert config .model .get_parameter ('temperature' ) == 0.5
141+ assert config .model .get_parameter ('maxTokens' ) == 4096
142+
143+
144+ def test_model_config_interpolation (ldai_client : LDAIClient ):
129145 context = Context .create ('user-key' )
130146 default_value = AIConfig (
131- tracker = tracker ,
132147 enabled = True ,
133148 model = ModelConfig ('fakeModel' ),
134149 messages = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )],
135150 )
136151 variables = {'name' : 'World' }
137152
138- config = ldai_client .config ('model-config' , context , default_value , variables )
153+ config , _ = ldai_client .config ('model-config' , context , default_value , variables )
139154
140155 assert config .messages is not None
141156 assert len (config .messages ) > 0
@@ -148,11 +163,11 @@ def test_model_config_interpolation(ldai_client: LDAIClient, tracker):
148163 assert config .model .get_parameter ('maxTokens' ) == 4096
149164
150165
151- def test_model_config_no_variables (ldai_client : LDAIClient , tracker ):
166+ def test_model_config_no_variables (ldai_client : LDAIClient ):
152167 context = Context .create ('user-key' )
153- default_value = AIConfig (tracker = tracker , enabled = True , model = ModelConfig ('fake-model' ), messages = [])
168+ default_value = AIConfig (enabled = True , model = ModelConfig ('fake-model' ), messages = [])
154169
155- config = ldai_client .config ('model-config' , context , default_value , {})
170+ config , _ = ldai_client .config ('model-config' , context , default_value , {})
156171
157172 assert config .messages is not None
158173 assert len (config .messages ) > 0
@@ -165,23 +180,23 @@ def test_model_config_no_variables(ldai_client: LDAIClient, tracker):
165180 assert config .model .get_parameter ('maxTokens' ) == 4096
166181
167182
168- def test_provider_config_handling (ldai_client : LDAIClient , tracker ):
183+ def test_provider_config_handling (ldai_client : LDAIClient ):
169184 context = Context .builder ('user-key' ).name ("Sandy" ).build ()
170- default_value = AIConfig (tracker = tracker , enabled = True , model = ModelConfig ('fake-model' ), messages = [])
185+ default_value = AIConfig (enabled = True , model = ModelConfig ('fake-model' ), messages = [])
171186 variables = {'name' : 'World' }
172187
173- config = ldai_client .config ('model-config' , context , default_value , variables )
188+ config , _ = ldai_client .config ('model-config' , context , default_value , variables )
174189
175190 assert config .provider is not None
176191 assert config .provider .id == 'fakeProvider'
177192
178193
179- def test_context_interpolation (ldai_client : LDAIClient , tracker ):
194+ def test_context_interpolation (ldai_client : LDAIClient ):
180195 context = Context .builder ('user-key' ).name ("Sandy" ).build ()
181- default_value = AIConfig (tracker = tracker , enabled = True , model = ModelConfig ('fake-model' ), messages = [])
196+ default_value = AIConfig (enabled = True , model = ModelConfig ('fake-model' ), messages = [])
182197 variables = {'name' : 'World' }
183198
184- config = ldai_client .config (
199+ config , _ = ldai_client .config (
185200 'ctx-interpolation' , context , default_value , variables
186201 )
187202
@@ -197,12 +212,12 @@ def test_context_interpolation(ldai_client: LDAIClient, tracker):
197212 assert config .model .get_parameter ('extra-attribute' ) == 'I can be anything I set my mind/type to'
198213
199214
200- def test_model_config_multiple (ldai_client : LDAIClient , tracker ):
215+ def test_model_config_multiple (ldai_client : LDAIClient ):
201216 context = Context .create ('user-key' )
202- default_value = AIConfig (tracker = tracker , enabled = True , model = ModelConfig ('fake-model' ), messages = [])
217+ default_value = AIConfig (enabled = True , model = ModelConfig ('fake-model' ), messages = [])
203218 variables = {'name' : 'World' , 'day' : 'Monday' }
204219
205- config = ldai_client .config (
220+ config , _ = ldai_client .config (
206221 'multiple-messages' , context , default_value , variables
207222 )
208223
@@ -218,11 +233,11 @@ def test_model_config_multiple(ldai_client: LDAIClient, tracker):
218233 assert config .model .get_parameter ('maxTokens' ) == 8192
219234
220235
221- def test_model_config_disabled (ldai_client : LDAIClient , tracker ):
236+ def test_model_config_disabled (ldai_client : LDAIClient ):
222237 context = Context .create ('user-key' )
223- default_value = AIConfig (tracker = tracker , enabled = False , model = ModelConfig ('fake-model' ), messages = [])
238+ default_value = AIConfig (enabled = False , model = ModelConfig ('fake-model' ), messages = [])
224239
225- config = ldai_client .config ('off-config' , context , default_value , {})
240+ config , _ = ldai_client .config ('off-config' , context , default_value , {})
226241
227242 assert config .model is not None
228243 assert config .enabled is False
@@ -231,23 +246,23 @@ def test_model_config_disabled(ldai_client: LDAIClient, tracker):
231246 assert config .model .get_parameter ('maxTokens' ) is None
232247
233248
234- def test_model_initial_config_disabled (ldai_client : LDAIClient , tracker ):
249+ def test_model_initial_config_disabled (ldai_client : LDAIClient ):
235250 context = Context .create ('user-key' )
236- default_value = AIConfig (tracker = tracker , enabled = False , model = ModelConfig ('fake-model' ), messages = [])
251+ default_value = AIConfig (enabled = False , model = ModelConfig ('fake-model' ), messages = [])
237252
238- config = ldai_client .config ('initial-config-disabled' , context , default_value , {})
253+ config , _ = ldai_client .config ('initial-config-disabled' , context , default_value , {})
239254
240255 assert config .enabled is False
241256 assert config .model is None
242257 assert config .messages is None
243258 assert config .provider is None
244259
245260
246- def test_model_initial_config_enabled (ldai_client : LDAIClient , tracker ):
261+ def test_model_initial_config_enabled (ldai_client : LDAIClient ):
247262 context = Context .create ('user-key' )
248- default_value = AIConfig (tracker = tracker , enabled = False , model = ModelConfig ('fake-model' ), messages = [])
263+ default_value = AIConfig (enabled = False , model = ModelConfig ('fake-model' ), messages = [])
249264
250- config = ldai_client .config ('initial-config-enabled' , context , default_value , {})
265+ config , _ = ldai_client .config ('initial-config-enabled' , context , default_value , {})
251266
252267 assert config .enabled is True
253268 assert config .model is None
0 commit comments