22
33package com.openai.services
44
5- import com.fasterxml.jackson.databind.json.JsonMapper
65import com.github.tomakehurst.wiremock.client.WireMock.anyUrl
76import com.github.tomakehurst.wiremock.client.WireMock.equalTo
87import com.github.tomakehurst.wiremock.client.WireMock.matchingJsonPath
@@ -16,23 +15,16 @@ import com.github.tomakehurst.wiremock.junit5.WireMockTest
1615import com.openai.client.OpenAIClient
1716import com.openai.client.okhttp.OpenAIOkHttpClient
1817import com.openai.core.JsonValue
19- import com.openai.core.jsonMapper
20- import com.openai.models.ChatCompletion
21- import com.openai.models.ChatCompletionAudio
2218import com.openai.models.ChatCompletionAudioParam
2319import com.openai.models.ChatCompletionCreateParams
2420import com.openai.models.ChatCompletionDeveloperMessageParam
25- import com.openai.models.ChatCompletionMessage
26- import com.openai.models.ChatCompletionMessageToolCall
2721import com.openai.models.ChatCompletionModality
2822import com.openai.models.ChatCompletionPredictionContent
2923import com.openai.models.ChatCompletionReasoningEffort
3024import com.openai.models.ChatCompletionStreamOptions
31- import com.openai.models.ChatCompletionTokenLogprob
3225import com.openai.models.ChatCompletionTool
3326import com.openai.models.ChatCompletionToolChoiceOption
3427import com.openai.models.ChatModel
35- import com.openai.models.CompletionUsage
3628import com.openai.models.FunctionDefinition
3729import com.openai.models.FunctionParameters
3830import com.openai.models.Metadata
@@ -41,38 +33,25 @@ import org.junit.jupiter.api.BeforeEach
4133import org.junit.jupiter.api.Test
4234
4335@WireMockTest
44- class ServiceParamsTest {
45-
46- private val JSON_MAPPER : JsonMapper = jsonMapper()
36+ internal class ServiceParamsTest {
4737
4838 private lateinit var client: OpenAIClient
4939
5040 @BeforeEach
5141 fun beforeEach (wmRuntimeInfo : WireMockRuntimeInfo ) {
5242 client =
5343 OpenAIOkHttpClient .builder()
44+ .baseUrl(wmRuntimeInfo.httpBaseUrl)
5445 .apiKey(" My API Key" )
55- .organization(" My Organization" )
56- .project(" My Project" )
57- .baseUrl(wmRuntimeInfo.getHttpBaseUrl())
5846 .build()
5947 }
6048
6149 @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(" {}" )))
7253
73- additionalBodyProperties.put(" testBodyProperty" , JsonValue .from(" ghi890" ))
74-
75- val params =
54+ completionService.create(
7655 ChatCompletionCreateParams .builder()
7756 .addMessage(
7857 ChatCompletionDeveloperMessageParam .builder()
@@ -146,120 +125,17 @@ class ServiceParamsTest {
146125 .topLogprobs(0L )
147126 .topP(1.0 )
148127 .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 " ) )
152131 .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)))
259132 )
260133
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+ )
264140 }
265141}
0 commit comments