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)) {
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("");
}

View File

@@ -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();
}

View File

@@ -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("");
}

View File

@@ -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())

View File

@@ -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));
}