Skip to content

Commit 9b18976

Browse files
author
Auto-Academic-Paper Bot
committed
v1.0.3: Ollama BYOK support & Custom Provider fix
1 parent 66668f0 commit 9b18976

File tree

5 files changed

+22
-5
lines changed

5 files changed

+22
-5
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,6 @@ attached_assets/
2121

2222

2323

24+
25+
2426
devdocs/

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.3] - 2025-12-19
9+
10+
### Added
11+
- **Ollama BYOK Support**
12+
- Added ability to configure a custom **Base URL** for the Ollama provider.
13+
- Users can now connect to remote Ollama servers (e.g., local network GPU box) instead of being locked to `localhost`.
14+
- Renamed "Ollama (Local)" to "Ollama" in the UI.
15+
16+
### Fixed
17+
- **Custom Provider Crash**
18+
- Fixed a critical bug where selecting the "Custom" provider would crash the backend.
19+
- Wired "Custom" to the standard OpenAI-compatible adapter.
20+
- Renamed UI label to **"Custom (OpenAI Compatible)"** for clarity.
21+
822
## [1.0.2] - 2025-12-18
923

1024
### Added

client/src/pages/ConfigPage.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ const providers = [
1818
{ value: "anthropic", label: "Anthropic" },
1919
{ value: "gemini", label: "Google Gemini" },
2020
{ value: "grok", label: "xAI (Grok)" },
21-
{ value: "ollama", label: "Ollama (Local)" },
22-
{ value: "custom", label: "Custom / Other" },
21+
{ value: "ollama", label: "Ollama" },
22+
{ value: "custom", label: "Custom (OpenAI Compatible)" },
2323
];
2424

2525
const getPlaceholder = (provider: string) => {
@@ -214,13 +214,13 @@ function ProviderSection({ title, description, role, isExpanded, onToggle, showW
214214
/>
215215
</div>
216216

217-
{providerConfig.provider === "custom" && (
217+
{(providerConfig.provider === "custom" || providerConfig.provider === "ollama") && (
218218
<div className="space-y-3 pt-2">
219219
<Label className="text-lg font-medium text-gray-700">Base URL</Label>
220220
<Input
221221
value={providerConfig.baseURL || ""}
222222
onChange={(e) => updateProviderConfig(role, { baseURL: e.target.value })}
223-
placeholder="https://api.example.com/v1"
223+
placeholder={providerConfig.provider === "ollama" ? "http://localhost:11434/v1" : "https://api.example.com/v1"}
224224
className="h-12 text-lg px-4 font-mono"
225225
/>
226226
</div>

server/ai/adapters/ollama.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class OllamaProvider implements AIProvider {
1414
this.model = config.model;
1515
this.client = new OpenAI({
1616
apiKey: "ollama", // Ollama doesn't require an API key
17-
baseURL: "http://localhost:11434/v1",
17+
baseURL: config.baseURL || "http://localhost:11434/v1",
1818
});
1919
}
2020

server/ai/service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ class AIProviderFactory {
104104
static create(config: any): AIProvider {
105105
switch (config.provider) {
106106
case "openai": return new OpenAICompatibleProvider(config);
107+
case "custom": return new OpenAICompatibleProvider(config);
107108
case "poe": return new PoeProvider(config);
108109
case "grok": return new GrokProvider(config);
109110
case "openrouter": return new OpenRouterProvider(config);

0 commit comments

Comments
 (0)