refactor: streamline model name retrieval in completion clients and update cache handling in OpenRouterModelDiscovery

This commit is contained in:
extio-de
2026-05-15 16:39:22 +02:00
parent 3cac418191
commit a209fc6ca2
5 changed files with 7 additions and 13 deletions

View File

@@ -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)) { if (modelProfile == null || (modelProfile.modelProvider() != ModelProvider.OAI_TEXT_COMPLETION && modelProfile.modelProvider() != ModelProvider.OAI_CHAT_COMPLETION)) {
return List.of(); return List.of();
} }
if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) {
return List.of(modelProfile.modelName());
}
if (modelProfile.url() == null || modelProfile.url().isBlank()) { if (modelProfile.url() == null || modelProfile.url().isBlank()) {
return List.of(); return List.of();
} }
@@ -166,6 +163,9 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean
} }
protected String getPrimaryModelName(final ModelProfile modelProfile) { protected String getPrimaryModelName(final ModelProfile modelProfile) {
if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) {
return modelProfile.modelName();
}
return this.getModelNames(modelProfile, false).stream().findFirst().orElse(""); return this.getModelNames(modelProfile, false).stream().findFirst().orElse("");
} }

View File

@@ -134,9 +134,6 @@ public class ResponsesApiClient implements Client{
if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OAI_RESPONSES) { if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OAI_RESPONSES) {
return List.of(); return List.of();
} }
if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) {
return List.of(modelProfile.modelName());
}
if (modelProfile.url() == null || modelProfile.url().isBlank()) { if (modelProfile.url() == null || modelProfile.url().isBlank()) {
return List.of(); return List.of();
} }

View File

@@ -154,9 +154,6 @@ public class OllamaClient implements Client {
if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OLLAMA) { if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OLLAMA) {
return List.of(); return List.of();
} }
if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) {
return List.of(modelProfile.modelName());
}
if (modelProfile.url() == null || modelProfile.url().isBlank()) { if (modelProfile.url() == null || modelProfile.url().isBlank()) {
return List.of(); return List.of();
} }
@@ -432,6 +429,9 @@ public class OllamaClient implements Client {
} }
private String getPrimaryModelName(final ModelProfile modelProfile) { private String getPrimaryModelName(final ModelProfile modelProfile) {
if (modelProfile.modelName() != null && !modelProfile.modelName().isBlank()) {
return modelProfile.modelName();
}
return this.getModelNames(modelProfile, false).stream().findFirst().orElse(""); return this.getModelNames(modelProfile, false).stream().findFirst().orElse("");
} }

View File

@@ -53,9 +53,6 @@ public class OpenRouterClient extends ChatCompletionClient {
if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OPENROUTER) { if (modelProfile == null || modelProfile.modelProvider() != ModelProvider.OPENROUTER) {
return List.of(); 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() return this.openRouterModelDiscovery.listModels(modelProfile, new OpenRouterModelQuery(true, null, List.of(), List.of()), forceReload).stream()
.map(OpenRouterModelsResponse.OpenRouterModel::getId) .map(OpenRouterModelsResponse.OpenRouterModel::getId)
.filter(modelName -> modelName != null && !modelName.isBlank()) .filter(modelName -> modelName != null && !modelName.isBlank())

View File

@@ -47,7 +47,7 @@ public class OpenRouterModelDiscovery {
} }
final var cacheKey = this.modelListCacheKey(modelProfile, query); final var cacheKey = this.modelListCacheKey(modelProfile, query);
if (forceReload) { 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)); return this.modelListCache.computeIfAbsent(cacheKey, key -> this.loadModels(modelProfile, query));
} }