2
2
from ldclient import Config , Context , LDClient
3
3
from ldclient .integrations .test_data import TestData
4
4
5
- from ldai .client import AIConfig , LDAIClient , LDMessage , ModelConfig
6
- from ldai .tracker import LDAIConfigTracker
5
+ from ldai .client import DefaultAIConfig , LDAIClient , LDMessage , ModelConfig
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,10 +119,31 @@ 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 = DefaultAIConfig (
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
- default_value = AIConfig (
131
- tracker = tracker ,
146
+ default_value = DefaultAIConfig (
132
147
enabled = True ,
133
148
model = ModelConfig ('fakeModel' ),
134
149
messages = [LDMessage (role = 'system' , content = 'Hello, {{name}}!' )],
@@ -148,9 +163,9 @@ 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 = DefaultAIConfig ( enabled = True , model = ModelConfig ('fake-model' ), messages = [])
154
169
155
170
config = ldai_client .config ('model-config' , context , default_value , {})
156
171
@@ -165,9 +180,9 @@ 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 = DefaultAIConfig ( enabled = True , model = ModelConfig ('fake-model' ), messages = [])
171
186
variables = {'name' : 'World' }
172
187
173
188
config = ldai_client .config ('model-config' , context , default_value , variables )
@@ -176,9 +191,9 @@ def test_provider_config_handling(ldai_client: LDAIClient, tracker):
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 = DefaultAIConfig ( enabled = True , model = ModelConfig ('fake-model' ), messages = [])
182
197
variables = {'name' : 'World' }
183
198
184
199
config = ldai_client .config (
@@ -197,9 +212,9 @@ 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 = DefaultAIConfig ( enabled = True , model = ModelConfig ('fake-model' ), messages = [])
203
218
variables = {'name' : 'World' , 'day' : 'Monday' }
204
219
205
220
config = ldai_client .config (
@@ -218,9 +233,9 @@ 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 = DefaultAIConfig ( enabled = False , model = ModelConfig ('fake-model' ), messages = [])
224
239
225
240
config = ldai_client .config ('off-config' , context , default_value , {})
226
241
@@ -231,9 +246,9 @@ 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 = DefaultAIConfig ( enabled = False , model = ModelConfig ('fake-model' ), messages = [])
237
252
238
253
config = ldai_client .config ('initial-config-disabled' , context , default_value , {})
239
254
@@ -243,9 +258,9 @@ def test_model_initial_config_disabled(ldai_client: LDAIClient, tracker):
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 = DefaultAIConfig ( enabled = False , model = ModelConfig ('fake-model' ), messages = [])
249
264
250
265
config = ldai_client .config ('initial-config-enabled' , context , default_value , {})
251
266
0 commit comments