2
2
3
3
package com.openai.services
4
4
5
- import com.fasterxml.jackson.databind.json.JsonMapper
6
5
import com.github.tomakehurst.wiremock.client.WireMock.anyUrl
7
6
import com.github.tomakehurst.wiremock.client.WireMock.equalTo
8
7
import com.github.tomakehurst.wiremock.client.WireMock.matchingJsonPath
@@ -16,23 +15,16 @@ import com.github.tomakehurst.wiremock.junit5.WireMockTest
16
15
import com.openai.client.OpenAIClient
17
16
import com.openai.client.okhttp.OpenAIOkHttpClient
18
17
import com.openai.core.JsonValue
19
- import com.openai.core.jsonMapper
20
- import com.openai.models.ChatCompletion
21
- import com.openai.models.ChatCompletionAudio
22
18
import com.openai.models.ChatCompletionAudioParam
23
19
import com.openai.models.ChatCompletionCreateParams
24
20
import com.openai.models.ChatCompletionDeveloperMessageParam
25
- import com.openai.models.ChatCompletionMessage
26
- import com.openai.models.ChatCompletionMessageToolCall
27
21
import com.openai.models.ChatCompletionModality
28
22
import com.openai.models.ChatCompletionPredictionContent
29
23
import com.openai.models.ChatCompletionReasoningEffort
30
24
import com.openai.models.ChatCompletionStreamOptions
31
- import com.openai.models.ChatCompletionTokenLogprob
32
25
import com.openai.models.ChatCompletionTool
33
26
import com.openai.models.ChatCompletionToolChoiceOption
34
27
import com.openai.models.ChatModel
35
- import com.openai.models.CompletionUsage
36
28
import com.openai.models.FunctionDefinition
37
29
import com.openai.models.FunctionParameters
38
30
import com.openai.models.Metadata
@@ -41,38 +33,25 @@ import org.junit.jupiter.api.BeforeEach
41
33
import org.junit.jupiter.api.Test
42
34
43
35
@WireMockTest
44
- class ServiceParamsTest {
45
-
46
- private val JSON_MAPPER : JsonMapper = jsonMapper()
36
+ internal class ServiceParamsTest {
47
37
48
38
private lateinit var client: OpenAIClient
49
39
50
40
@BeforeEach
51
41
fun beforeEach (wmRuntimeInfo : WireMockRuntimeInfo ) {
52
42
client =
53
43
OpenAIOkHttpClient .builder()
44
+ .baseUrl(wmRuntimeInfo.httpBaseUrl)
54
45
.apiKey(" My API Key" )
55
- .organization(" My Organization" )
56
- .project(" My Project" )
57
- .baseUrl(wmRuntimeInfo.getHttpBaseUrl())
58
46
.build()
59
47
}
60
48
61
49
@Test
62
- fun completionsCreateWithAdditionalParams () {
63
- val additionalHeaders = mutableMapOf<String , List <String >>()
64
-
65
- additionalHeaders.put(" x-test-header" , listOf (" abc1234" ))
66
-
67
- val additionalQueryParams = mutableMapOf<String , List <String >>()
68
-
69
- additionalQueryParams.put(" test_query_param" , listOf (" def567" ))
70
-
71
- val additionalBodyProperties = mutableMapOf<String , JsonValue >()
50
+ fun create () {
51
+ val completionService = client.chat().completions()
52
+ stubFor(post(anyUrl()).willReturn(ok(" {}" )))
72
53
73
- additionalBodyProperties.put(" testBodyProperty" , JsonValue .from(" ghi890" ))
74
-
75
- val params =
54
+ completionService.create(
76
55
ChatCompletionCreateParams .builder()
77
56
.addMessage(
78
57
ChatCompletionDeveloperMessageParam .builder()
@@ -146,120 +125,17 @@ class ServiceParamsTest {
146
125
.topLogprobs(0L )
147
126
.topP(1.0 )
148
127
.user(" user-1234" )
149
- .additionalHeaders(additionalHeaders )
150
- .additionalBodyProperties(additionalBodyProperties )
151
- .additionalQueryParams(additionalQueryParams )
128
+ .putAdditionalHeader( " Secret-Header " , " 42 " )
129
+ .putAdditionalQueryParam( " secret_query_param " , " 42 " )
130
+ .putAdditionalBodyProperty( " secretProperty " , JsonValue .from( " 42 " ) )
152
131
.build()
153
-
154
- val apiResponse =
155
- ChatCompletion .builder()
156
- .id(" id" )
157
- .addChoice(
158
- ChatCompletion .Choice .builder()
159
- .finishReason(ChatCompletion .Choice .FinishReason .STOP )
160
- .index(0L )
161
- .logprobs(
162
- ChatCompletion .Choice .Logprobs .builder()
163
- .addContent(
164
- ChatCompletionTokenLogprob .builder()
165
- .token(" token" )
166
- .addByte(0L )
167
- .logprob(0.0 )
168
- .addTopLogprob(
169
- ChatCompletionTokenLogprob .TopLogprob .builder()
170
- .token(" token" )
171
- .addByte(0L )
172
- .logprob(0.0 )
173
- .build()
174
- )
175
- .build()
176
- )
177
- .addRefusal(
178
- ChatCompletionTokenLogprob .builder()
179
- .token(" token" )
180
- .addByte(0L )
181
- .logprob(0.0 )
182
- .addTopLogprob(
183
- ChatCompletionTokenLogprob .TopLogprob .builder()
184
- .token(" token" )
185
- .addByte(0L )
186
- .logprob(0.0 )
187
- .build()
188
- )
189
- .build()
190
- )
191
- .build()
192
- )
193
- .message(
194
- ChatCompletionMessage .builder()
195
- .content(" content" )
196
- .refusal(" refusal" )
197
- .audio(
198
- ChatCompletionAudio .builder()
199
- .id(" id" )
200
- .data(" data" )
201
- .expiresAt(0L )
202
- .transcript(" transcript" )
203
- .build()
204
- )
205
- .functionCall(
206
- ChatCompletionMessage .FunctionCall .builder()
207
- .arguments(" arguments" )
208
- .name(" name" )
209
- .build()
210
- )
211
- .addToolCall(
212
- ChatCompletionMessageToolCall .builder()
213
- .id(" id" )
214
- .function(
215
- ChatCompletionMessageToolCall .Function .builder()
216
- .arguments(" arguments" )
217
- .name(" name" )
218
- .build()
219
- )
220
- .build()
221
- )
222
- .build()
223
- )
224
- .build()
225
- )
226
- .created(0L )
227
- .model(" model" )
228
- .serviceTier(ChatCompletion .ServiceTier .SCALE )
229
- .systemFingerprint(" system_fingerprint" )
230
- .usage(
231
- CompletionUsage .builder()
232
- .completionTokens(0L )
233
- .promptTokens(0L )
234
- .totalTokens(0L )
235
- .completionTokensDetails(
236
- CompletionUsage .CompletionTokensDetails .builder()
237
- .acceptedPredictionTokens(0L )
238
- .audioTokens(0L )
239
- .reasoningTokens(0L )
240
- .rejectedPredictionTokens(0L )
241
- .build()
242
- )
243
- .promptTokensDetails(
244
- CompletionUsage .PromptTokensDetails .builder()
245
- .audioTokens(0L )
246
- .cachedTokens(0L )
247
- .build()
248
- )
249
- .build()
250
- )
251
- .build()
252
-
253
- stubFor(
254
- post(anyUrl())
255
- .withHeader(" x-test-header" , equalTo(" abc1234" ))
256
- .withQueryParam(" test_query_param" , equalTo(" def567" ))
257
- .withRequestBody(matchingJsonPath(" $.testBodyProperty" , equalTo(" ghi890" )))
258
- .willReturn(ok(JSON_MAPPER .writeValueAsString(apiResponse)))
259
132
)
260
133
261
- client.chat().completions().create(params)
262
-
263
- verify(postRequestedFor(anyUrl()))
134
+ verify(
135
+ postRequestedFor(anyUrl())
136
+ .withHeader(" Secret-Header" , equalTo(" 42" ))
137
+ .withQueryParam(" secret_query_param" , equalTo(" 42" ))
138
+ .withRequestBody(matchingJsonPath(" $.secretProperty" , equalTo(" 42" )))
139
+ )
264
140
}
265
141
}
0 commit comments