Remove GPT4All as AI-Provider#15439
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
Co-authored-by: Ruslan <ruslanpopov1512@gmail.com> Co-authored-by: ThiloteE <73715071+ThiloteE@users.noreply.github.com>
Co-authored-by: ThiloteE <73715071+ThiloteE@users.noreply.github.com>
Co-authored-by: ThiloteE <73715071+ThiloteE@users.noreply.github.com>
|
Will you fix JBang in a follow up PR? |
Review Summary by QodoRemove GPT4All as unmaintained AI provider
WalkthroughsDescription• Removes GPT4All AI provider due to unmaintained status • Eliminates all GPT4All-related properties and configuration • Removes GPT4All model implementation and related tests • Cleans up API key binding logic for remaining providers Diagramflowchart LR
A["GPT4All Provider"] -->|removed| B["AiProvider enum"]
C["Gpt4AllModel class"] -->|deleted| D["Model implementations"]
E["GPT4All properties"] -->|removed| F["AiPreferences & AiTabViewModel"]
G["GPT4All tests"] -->|removed| H["Test files"]
B -->|simplified| I["Remaining providers: OpenAI, Mistral, Gemini, HuggingFace"]
File Changes1. jablib/src/main/java/org/jabref/model/ai/AiProvider.java
|
Code Review by Qodo
|
|
I don't know how to fix Jbang tests( But I think I'll fix that problem with |
|
Current blocker: 2026-04-03 20:37:13 [JavaFX Application Thread] org.jabref.gui.JabRefGUI.start()
ERROR: Error during initialization: java.lang.IllegalArgumentException: No enum constant org.jabref.model.ai.AiProvider.GPT4ALL
at java.base/java.lang.Enum.valueOf(Enum.java:293)
at org.jabref.jablib/org.jabref.model.ai.AiProvider.valueOf(AiProvider.java:5)
at org.jabref.jablib/org.jabref.logic.preferences.JabRefCliPreferences.getAiPreferences(JabRefCliPreferences.java:1952)
at org.jabref/org.jabref.gui.JabRefGUI.initialize(JabRefGUI.java:232)
at org.jabref/org.jabref.gui.JabRefGUI.start(JabRefGUI.java:114)
at javafx.graphics@26/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$4(LauncherImpl.java:845
at javafx.graphics@26/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$0(PlatformImpl.java:449)
at javafx.graphics@26/com.sun.javafx.application.PlatformImpl.lambda$runLater$0(PlatformImpl.java:424)
at javafx.graphics@26/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at javafx.graphics@26/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@26/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:173)
at java.base/java.lang.Thread.run(Thread.java:1474)
Exception in Application start method
2026-04-03 20:37:15 [] org.jabref.gui.JabRefGUI.lambda$stop$1()
ERROR: Unable to close AI service: java.lang.NullPointerException: Cannot invoke "org.jabref.logic.ai.AiService.close()" because "org.jabref.gui.JabRefGUI.aiService" is null
at org.jabref/org.jabref.gui.JabRefGUI.lambda$stop$1(JabRefGUI.java:502)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPerTaskExecutor$ThreadBoundFuture.run(ThreadPerTaskExecutor.java:323)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:456)Edit: This was the error that triggered when I had GPT4All selected as provider while trying to run this PR. |
|
You need a preferences migration to replace GPT4All if it was in the preferences |
|
Na, just made a default to fallback to |
Tried to repoduce on my local machine, but had no success. Think we need to ask @koppor here. |
I think this is exactly what qodo was warning about. And I agree with Carl's approach, I would do the same |
…teE-2026-03-28-RemoveGPT4All # Conflicts: # jabgui/src/main/java/org/jabref/gui/preferences/ai/AiTab.java # jablib/src/main/java/org/jabref/logic/ai/AiDefaultPreferences.java
|
In private chat @koppor suggested Jbang issue might be a workflow related issue. Can be ignored in PR. |
* Removes GPT4All as AI provider from User Documentation * Follow up to JabRef/jabref#15439
|
I ran a JBang script and it worked without errors |
Related issues and pull requests
#11872
PR Description
Removes the AI-provider "GPT4All".
Reason: The project is unmaintained, there are no security updates and prior maintainers are unresponsive.
GPT4All had thousands of stars on GitHub, so maybe somebody will step up, fork and maintain it, but until then, I feel it would be irresponsible to promote it to our user-base.
After:

ToDO
Steps to test
Checklist
CHANGELOG.mdin a way that can be understood by the average user (if change is visible to the user)