Skip to content

Commit b4b3c51

Browse files
authored
Merge pull request #1041 from quarkiverse/configname-openai
Bring ModelAuthProvider support to the OpenAI extension
2 parents 0fa2a96 + 171166b commit b4b3c51

File tree

8 files changed

+59
-0
lines changed

8 files changed

+59
-0
lines changed

model-providers/openai/openai-common/runtime/src/main/java/io/quarkiverse/langchain4j/openai/common/QuarkusOpenAiClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,7 @@ public static class QuarkusOpenAiClientBuilderFactory implements OpenAiClientBui
527527
@Override
528528
public Builder get() {
529529
var result = new Builder();
530+
result.configName(AdditionalPropertiesHack.getAndClearConfigName());
530531
result.tlsConfigurationName(AdditionalPropertiesHack.getAndClearTlsConfigurationName());
531532
return result;
532533
}

model-providers/openai/openai-common/runtime/src/main/java/io/quarkiverse/langchain4j/openai/common/runtime/AdditionalPropertiesHack.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ public static void reset() {
2626
PROPS.set(new HashMap<>());
2727
}
2828

29+
public static void setConfigName(String configName) {
30+
Map<String, String> map = PROPS.get();
31+
if (map == null) {
32+
// this should never happen
33+
return;
34+
}
35+
map.put("configName", configName);
36+
}
37+
2938
public static void setTlsConfigurationName(String tlsConfigurationName) {
3039
Map<String, String> map = PROPS.get();
3140
if (map == null) {
@@ -35,6 +44,15 @@ public static void setTlsConfigurationName(String tlsConfigurationName) {
3544
map.put("tlsConfigurationName", tlsConfigurationName);
3645
}
3746

47+
public static String getAndClearConfigName() {
48+
Map<String, String> map = PROPS.get();
49+
if (map == null) {
50+
// this should never happen
51+
return null;
52+
}
53+
return map.remove("configName");
54+
}
55+
3856
public static String getAndClearTlsConfigurationName() {
3957
Map<String, String> map = PROPS.get();
4058
if (map == null) {

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/QuarkusOpenAiChatModelBuilderFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,22 @@ public OpenAiChatModel.OpenAiChatModelBuilder get() {
1212

1313
public static class Builder extends OpenAiChatModel.OpenAiChatModelBuilder {
1414

15+
private String configName;
1516
private String tlsConfigurationName;
1617

18+
public Builder configName(String configName) {
19+
this.configName = configName;
20+
return this;
21+
}
22+
1723
public Builder tlsConfigurationName(String tlsConfigurationName) {
1824
this.tlsConfigurationName = tlsConfigurationName;
1925
return this;
2026
}
2127

2228
@Override
2329
public OpenAiChatModel build() {
30+
AdditionalPropertiesHack.setConfigName(configName);
2431
AdditionalPropertiesHack.setTlsConfigurationName(tlsConfigurationName);
2532
return super.build();
2633
}

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/QuarkusOpenAiEmbeddingModelBuilderFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@ public OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder get() {
1313

1414
public static class Builder extends OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder {
1515

16+
private String configName;
1617
private String tlsConfigurationName;
1718

19+
public Builder configName(String configName) {
20+
this.configName = configName;
21+
return this;
22+
}
23+
1824
public Builder tlsConfigurationName(String tlsConfigurationName) {
1925
this.tlsConfigurationName = tlsConfigurationName;
2026
return this;
2127
}
2228

2329
@Override
2430
public OpenAiEmbeddingModel build() {
31+
AdditionalPropertiesHack.setConfigName(configName);
2532
AdditionalPropertiesHack.setTlsConfigurationName(tlsConfigurationName);
2633
return super.build();
2734
}

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/QuarkusOpenAiImageModel.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public QuarkusOpenAiImageModel(Builder builder) {
5555

5656
this.client = QuarkusOpenAiClient.builder()
5757
.baseUrl(builder.baseUrl)
58+
.configName(builder.configName)
5859
.tlsConfigurationName(builder.tlsConfigurationName)
5960
.openAiApiKey(builder.apiKey)
6061
.organizationId(builder.organizationId)
@@ -139,6 +140,7 @@ public static Builder builder() {
139140

140141
public static class Builder {
141142
private String baseUrl;
143+
private String configName;
142144
private String tlsConfigurationName;
143145
private String apiKey;
144146
private String organizationId;
@@ -159,6 +161,11 @@ public Builder baseUrl(String baseUrl) {
159161
return this;
160162
}
161163

164+
public Builder configName(String configName) {
165+
this.configName = configName;
166+
return this;
167+
}
168+
162169
public Builder tlsConfigurationName(String tlsConfigurationName) {
163170
this.tlsConfigurationName = tlsConfigurationName;
164171
return this;

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/QuarkusOpenAiModerationModelBuilderFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@ public OpenAiModerationModel.OpenAiModerationModelBuilder get() {
1313

1414
public static class Builder extends OpenAiModerationModel.OpenAiModerationModelBuilder {
1515

16+
private String configName;
1617
private String tlsConfigurationName;
1718

19+
public Builder configName(String configName) {
20+
this.configName = configName;
21+
return this;
22+
}
23+
1824
public Builder tlsConfigurationName(String tlsConfigurationName) {
1925
this.tlsConfigurationName = tlsConfigurationName;
2026
return this;
2127
}
2228

2329
@Override
2430
public OpenAiModerationModel build() {
31+
AdditionalPropertiesHack.setConfigName(configName);
2532
AdditionalPropertiesHack.setTlsConfigurationName(tlsConfigurationName);
2633
return super.build();
2734
}

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/QuarkusOpenAiStreamingChatModelBuilderFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,22 @@ public OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder get() {
1313

1414
public static class Builder extends OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder {
1515

16+
private String configName;
1617
private String tlsConfigurationName;
1718

19+
public Builder configName(String configName) {
20+
this.configName = configName;
21+
return this;
22+
}
23+
1824
public Builder tlsConfigurationName(String tlsConfigurationName) {
1925
this.tlsConfigurationName = tlsConfigurationName;
2026
return this;
2127
}
2228

2329
@Override
2430
public OpenAiStreamingChatModel build() {
31+
AdditionalPropertiesHack.setConfigName(configName);
2532
AdditionalPropertiesHack.setTlsConfigurationName(tlsConfigurationName);
2633
return super.build();
2734
}

model-providers/openai/openai-vanilla/runtime/src/main/java/io/quarkiverse/langchain4j/openai/runtime/OpenAiRecorder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public Function<SyntheticCreationalContext<ChatLanguageModel>, ChatLanguageModel
7272

7373
builder
7474
.tlsConfigurationName(openAiConfig.tlsConfigurationName().orElse(null))
75+
.configName(configName)
7576
.baseUrl(openAiConfig.baseUrl())
7677
.apiKey(apiKey)
7778
.timeout(openAiConfig.timeout().orElse(Duration.ofSeconds(10)))
@@ -129,6 +130,7 @@ public Supplier<StreamingChatLanguageModel> streamingChatModel(LangChain4jOpenAi
129130
var builder = (QuarkusOpenAiStreamingChatModelBuilderFactory.Builder) OpenAiStreamingChatModel.builder();
130131
builder
131132
.tlsConfigurationName(openAiConfig.tlsConfigurationName().orElse(null))
133+
.configName(configName)
132134
.baseUrl(openAiConfig.baseUrl())
133135
.apiKey(apiKey)
134136
.timeout(openAiConfig.timeout().orElse(Duration.ofSeconds(10)))
@@ -182,6 +184,7 @@ public Supplier<EmbeddingModel> embeddingModel(LangChain4jOpenAiConfig runtimeCo
182184
var builder = (QuarkusOpenAiEmbeddingModelBuilderFactory.Builder) OpenAiEmbeddingModel.builder();
183185
builder
184186
.tlsConfigurationName(openAiConfig.tlsConfigurationName().orElse(null))
187+
.configName(configName)
185188
.baseUrl(openAiConfig.baseUrl())
186189
.apiKey(apiKey)
187190
.timeout(openAiConfig.timeout().orElse(Duration.ofSeconds(10)))
@@ -230,6 +233,7 @@ public Supplier<ModerationModel> moderationModel(LangChain4jOpenAiConfig runtime
230233
var builder = (QuarkusOpenAiModerationModelBuilderFactory.Builder) OpenAiModerationModel.builder();
231234
builder
232235
.tlsConfigurationName(openAiConfig.tlsConfigurationName().orElse(null))
236+
.configName(configName)
233237
.baseUrl(openAiConfig.baseUrl())
234238
.apiKey(apiKey)
235239
.timeout(openAiConfig.timeout().orElse(Duration.ofSeconds(10)))
@@ -272,6 +276,7 @@ public Supplier<ImageModel> imageModel(LangChain4jOpenAiConfig runtimeConfig, St
272276
}
273277
ImageModelConfig imageModelConfig = openAiConfig.imageModel();
274278
var builder = QuarkusOpenAiImageModel.builder()
279+
.configName(configName)
275280
.tlsConfigurationName(openAiConfig.tlsConfigurationName().orElse(null))
276281
.baseUrl(openAiConfig.baseUrl())
277282
.apiKey(apiKey)

0 commit comments

Comments
 (0)