1
1
// Copyright (c) Microsoft. All rights reserved.
2
2
3
- using System . Linq ;
4
3
using Microsoft . SemanticKernel ;
5
- using Moq ;
6
4
using Xunit ;
7
5
8
6
namespace SemanticKernel . Connectors . UnitTests . OpenAI ;
@@ -16,8 +14,8 @@ public class KernelConfigOpenAIExtensionsTests
16
14
public void ItSucceedsWhenAddingDifferentServiceTypeWithSameId ( )
17
15
{
18
16
var target = new KernelConfig ( ) ;
19
- target . AddAzureTextCompletionService ( "azure" , " depl", "https://url" , "key" ) ;
20
- target . AddAzureTextEmbeddingGenerationService ( "azure" , " depl2", "https://url" , "key" ) ;
17
+ target . AddAzureTextCompletionService ( "depl" , "https://url" , "key" , serviceId : "azure ") ;
18
+ target . AddAzureTextEmbeddingGenerationService ( "depl2" , "https://url" , "key" , serviceId : "azure ") ;
21
19
22
20
Assert . True ( target . TextCompletionServices . ContainsKey ( "azure" ) ) ;
23
21
Assert . True ( target . TextEmbeddingGenerationServices . ContainsKey ( "azure" ) ) ;
@@ -28,10 +26,10 @@ public void ItTellsIfAServiceIsAvailable()
28
26
{
29
27
// Arrange
30
28
var target = new KernelConfig ( ) ;
31
- target . AddAzureTextCompletionService ( "azure " , "depl" , " https://url", "key" ) ;
32
- target . AddOpenAITextCompletionService ( "oai " , "model " , "apikey ") ;
33
- target . AddAzureTextEmbeddingGenerationService ( "azure " , "depl2" , " https://url2", "key" ) ;
34
- target . AddOpenAITextEmbeddingGenerationService ( "oai2 " , "model2 " , "apikey2 ") ;
29
+ target . AddAzureTextCompletionService ( "deployment1 " , "https://url" , "key" , serviceId : "azure ") ;
30
+ target . AddOpenAITextCompletionService ( "model " , "apikey " , serviceId : "oai ") ;
31
+ target . AddAzureTextEmbeddingGenerationService ( "deployment2 " , "https://url2" , "key" , serviceId : "azure ") ;
32
+ target . AddOpenAITextEmbeddingGenerationService ( "model2 " , "apikey2 " , serviceId : "oai2 ") ;
35
33
36
34
// Assert
37
35
Assert . True ( target . TextCompletionServices . ContainsKey ( "azure" ) ) ;
@@ -52,219 +50,80 @@ public void ItCanOverwriteServices()
52
50
var target = new KernelConfig ( ) ;
53
51
54
52
// Act - Assert no exception occurs
55
- target . AddAzureTextCompletionService ( "one" , " dep", "https://localhost" , "key" ) ;
56
- target . AddAzureTextCompletionService ( "one" , " dep", "https://localhost" , "key" ) ;
57
- target . AddOpenAITextCompletionService ( "one " , "model " , "key ") ;
58
- target . AddOpenAITextCompletionService ( "one " , "model " , "key ") ;
59
- target . AddAzureTextEmbeddingGenerationService ( "one" , " dep", "https://localhost" , "key" ) ;
60
- target . AddAzureTextEmbeddingGenerationService ( "one" , " dep", "https://localhost" , "key" ) ;
61
- target . AddOpenAITextEmbeddingGenerationService ( "one " , "model " , "key ") ;
62
- target . AddOpenAITextEmbeddingGenerationService ( "one " , "model " , "key ") ;
53
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
54
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
55
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "one ") ;
56
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "one ") ;
57
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
58
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
59
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "one ") ;
60
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "one ") ;
63
61
}
64
62
65
63
[ Fact ]
66
64
public void ItCanRemoveAllServices ( )
67
65
{
68
66
// Arrange
69
67
var target = new KernelConfig ( ) ;
70
- target . AddAzureTextCompletionService ( "one" , " dep", "https://localhost" , "key" ) ;
71
- target . AddAzureTextCompletionService ( "2" , " dep", "https://localhost" , "key" ) ;
72
- target . AddOpenAITextCompletionService ( "3 " , "model " , "key ") ;
73
- target . AddOpenAITextCompletionService ( "4 " , "model " , "key ") ;
74
- target . AddAzureTextEmbeddingGenerationService ( "5" , " dep", "https://localhost" , "key" ) ;
75
- target . AddAzureTextEmbeddingGenerationService ( "6" , " dep", "https://localhost" , "key" ) ;
76
- target . AddOpenAITextEmbeddingGenerationService ( "7 " , "model " , "key ") ;
77
- target . AddOpenAITextEmbeddingGenerationService ( "8 " , "model " , "key ") ;
68
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
69
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "2 ") ;
70
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "3 ") ;
71
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "4 ") ;
72
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "5 ") ;
73
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "6 ") ;
74
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "7 ") ;
75
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "8 ") ;
78
76
79
77
// Act
80
78
target . RemoveAllTextCompletionServices ( ) ;
81
79
target . RemoveAllTextEmbeddingGenerationServices ( ) ;
82
80
83
81
// Assert
84
- Assert . Empty ( target . AllTextEmbeddingGenerationServiceIds ) ;
85
- Assert . Empty ( target . AllTextCompletionServiceIds ) ;
82
+ Assert . Empty ( target . TextEmbeddingGenerationServices ) ;
83
+ Assert . Empty ( target . TextCompletionServices ) ;
86
84
}
87
85
88
86
[ Fact ]
89
87
public void ItCanRemoveAllTextCompletionServices ( )
90
88
{
91
89
// Arrange
92
90
var target = new KernelConfig ( ) ;
93
- target . AddAzureTextCompletionService ( "one" , "dep" , "https://localhost" , "key" ) ;
94
- target . AddAzureTextCompletionService ( "2" , "dep" , "https://localhost" , "key" ) ;
95
- target . AddOpenAITextCompletionService ( "3" , "model" , "key" ) ;
96
- target . AddOpenAITextCompletionService ( "4" , "model" , "key" ) ;
97
- target . AddAzureTextEmbeddingGenerationService ( "5" , "dep" , "https://localhost" , "key" ) ;
98
- target . AddAzureTextEmbeddingGenerationService ( "6" , "dep" , "https://localhost" , "key" ) ;
99
- target . AddOpenAITextEmbeddingGenerationService ( "7" , "model" , "key" ) ;
100
- target . AddOpenAITextEmbeddingGenerationService ( "8" , "model" , "key" ) ;
91
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "one" ) ;
92
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "2" ) ;
93
+ target . AddOpenAITextCompletionService ( "model" , "key" , serviceId : "3" ) ;
94
+ target . AddOpenAITextCompletionService ( "model" , "key" , serviceId : "4" ) ;
95
+
96
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "5" ) ;
97
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "6" ) ;
98
+ target . AddOpenAITextEmbeddingGenerationService ( "model" , "key" , serviceId : "7" ) ;
99
+ target . AddOpenAITextEmbeddingGenerationService ( "model" , "key" , serviceId : "8" ) ;
101
100
102
101
// Act
103
102
target . RemoveAllTextCompletionServices ( ) ;
104
103
105
- // Assert
106
- Assert . Equal ( 4 , target . AllTextEmbeddingGenerationServiceIds . Count ( ) ) ;
107
- Assert . Empty ( target . AllTextCompletionServiceIds ) ;
104
+ // Assert (+1 for the default)
105
+ Assert . Equal ( 4 + 1 , target . TextEmbeddingGenerationServices . Count ) ;
108
106
}
109
107
110
108
[ Fact ]
111
109
public void ItCanRemoveAllTextEmbeddingGenerationServices ( )
112
110
{
113
111
// Arrange
114
112
var target = new KernelConfig ( ) ;
115
- target . AddAzureTextCompletionService ( "one" , " dep", "https://localhost" , "key" ) ;
116
- target . AddAzureTextCompletionService ( "2" , " dep", "https://localhost" , "key" ) ;
117
- target . AddOpenAITextCompletionService ( "3 " , "model " , "key ") ;
118
- target . AddOpenAITextCompletionService ( "4 " , "model " , "key ") ;
119
- target . AddAzureTextEmbeddingGenerationService ( "5" , " dep", "https://localhost" , "key" ) ;
120
- target . AddAzureTextEmbeddingGenerationService ( "6" , " dep", "https://localhost" , "key" ) ;
121
- target . AddOpenAITextEmbeddingGenerationService ( "7 " , "model " , "key ") ;
122
- target . AddOpenAITextEmbeddingGenerationService ( "8 " , "model " , "key ") ;
113
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "one ") ;
114
+ target . AddAzureTextCompletionService ( "dep" , "https://localhost" , "key" , serviceId : "2 ") ;
115
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "3 ") ;
116
+ target . AddOpenAITextCompletionService ( "model " , "key " , serviceId : "4 ") ;
117
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "5 ") ;
118
+ target . AddAzureTextEmbeddingGenerationService ( "dep" , "https://localhost" , "key" , serviceId : "6 ") ;
119
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "7 ") ;
120
+ target . AddOpenAITextEmbeddingGenerationService ( "model " , "key " , serviceId : "8 ") ;
123
121
124
122
// Act
125
123
target . RemoveAllTextEmbeddingGenerationServices ( ) ;
126
124
127
- // Assert
128
- Assert . Equal ( 4 , target . AllTextCompletionServiceIds . Count ( ) ) ;
129
- Assert . Empty ( target . AllTextEmbeddingGenerationServiceIds ) ;
130
- }
131
-
132
- [ Fact ]
133
- public void ItCanRemoveOneCompletionService ( )
134
- {
135
- // Arrange
136
- var target = new KernelConfig ( ) ;
137
- target . AddAzureTextCompletionService ( "1" , "dep" , "https://localhost" , "key" ) ;
138
- target . AddAzureTextCompletionService ( "2" , "dep" , "https://localhost" , "key" ) ;
139
- target . AddOpenAITextCompletionService ( "3" , "model" , "key" ) ;
140
- Assert . Equal ( "1" , target . DefaultTextCompletionServiceId ) ;
141
-
142
- // Act - Assert
143
- target . RemoveTextCompletionService ( "1" ) ;
144
- Assert . Equal ( "2" , target . DefaultTextCompletionServiceId ) ;
145
- target . RemoveTextCompletionService ( "2" ) ;
146
- Assert . Equal ( "3" , target . DefaultTextCompletionServiceId ) ;
147
- target . RemoveTextCompletionService ( "3" ) ;
148
- Assert . Null ( target . DefaultTextCompletionServiceId ) ;
149
- }
150
-
151
- [ Fact ]
152
- public void ItCanRemoveOneTextEmbeddingGenerationService ( )
153
- {
154
- // Arrange
155
- var target = new KernelConfig ( ) ;
156
- target . AddAzureTextEmbeddingGenerationService ( "1" , "dep" , "https://localhost" , "key" ) ;
157
- target . AddAzureTextEmbeddingGenerationService ( "2" , "dep" , "https://localhost" , "key" ) ;
158
- target . AddOpenAITextEmbeddingGenerationService ( "3" , "model" , "key" ) ;
159
- Assert . Equal ( "1" , target . DefaultTextEmbeddingGenerationServiceId ) ;
160
-
161
- // Act - Assert
162
- target . RemoveTextEmbeddingGenerationService ( "1" ) ;
163
- Assert . Equal ( "2" , target . DefaultTextEmbeddingGenerationServiceId ) ;
164
- target . RemoveTextEmbeddingGenerationService ( "2" ) ;
165
- Assert . Equal ( "3" , target . DefaultTextEmbeddingGenerationServiceId ) ;
166
- target . RemoveTextEmbeddingGenerationService ( "3" ) ;
167
- Assert . Null ( target . DefaultTextEmbeddingGenerationServiceId ) ;
168
- }
169
-
170
- [ Fact ]
171
- public void GetTextEmbeddingGenerationServiceItReturnsDefaultWhenNonExistingIdIsProvided ( )
172
- {
173
- // Arrange
174
- var target = new KernelConfig ( ) ;
175
- target . AddOpenAITextEmbeddingGenerationService ( "1" , "dep" , "https://localhost" , "key" ) ;
176
- target . AddAzureTextEmbeddingGenerationService ( "2" , "dep" , "https://localhost" , "key" ) ;
177
- target . SetDefaultTextEmbeddingGenerationService ( "2" ) ;
178
-
179
- // Act
180
- var result = target . GetTextEmbeddingGenerationServiceIdOrDefault ( "test" ) ;
181
-
182
- // Assert
183
- Assert . Equal ( "2" , result ) ;
184
- }
185
-
186
- [ Fact ]
187
- public void GetEmbeddingServiceReturnsSpecificWhenExistingIdIsProvided ( )
188
- {
189
- // Arrange
190
- var kernel = new Mock < IKernel > ( ) ;
191
- var target = new KernelConfig ( ) ;
192
- target . AddOpenAITextEmbeddingGenerationService ( "1" , "dep" , "https://localhost" , "key" ) ;
193
- target . AddAzureTextEmbeddingGenerationService ( "2" , "dep" , "https://localhost" , "key" ) ;
194
- target . SetDefaultTextEmbeddingGenerationService ( "2" ) ;
195
-
196
- // Act
197
- var result = target . GetTextEmbeddingGenerationServiceIdOrDefault ( "1" ) ;
198
-
199
- // Assert
200
- Assert . Equal ( "1" , result ) ;
201
- }
202
-
203
- [ Fact ]
204
- public void GetEmbeddingServiceReturnsDefaultWhenNoIdIsProvided ( )
205
- {
206
- // Arrange
207
- var kernel = new Mock < IKernel > ( ) ;
208
- var target = new KernelConfig ( ) ;
209
- target . AddOpenAITextEmbeddingGenerationService ( "1" , "dep" , "https://localhost" , "key" ) ;
210
- target . AddAzureTextEmbeddingGenerationService ( "2" , "dep" , "https://localhost" , "key" ) ;
211
- target . SetDefaultTextEmbeddingGenerationService ( "2" ) ;
212
-
213
- // Act
214
- var result = target . GetTextEmbeddingGenerationServiceIdOrDefault ( ) ;
215
-
216
- // Assert
217
- Assert . Equal ( "2" , result ) ;
218
- }
219
-
220
- [ Fact ]
221
- public void GetTextCompletionServiceReturnsDefaultWhenNonExistingIdIsProvided ( )
222
- {
223
- // Arrange
224
- var kernel = new Mock < IKernel > ( ) ;
225
- var target = new KernelConfig ( ) ;
226
- target . AddOpenAITextCompletionService ( "1" , "dep" , "https://localhost" , "key" ) ;
227
- target . AddAzureTextCompletionService ( "2" , "dep" , "https://localhost" , "key" ) ;
228
- target . SetDefaultTextCompletionService ( "2" ) ;
229
-
230
- // Act
231
- var result = target . GetTextCompletionServiceIdOrDefault ( "345" ) ;
232
-
233
- // Assert
234
- Assert . Equal ( "2" , result ) ;
235
- }
236
-
237
- [ Fact ]
238
- public void GetTextCompletionServiceReturnsSpecificWhenExistingIdIsProvided ( )
239
- {
240
- // Arrange
241
- var kernel = new Mock < IKernel > ( ) ;
242
- var target = new KernelConfig ( ) ;
243
- target . AddOpenAITextCompletionService ( "1" , "dep" , "https://localhost" , "key" ) ;
244
- target . AddAzureTextCompletionService ( "2" , "dep" , "https://localhost" , "key" ) ;
245
- target . SetDefaultTextCompletionService ( "2" ) ;
246
-
247
- // Act
248
- var result = target . GetTextCompletionServiceIdOrDefault ( "1" ) ;
249
-
250
- // Assert
251
- Assert . Equal ( "1" , result ) ;
252
- }
253
-
254
- [ Fact ]
255
- public void GetTextCompletionServiceItReturnsDefaultWhenNoIdIsProvided ( )
256
- {
257
- // Arrange
258
- var kernel = new Mock < IKernel > ( ) ;
259
- var target = new KernelConfig ( ) ;
260
- target . AddOpenAITextCompletionService ( "1" , "dep" , "https://localhost" , "key" ) ;
261
- target . AddAzureTextCompletionService ( "2" , "dep" , "https://localhost" , "key" ) ;
262
- target . SetDefaultTextCompletionService ( "2" ) ;
263
-
264
- // Act
265
- var result = target . GetTextCompletionServiceIdOrDefault ( ) ;
266
-
267
- // Assert
268
- Assert . Equal ( "2" , result ) ;
125
+ // Assert (+1 for the default)
126
+ Assert . Equal ( 4 + 1 , target . TextCompletionServices . Count ) ;
127
+ Assert . Empty ( target . TextEmbeddingGenerationServices ) ;
269
128
}
270
129
}
0 commit comments