@@ -28,7 +28,7 @@ public class OpenAiClient {
2828
2929 private static final Logger log = LoggerFactory .getLogger (OpenAiClient .class );
3030
31- private final String url ;
31+ private final String baseUrl ;
3232 private final OkHttpClient okHttpClient ;
3333 private final OpenAiApi openAiApi ;
3434 private final boolean logStreamingResponses ;
@@ -39,7 +39,7 @@ public OpenAiClient(String apiKey) {
3939
4040 private OpenAiClient (Builder serviceBuilder ) {
4141
42- this .url = serviceBuilder .url ;
42+ this .baseUrl = serviceBuilder .baseUrl ;
4343
4444 OkHttpClient .Builder okHttpClientBuilder = new OkHttpClient .Builder ()
4545 .addInterceptor (new ApiKeyInsertingInterceptor (serviceBuilder .apiKey ))
@@ -63,7 +63,7 @@ private OpenAiClient(Builder serviceBuilder) {
6363 this .okHttpClient = okHttpClientBuilder .build ();
6464
6565 Retrofit retrofit = new Retrofit .Builder ()
66- .baseUrl (serviceBuilder .url )
66+ .baseUrl (serviceBuilder .baseUrl )
6767 .client (okHttpClient )
6868 .addConverterFactory (GsonConverterFactory .create (GSON ))
6969 .build ();
@@ -93,7 +93,7 @@ public static Builder builder() {
9393
9494 public static class Builder {
9595
96- private String url = "https://api.openai.com/" ;
96+ private String baseUrl = "https://api.openai.com/v1 /" ;
9797 private String apiKey ;
9898 private Duration callTimeout = Duration .ofSeconds (60 );
9999 private Duration connectTimeout = Duration .ofSeconds (60 );
@@ -107,11 +107,11 @@ public static class Builder {
107107 private Builder () {
108108 }
109109
110- public Builder url (String url ) {
111- if (url == null || url .trim ().isEmpty ()) {
112- throw new IllegalArgumentException ("URL cannot be null or empty" );
110+ public Builder baseUrl (String baseUrl ) {
111+ if (baseUrl == null || baseUrl .trim ().isEmpty ()) {
112+ throw new IllegalArgumentException ("baseUrl cannot be null or empty" );
113113 }
114- this .url = url .endsWith ("/" ) ? url : url + "/" ;
114+ this .baseUrl = baseUrl .endsWith ("/" ) ? baseUrl : baseUrl + "/" ;
115115 return this ;
116116 }
117117
@@ -212,7 +212,7 @@ public SyncOrAsyncOrStreaming<CompletionResponse> completion(CompletionRequest r
212212 openAiApi .completions (CompletionRequest .builder ().from (request ).stream (null ).build ()),
213213 (r ) -> r ,
214214 okHttpClient ,
215- url + "v1/ completions" ,
215+ baseUrl + "completions" ,
216216 () -> CompletionRequest .builder ().from (request ).stream (true ).build (),
217217 CompletionResponse .class ,
218218 (r ) -> r ,
@@ -231,7 +231,7 @@ public SyncOrAsyncOrStreaming<String> completion(String prompt) {
231231 openAiApi .completions (CompletionRequest .builder ().from (request ).stream (null ).build ()),
232232 CompletionResponse ::text ,
233233 okHttpClient ,
234- url + "v1/ completions" ,
234+ baseUrl + "completions" ,
235235 () -> CompletionRequest .builder ().from (request ).stream (true ).build (),
236236 CompletionResponse .class ,
237237 CompletionResponse ::text ,
@@ -245,7 +245,7 @@ public SyncOrAsyncOrStreaming<ChatCompletionResponse> chatCompletion(ChatComplet
245245 openAiApi .chatCompletions (ChatCompletionRequest .builder ().from (request ).stream (null ).build ()),
246246 (r ) -> r ,
247247 okHttpClient ,
248- url + "v1/ chat/completions" ,
248+ baseUrl + "chat/completions" ,
249249 () -> ChatCompletionRequest .builder ().from (request ).stream (true ).build (),
250250 ChatCompletionResponse .class ,
251251 (r ) -> r ,
@@ -264,7 +264,7 @@ public SyncOrAsyncOrStreaming<String> chatCompletion(String userMessage) {
264264 openAiApi .chatCompletions (ChatCompletionRequest .builder ().from (request ).stream (null ).build ()),
265265 ChatCompletionResponse ::content ,
266266 okHttpClient ,
267- url + "v1/ chat/completions" ,
267+ baseUrl + "chat/completions" ,
268268 () -> ChatCompletionRequest .builder ().from (request ).stream (true ).build (),
269269 ChatCompletionResponse .class ,
270270 (r ) -> r .choices ().get (0 ).delta ().content (),
0 commit comments