Skip to content

Commit aa55364

Browse files
committed
Refactor Llama recorder
1 parent 5bd711d commit aa55364

File tree

2 files changed

+29
-33
lines changed

2 files changed

+29
-33
lines changed

model-providers/jlama/deployment/src/main/java/io/quarkiverse/langchain4j/jlama/deployment/JlamaProcessor.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import io.quarkiverse.langchain4j.deployment.items.SelectedEmbeddingModelCandidateBuildItem;
3737
import io.quarkiverse.langchain4j.jlama.JlamaModelRegistry;
3838
import io.quarkiverse.langchain4j.jlama.runtime.JlamaAiRecorder;
39-
import io.quarkiverse.langchain4j.jlama.runtime.config.LangChain4jJlamaConfig;
4039
import io.quarkiverse.langchain4j.jlama.runtime.config.LangChain4jJlamaFixedRuntimeConfig;
4140
import io.quarkiverse.langchain4j.runtime.NamedConfigUtil;
4241
import io.quarkus.arc.deployment.SyntheticBeanBuildItem;
@@ -89,27 +88,24 @@ public void providerCandidates(BuildProducer<ChatModelProviderCandidateBuildItem
8988
}
9089
}
9190

92-
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
9391
@BuildStep
9492
@Record(ExecutionTime.RUNTIME_INIT)
9593
void generateBeans(JlamaAiRecorder recorder, List<SelectedChatModelProviderBuildItem> selectedChatItem,
9694
List<SelectedEmbeddingModelCandidateBuildItem> selectedEmbedding,
97-
LangChain4jJlamaConfig runtimeConfig,
98-
LangChain4jJlamaFixedRuntimeConfig fixedRuntimeConfig,
9995
BuildProducer<SyntheticBeanBuildItem> beanProducer) {
10096

10197
for (var selected : selectedChatItem) {
10298
if (PROVIDER.equals(selected.getProvider())) {
10399
String configName = selected.getConfigName();
104100
var builder = SyntheticBeanBuildItem.configure(CHAT_MODEL).setRuntimeInit().defaultBean()
105101
.scope(ApplicationScoped.class)
106-
.supplier(recorder.chatModel(runtimeConfig, fixedRuntimeConfig, configName));
102+
.supplier(recorder.chatModel(configName));
107103
addQualifierIfNecessary(builder, configName);
108104
beanProducer.produce(builder.done());
109105

110106
var streamingBuilder = SyntheticBeanBuildItem.configure(STREAMING_CHAT_MODEL).setRuntimeInit()
111107
.defaultBean().scope(ApplicationScoped.class)
112-
.supplier(recorder.streamingChatModel(runtimeConfig, fixedRuntimeConfig, configName));
108+
.supplier(recorder.streamingChatModel(configName));
113109
addQualifierIfNecessary(streamingBuilder, configName);
114110
beanProducer.produce(streamingBuilder.done());
115111
}
@@ -120,7 +116,7 @@ void generateBeans(JlamaAiRecorder recorder, List<SelectedChatModelProviderBuild
120116
String configName = selected.getConfigName();
121117
var builder = SyntheticBeanBuildItem.configure(EMBEDDING_MODEL).setRuntimeInit().defaultBean()
122118
.unremovable().scope(ApplicationScoped.class)
123-
.supplier(recorder.embeddingModel(runtimeConfig, fixedRuntimeConfig, configName));
119+
.supplier(recorder.embeddingModel(configName));
124120
addQualifierIfNecessary(builder, configName);
125121
beanProducer.produce(builder.done());
126122
}

model-providers/jlama/runtime/src/main/java/io/quarkiverse/langchain4j/jlama/runtime/JlamaAiRecorder.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,32 @@
1515
import io.quarkiverse.langchain4j.jlama.runtime.config.LangChain4jJlamaConfig;
1616
import io.quarkiverse.langchain4j.jlama.runtime.config.LangChain4jJlamaFixedRuntimeConfig;
1717
import io.quarkiverse.langchain4j.runtime.NamedConfigUtil;
18+
import io.quarkus.runtime.RuntimeValue;
1819
import io.quarkus.runtime.annotations.Recorder;
1920

2021
@Recorder
2122
public class JlamaAiRecorder {
23+
private final RuntimeValue<LangChain4jJlamaConfig> runtimeConfig;
24+
private final RuntimeValue<LangChain4jJlamaFixedRuntimeConfig> fixedRuntimeConfig;
2225

23-
public Supplier<ChatModel> chatModel(LangChain4jJlamaConfig runtimeConfig,
24-
LangChain4jJlamaFixedRuntimeConfig fixedRuntimeConfig,
25-
String configName) {
26-
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(runtimeConfig, configName);
26+
public JlamaAiRecorder(RuntimeValue<LangChain4jJlamaConfig> runtimeConfig,
27+
RuntimeValue<LangChain4jJlamaFixedRuntimeConfig> fixedRuntimeConfig) {
28+
this.runtimeConfig = runtimeConfig;
29+
this.fixedRuntimeConfig = fixedRuntimeConfig;
30+
}
31+
32+
public Supplier<ChatModel> chatModel(String configName) {
33+
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(configName);
2734
LangChain4jJlamaFixedRuntimeConfig.JlamaConfig jlamaFixedRuntimeConfig = correspondingJlamaFixedRuntimeConfig(
28-
fixedRuntimeConfig, configName);
35+
configName);
2936

3037
if (jlamaConfig.enableIntegration()) {
3138
ChatModelConfig chatModelConfig = jlamaConfig.chatModel();
3239

3340
String modelName = jlamaFixedRuntimeConfig.chatModel().modelName();
3441
var builder = JlamaChatModel.builder()
3542
.modelName(modelName)
36-
.modelCachePath(fixedRuntimeConfig.modelsPath());
43+
.modelCachePath(fixedRuntimeConfig.getValue().modelsPath());
3744

3845
jlamaConfig.logRequests().ifPresent(builder::logRequests);
3946
jlamaConfig.logResponses().ifPresent(builder::logResponses);
@@ -57,19 +64,16 @@ public ChatModel get() {
5764
}
5865
}
5966

60-
public Supplier<StreamingChatModel> streamingChatModel(LangChain4jJlamaConfig runtimeConfig,
61-
LangChain4jJlamaFixedRuntimeConfig fixedRuntimeConfig,
62-
String configName) {
63-
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(runtimeConfig, configName);
67+
public Supplier<StreamingChatModel> streamingChatModel(String configName) {
68+
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(configName);
6469
LangChain4jJlamaFixedRuntimeConfig.JlamaConfig jlamaFixedRuntimeConfig = correspondingJlamaFixedRuntimeConfig(
65-
fixedRuntimeConfig, configName);
66-
70+
configName);
6771
if (jlamaConfig.enableIntegration()) {
6872
ChatModelConfig chatModelConfig = jlamaConfig.chatModel();
6973

7074
var builder = JlamaStreamingChatModel.builder()
7175
.modelName(jlamaFixedRuntimeConfig.chatModel().modelName())
72-
.modelCachePath(fixedRuntimeConfig.modelsPath());
76+
.modelCachePath(fixedRuntimeConfig.getValue().modelsPath());
7377

7478
chatModelConfig.temperature().ifPresent(temp -> builder.temperature((float) temp));
7579

@@ -89,17 +93,15 @@ public StreamingChatModel get() {
8993
}
9094
}
9195

92-
public Supplier<EmbeddingModel> embeddingModel(LangChain4jJlamaConfig runtimeConfig,
93-
LangChain4jJlamaFixedRuntimeConfig fixedRuntimeConfig,
94-
String configName) {
95-
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(runtimeConfig, configName);
96+
public Supplier<EmbeddingModel> embeddingModel(String configName) {
97+
LangChain4jJlamaConfig.JlamaConfig jlamaConfig = correspondingJlamaConfig(configName);
9698
LangChain4jJlamaFixedRuntimeConfig.JlamaConfig jlamaFixedRuntimeConfig = correspondingJlamaFixedRuntimeConfig(
97-
fixedRuntimeConfig, configName);
99+
configName);
98100

99101
if (jlamaConfig.enableIntegration()) {
100102
var builder = JlamaEmbeddingModel.builder()
101103
.modelName(jlamaFixedRuntimeConfig.embeddingModel().modelName())
102-
.modelCachePath(fixedRuntimeConfig.modelsPath());
104+
.modelCachePath(fixedRuntimeConfig.getValue().modelsPath());
103105

104106
return new Supplier<>() {
105107
@Override
@@ -117,17 +119,15 @@ public EmbeddingModel get() {
117119
}
118120
}
119121

120-
private LangChain4jJlamaConfig.JlamaConfig correspondingJlamaConfig(LangChain4jJlamaConfig runtimeConfig,
121-
String configName) {
122-
return NamedConfigUtil.isDefault(configName) ? runtimeConfig.defaultConfig()
123-
: runtimeConfig.namedConfig().get(configName);
122+
private LangChain4jJlamaConfig.JlamaConfig correspondingJlamaConfig(String configName) {
123+
return NamedConfigUtil.isDefault(configName) ? runtimeConfig.getValue().defaultConfig()
124+
: runtimeConfig.getValue().namedConfig().get(configName);
124125
}
125126

126127
private LangChain4jJlamaFixedRuntimeConfig.JlamaConfig correspondingJlamaFixedRuntimeConfig(
127-
LangChain4jJlamaFixedRuntimeConfig runtimeConfig,
128128
String configName) {
129-
return NamedConfigUtil.isDefault(configName) ? runtimeConfig.defaultConfig()
130-
: runtimeConfig.namedConfig().get(configName);
129+
return NamedConfigUtil.isDefault(configName) ? fixedRuntimeConfig.getValue().defaultConfig()
130+
: fixedRuntimeConfig.getValue().namedConfig().get(configName);
131131
}
132132

133133
}

0 commit comments

Comments
 (0)