From a209fc6ca24e8be80a34b920921477b27d0c60d4 Mon Sep 17 00:00:00 2001 From: extio-de Date: Fri, 15 May 2026 16:39:22 +0200 Subject: [PATCH] refactor: streamline model name retrieval in completion clients and update cache handling in OpenRouterModelDiscovery --- .../client/oai/completion/AbstractCompletionClient.java | 6 +++--- .../lmlib/client/oai/responses/ResponsesApiClient.java | 3 --- .../java/de/extio/lmlib/client/ollama/OllamaClient.java | 6 +++--- .../de/extio/lmlib/client/openrouter/OpenRouterClient.java | 3 --- .../lmlib/client/openrouter/OpenRouterModelDiscovery.java | 2 +- 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java b/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java index d99db7c..1ba9dd9 100755 --- a/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java +++ b/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java @@ -127,9 +127,6 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean if (modelProfile == null || (modelProfile.modelProvider() != ModelProvider.OAI_TEXT_COMPLETION && modelProfile.modelProvider() != ModelProvider.OAI_CHAT_COMPLETION)) { return List.of(); } - if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { - return List.of(modelProfile.modelName()); - } if (modelProfile.url() == null || modelProfile.url().isBlank()) { return List.of(); } @@ -166,6 +163,9 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean } protected String getPrimaryModelName(final ModelProfile modelProfile) { + if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { + return modelProfile.modelName(); + } return this.getModelNames(modelProfile, false).stream().findFirst().orElse(""); } diff --git a/src/main/java/de/extio/lmlib/client/oai/responses/ResponsesApiClient.java b/src/main/java/de/extio/lmlib/client/oai/responses/ResponsesApiClient.java index df8fb09..bbf1127 100644 --- a/src/main/java/de/extio/lmlib/client/oai/responses/ResponsesApiClient.java +++ b/src/main/java/de/extio/lmlib/client/oai/responses/ResponsesApiClient.java @@ -134,9 +134,6 @@ public class ResponsesApiClient implements Client{ if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OAI_RESPONSES) { return List.of(); } - if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { - return List.of(modelProfile.modelName()); - } if (modelProfile.url() == null || modelProfile.url().isBlank()) { return List.of(); } diff --git a/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java b/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java index cf4ed81..6962359 100644 --- a/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java +++ b/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java @@ -154,9 +154,6 @@ public class OllamaClient implements Client { if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OLLAMA) { return List.of(); } - if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { - return List.of(modelProfile.modelName()); - } if (modelProfile.url() == null || modelProfile.url().isBlank()) { return List.of(); } @@ -432,6 +429,9 @@ public class OllamaClient implements Client { } private String getPrimaryModelName(final ModelProfile modelProfile) { + if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { + return modelProfile.modelName(); + } return this.getModelNames(modelProfile, false).stream().findFirst().orElse(""); } diff --git a/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterClient.java b/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterClient.java index d75793c..9022694 100644 --- a/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterClient.java +++ b/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterClient.java @@ -53,9 +53,6 @@ public class OpenRouterClient extends ChatCompletionClient { if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OPENROUTER) { return List.of(); } - if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) { - return List.of(modelProfile.modelName()); - } return this.openRouterModelDiscovery.listModels(modelProfile, new OpenRouterModelQuery(true, null, List.of(), List.of()), forceReload).stream() .map(OpenRouterModelsResponse.OpenRouterModel::getId) .filter(modelName -> modelName != null && !modelName.isBlank()) diff --git a/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterModelDiscovery.java b/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterModelDiscovery.java index 2ccdfc6..84fda5e 100644 --- a/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterModelDiscovery.java +++ b/src/main/java/de/extio/lmlib/client/openrouter/OpenRouterModelDiscovery.java @@ -47,7 +47,7 @@ public class OpenRouterModelDiscovery { } final var cacheKey = this.modelListCacheKey(modelProfile, query); if (forceReload) { - this.modelListCache.remove(cacheKey); + return this.modelListCache.put(cacheKey, this.loadModels(modelProfile, query)); } return this.modelListCache.computeIfAbsent(cacheKey, key -> this.loadModels(modelProfile, query)); }