Skip to content

Commit ed10fb7

Browse files
committed
When creating fastJar don't try to include models more than once
1 parent 867216e commit ed10fb7

File tree

1 file changed

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

1 file changed

+18
-1
lines changed

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import java.nio.file.Files;
1212
import java.nio.file.Path;
1313
import java.util.ArrayList;
14+
import java.util.LinkedHashSet;
1415
import java.util.List;
16+
import java.util.Objects;
1517
import java.util.Optional;
1618
import java.util.concurrent.TimeUnit;
1719
import java.util.concurrent.atomic.AtomicReference;
@@ -271,7 +273,8 @@ public void copyToFastJar(List<ModelDownloadedBuildItem> models,
271273
Path quarkusAppDir = jarPath.getParent();
272274
Path jlamaInQuarkusAppDir = quarkusAppDir.resolve("jlama");
273275

274-
for (ModelDownloadedBuildItem bi : models) {
276+
// Using LinkedHashSet to guarantee uniqueness of models
277+
for (ModelDownloadedBuildItem bi : new LinkedHashSet<>(models)) {
275278
try {
276279
JlamaModelRegistry.ModelInfo modelInfo = JlamaModelRegistry.ModelInfo.from(bi.getModelName());
277280
Path targetDir = jlamaInQuarkusAppDir.resolve(modelInfo.toFileName());
@@ -301,5 +304,19 @@ public String getModelName() {
301304
public Path getDirectory() {
302305
return directory;
303306
}
307+
308+
@Override
309+
public boolean equals(Object o) {
310+
if (!(o instanceof ModelDownloadedBuildItem that)) {
311+
return false;
312+
}
313+
314+
return Objects.equals(modelName, that.modelName) && Objects.equals(directory, that.directory);
315+
}
316+
317+
@Override
318+
public int hashCode() {
319+
return Objects.hash(modelName, directory);
320+
}
304321
}
305322
}

0 commit comments

Comments
 (0)