From 91fba2210fc12d89e54f48a54cb00966b75020cf Mon Sep 17 00:00:00 2001 From: Derrick Hall Date: Tue, 21 Nov 2023 00:08:33 -0500 Subject: [PATCH] Allow setting of base url when creating service --- .../openai/service/OpenAiService.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/service/src/main/java/com/theokanning/openai/service/OpenAiService.java b/service/src/main/java/com/theokanning/openai/service/OpenAiService.java index ee63c419..8ae497c5 100644 --- a/service/src/main/java/com/theokanning/openai/service/OpenAiService.java +++ b/service/src/main/java/com/theokanning/openai/service/OpenAiService.java @@ -81,7 +81,7 @@ public class OpenAiService { * @param token OpenAi token string "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" */ public OpenAiService(final String token) { - this(token, DEFAULT_TIMEOUT); + this(token, DEFAULT_TIMEOUT, BASE_URL); } /** @@ -91,9 +91,19 @@ public OpenAiService(final String token) { * @param timeout http read timeout, Duration.ZERO means no timeout */ public OpenAiService(final String token, final Duration timeout) { + this(token, timeout, BASE_URL); + } + + /** + * Creates a new OpenAiService that wraps OpenAiApi + * + * @param token OpenAi token string "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" + * @param baseUrl URL for the service "https://api.openai.com/" + */ + public OpenAiService(final String token, final Duration timeout, final String baseUrl) { ObjectMapper mapper = defaultObjectMapper(); OkHttpClient client = defaultClient(token, timeout); - Retrofit retrofit = defaultRetrofit(client, mapper); + Retrofit retrofit = defaultRetrofit(client, mapper, baseUrl); this.api = retrofit.create(OpenAiApi.class); this.executorService = client.dispatcher().executorService(); @@ -572,7 +582,7 @@ public void shutdownExecutor() { public static OpenAiApi buildApi(String token, Duration timeout) { ObjectMapper mapper = defaultObjectMapper(); OkHttpClient client = defaultClient(token, timeout); - Retrofit retrofit = defaultRetrofit(client, mapper); + Retrofit retrofit = defaultRetrofit(client, mapper, BASE_URL); return retrofit.create(OpenAiApi.class); } @@ -596,9 +606,9 @@ public static OkHttpClient defaultClient(String token, Duration timeout) { .build(); } - public static Retrofit defaultRetrofit(OkHttpClient client, ObjectMapper mapper) { + public static Retrofit defaultRetrofit(OkHttpClient client, ObjectMapper mapper, final String baseUrl) { return new Retrofit.Builder() - .baseUrl(BASE_URL) + .baseUrl(baseUrl) .client(client) .addConverterFactory(JacksonConverterFactory.create(mapper)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create())