3
3
from ldclient .integrations .test_data import TestData
4
4
5
5
from ldai .client import AIConfig , LDAIClient , LDMessage , ModelConfig
6
- from ldai .tracker import LDAIConfigTracker
7
6
8
7
9
8
@pytest .fixture
@@ -98,11 +97,6 @@ def client(td: TestData) -> LDClient:
98
97
return LDClient (config = config )
99
98
100
99
101
- @pytest .fixture
102
- def tracker (client : LDClient ) -> LDAIConfigTracker :
103
- return LDAIConfigTracker (client , 'abcd' , 'model-config' , Context .create ('user-key' ))
104
-
105
-
106
100
@pytest .fixture
107
101
def ldai_client (client : LDClient ) -> LDAIClient :
108
102
return LDAIClient (client )
@@ -125,17 +119,38 @@ def test_model_config_handles_custom():
125
119
assert model .get_custom ('id' ) is None
126
120
127
121
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 ):
129
145
context = Context .create ('user-key' )
130
146
default_value = AIConfig (
131
- tracker = tracker ,
132
147
enabled = True ,
133
148
model = ModelConfig ('fakeModel' ),
134
149
messages = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )],
135
150
)
136
151
variables = {'name' : 'World' }
137
152
138
- config = ldai_client .config ('model-config' , context , default_value , variables )
153
+ config , _ = ldai_client .config ('model-config' , context , default_value , variables )
139
154
140
155
assert config .messages is not None
141
156
assert len (config .messages ) > 0
@@ -148,11 +163,11 @@ def test_model_config_interpolation(ldai_client: LDAIClient, tracker):
148
163
assert config .model .get_parameter ('maxTokens' ) == 4096
149
164
150
165
151
- def test_model_config_no_variables (ldai_client : LDAIClient , tracker ):
166
+ def test_model_config_no_variables (ldai_client : LDAIClient ):
152
167
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 = [])
154
169
155
- config = ldai_client .config ('model-config' , context , default_value , {})
170
+ config , _ = ldai_client .config ('model-config' , context , default_value , {})
156
171
157
172
assert config .messages is not None
158
173
assert len (config .messages ) > 0
@@ -165,23 +180,23 @@ def test_model_config_no_variables(ldai_client: LDAIClient, tracker):
165
180
assert config .model .get_parameter ('maxTokens' ) == 4096
166
181
167
182
168
- def test_provider_config_handling (ldai_client : LDAIClient , tracker ):
183
+ def test_provider_config_handling (ldai_client : LDAIClient ):
169
184
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 = [])
171
186
variables = {'name' : 'World' }
172
187
173
- config = ldai_client .config ('model-config' , context , default_value , variables )
188
+ config , _ = ldai_client .config ('model-config' , context , default_value , variables )
174
189
175
190
assert config .provider is not None
176
191
assert config .provider .id == 'fakeProvider'
177
192
178
193
179
- def test_context_interpolation (ldai_client : LDAIClient , tracker ):
194
+ def test_context_interpolation (ldai_client : LDAIClient ):
180
195
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 = [])
182
197
variables = {'name' : 'World' }
183
198
184
- config = ldai_client .config (
199
+ config , _ = ldai_client .config (
185
200
'ctx-interpolation' , context , default_value , variables
186
201
)
187
202
@@ -197,12 +212,12 @@ def test_context_interpolation(ldai_client: LDAIClient, tracker):
197
212
assert config .model .get_parameter ('extra-attribute' ) == 'I can be anything I set my mind/type to'
198
213
199
214
200
- def test_model_config_multiple (ldai_client : LDAIClient , tracker ):
215
+ def test_model_config_multiple (ldai_client : LDAIClient ):
201
216
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 = [])
203
218
variables = {'name' : 'World' , 'day' : 'Monday' }
204
219
205
- config = ldai_client .config (
220
+ config , _ = ldai_client .config (
206
221
'multiple-messages' , context , default_value , variables
207
222
)
208
223
@@ -218,11 +233,11 @@ def test_model_config_multiple(ldai_client: LDAIClient, tracker):
218
233
assert config .model .get_parameter ('maxTokens' ) == 8192
219
234
220
235
221
- def test_model_config_disabled (ldai_client : LDAIClient , tracker ):
236
+ def test_model_config_disabled (ldai_client : LDAIClient ):
222
237
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 = [])
224
239
225
- config = ldai_client .config ('off-config' , context , default_value , {})
240
+ config , _ = ldai_client .config ('off-config' , context , default_value , {})
226
241
227
242
assert config .model is not None
228
243
assert config .enabled is False
@@ -231,23 +246,23 @@ def test_model_config_disabled(ldai_client: LDAIClient, tracker):
231
246
assert config .model .get_parameter ('maxTokens' ) is None
232
247
233
248
234
- def test_model_initial_config_disabled (ldai_client : LDAIClient , tracker ):
249
+ def test_model_initial_config_disabled (ldai_client : LDAIClient ):
235
250
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 = [])
237
252
238
- config = ldai_client .config ('initial-config-disabled' , context , default_value , {})
253
+ config , _ = ldai_client .config ('initial-config-disabled' , context , default_value , {})
239
254
240
255
assert config .enabled is False
241
256
assert config .model is None
242
257
assert config .messages is None
243
258
assert config .provider is None
244
259
245
260
246
- def test_model_initial_config_enabled (ldai_client : LDAIClient , tracker ):
261
+ def test_model_initial_config_enabled (ldai_client : LDAIClient ):
247
262
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 = [])
249
264
250
- config = ldai_client .config ('initial-config-enabled' , context , default_value , {})
265
+ config , _ = ldai_client .config ('initial-config-enabled' , context , default_value , {})
251
266
252
267
assert config .enabled is True
253
268
assert config .model is None
0 commit comments