Skip to content

Commit

Permalink
OPIK-744 ignore default
Browse files Browse the repository at this point in the history
  • Loading branch information
idoberko2 committed Jan 15, 2025
1 parent d18f06c commit 000354e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.EnumUtils;

import java.util.Set;
import java.util.function.Function;

@Singleton
Expand Down Expand Up @@ -50,13 +51,13 @@ public ChatLanguageModel getLanguageModel(@NonNull String workspaceId,
* The agreed requirement is to resolve the LLM provider and its API key based on the model.
*/
private LlmProvider getLlmProvider(String model) {
if (isModelBelongToProvider(model, ModelPrice.class, ModelPrice::getName)) {
if (isModelBelongToProvider(model, ModelPrice.class, ModelPrice::getName, Set.of(ModelPrice.DEFAULT))) {
return LlmProvider.OPEN_AI;
}
if (isModelBelongToProvider(model, AnthropicModelName.class, AnthropicModelName::toString)) {
if (isModelBelongToProvider(model, AnthropicModelName.class, AnthropicModelName::toString, Set.of())) {
return LlmProvider.ANTHROPIC;
}
if (isModelBelongToProvider(model, GeminiModelName.class, GeminiModelName::toString)) {
if (isModelBelongToProvider(model, GeminiModelName.class, GeminiModelName::toString, Set.of())) {
return LlmProvider.GEMINI;
}

Expand All @@ -77,8 +78,9 @@ private String getEncryptedApiKey(String workspaceId, LlmProvider llmProvider) {
}

private static <E extends Enum<E>> boolean isModelBelongToProvider(
String model, Class<E> enumClass, Function<E, String> valueGetter) {
String model, Class<E> enumClass, Function<E, String> valueGetter, Set<Object> exclude) {
return EnumUtils.getEnumList(enumClass).stream()
.filter(value -> !exclude.contains(value))
.map(valueGetter)
.anyMatch(model::equals);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ void testGetService(String model, LlmProvider llmProvider, Class<? extends LlmPr

private static Stream<Arguments> testGetService() {
var openAiModels = EnumUtils.getEnumList(ModelPrice.class).stream()
.filter(value -> value != ModelPrice.DEFAULT)
.map(model -> arguments(model.getName(), LlmProvider.OPEN_AI, LlmProviderOpenAi.class));
var anthropicModels = EnumUtils.getEnumList(AnthropicModelName.class).stream()
.map(model -> arguments(model.toString(), LlmProvider.ANTHROPIC, LlmProviderAnthropic.class));
Expand Down

0 comments on commit 000354e

Please # to comment.