Skip to content

Commit 8ed75b4

Browse files
committed
Make sure Ollama works in native mode
Fixes: #1644
1 parent a3cbc0d commit 8ed75b4

File tree

1 file changed

+20
-1
lines changed
  • model-providers/ollama/deployment/src/main/java/io/quarkiverse/langchain4j/ollama/deployment

1 file changed

+20
-1
lines changed

model-providers/ollama/deployment/src/main/java/io/quarkiverse/langchain4j/ollama/deployment/OllamaProcessor.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
import io.quarkus.deployment.annotations.ExecutionTime;
3737
import io.quarkus.deployment.annotations.Record;
3838
import io.quarkus.deployment.builditem.FeatureBuildItem;
39+
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
40+
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
41+
import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem;
3942
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
4043
import io.quarkus.resteasy.reactive.spi.MessageBodyReaderOverrideBuildItem;
4144
import io.quarkus.resteasy.reactive.spi.MessageBodyWriterOverrideBuildItem;
@@ -55,9 +58,25 @@ FeatureBuildItem feature() {
5558
}
5659

5760
@BuildStep
58-
void nativeSupport(BuildProducer<ServiceProviderBuildItem> serviceProviderProducer) {
61+
IndexDependencyBuildItem indexUpstreamOllamaModule() {
62+
return new IndexDependencyBuildItem("dev.langchain4j", "langchain4j-ollama");
63+
}
64+
65+
@BuildStep
66+
void nativeSupport(BuildProducer<ServiceProviderBuildItem> serviceProviderProducer,
67+
BuildProducer<ReflectiveClassBuildItem> reflectiveClassProducer,
68+
BuildProducer<ReflectiveHierarchyBuildItem> reflectiveHierarchyProducer) {
5969
serviceProviderProducer
6070
.produce(ServiceProviderBuildItem.allProvidersFromClassPath(ConfigSourceInterceptor.class.getName()));
71+
reflectiveHierarchyProducer
72+
.produce(ReflectiveHierarchyBuildItem.builder("dev.langchain4j.model.ollama.OllamaChatRequest")
73+
.source(getClass().getSimpleName()).build());
74+
reflectiveHierarchyProducer
75+
.produce(ReflectiveHierarchyBuildItem.builder("dev.langchain4j.model.ollama.OllamaChatResponse")
76+
.source(getClass().getSimpleName()).ignoreNested(false).build());
77+
reflectiveClassProducer.produce(ReflectiveClassBuildItem
78+
.builder("dev.langchain4j.model.ollama.FormatSerializer", "dev.langchain4j.model.ollama.OllamaDateDeserializer")
79+
.constructors().methods(false).fields(false).build());
6180
}
6281

6382
@BuildStep

0 commit comments

Comments
 (0)