From ec7af3c4930576833441b879a957fc9b19a2cd7e Mon Sep 17 00:00:00 2001 From: Ruslan Popov Date: Wed, 26 Nov 2025 21:51:45 +0100 Subject: [PATCH] fix(ai): remove deprecated Hugging Face client --- jablib/build.gradle.kts | 1 - .../chatting/model/JabRefChatLanguageModel.java | 15 +++------------ .../main/java/org/jabref/model/ai/AiProvider.java | 2 +- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/jablib/build.gradle.kts b/jablib/build.gradle.kts index 0920742aa38..89ff7e47793 100644 --- a/jablib/build.gradle.kts +++ b/jablib/build.gradle.kts @@ -166,7 +166,6 @@ dependencies { implementation("dev.langchain4j:langchain4j-open-ai") implementation("dev.langchain4j:langchain4j-mistral-ai") implementation("dev.langchain4j:langchain4j-google-ai-gemini") - implementation("dev.langchain4j:langchain4j-hugging-face") implementation("dev.langchain4j:langchain4j-http-client") implementation("dev.langchain4j:langchain4j-http-client-jdk") diff --git a/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java index f809b8f7369..af9df9795e2 100644 --- a/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java +++ b/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java @@ -18,7 +18,6 @@ import dev.langchain4j.model.chat.ChatModel; import dev.langchain4j.model.chat.response.ChatResponse; import dev.langchain4j.model.googleai.GoogleAiGeminiChatModel; -import dev.langchain4j.model.huggingface.HuggingFaceChatModel; import dev.langchain4j.model.mistralai.MistralAiChatModel; /** @@ -60,7 +59,9 @@ private void rebuild() { } switch (aiPreferences.getAiProvider()) { - case OPEN_AI -> + // Hugging Face uses OpenAI API. + case OPEN_AI, + HUGGING_FACE -> langchainChatModel = Optional.of(new JvmOpenAiChatLanguageModel(aiPreferences, httpClient)); case GPT4ALL -> @@ -87,16 +88,6 @@ private void rebuild() { .logRequestsAndResponses(true) .build() ); - - case HUGGING_FACE -> // NOTE: {@link HuggingFaceChatModel} doesn't support API base url. - langchainChatModel = Optional.of(HuggingFaceChatModel - .builder() - .accessToken(apiKey) - .modelId(aiPreferences.getSelectedChatModel()) - .temperature(aiPreferences.getTemperature()) - .timeout(Duration.ofMinutes(2)) - .build() - ); } } diff --git a/jablib/src/main/java/org/jabref/model/ai/AiProvider.java b/jablib/src/main/java/org/jabref/model/ai/AiProvider.java index cd37d85d396..64079d4f2b0 100644 --- a/jablib/src/main/java/org/jabref/model/ai/AiProvider.java +++ b/jablib/src/main/java/org/jabref/model/ai/AiProvider.java @@ -6,7 +6,7 @@ public enum AiProvider implements Serializable { OPEN_AI("OpenAI (or API compatible)", "https://api.openai.com/v1", "https://openai.com/policies/privacy-policy/"), MISTRAL_AI("Mistral AI", "https://api.mistral.ai/v1", "https://mistral.ai/terms/#privacy-policy"), GEMINI("Gemini", "https://generativelanguage.googleapis.com/v1beta/", "https://ai.google.dev/gemini-api/terms"), - HUGGING_FACE("Hugging Face", "https://huggingface.co/api", "https://huggingface.co/privacy"), + HUGGING_FACE("Hugging Face", "https://router.huggingface.co/v1", "https://huggingface.co/privacy"), GPT4ALL("GPT4All", "http://localhost:4891/v1", "https://www.nomic.ai/gpt4all/legal/privacy-policy"); private final String label;