Skip to content

Commit 7e4b9d3

Browse files
authored
chore(deps): Remove ollama package as dependancy (baserow#4963)
1 parent 9782eeb commit 7e4b9d3

4 files changed

Lines changed: 22 additions & 49 deletions

File tree

backend/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ dependencies = [
8686
"tzdata==2025.3",
8787
"sentry-sdk==2.52.0",
8888
"typing_extensions>=4.14.1",
89-
"ollama==0.6.1",
9089
"langchain==0.3.27",
9190
"langchain-openai==0.3.35",
9291
"openai==2.14.0",

backend/src/baserow/core/generative_ai/generative_ai_model_types.py

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def prompt(
330330
raise GenerativeAIPromptError(str(exc)) from exc
331331

332332

333-
class OllamaGenerativeAIModelType(GenerativeAIModelType):
333+
class OllamaGenerativeAIModelType(BaseOpenAIGenerativeAIModelType):
334334
type = "ollama"
335335

336336
def get_host(self, workspace=None, settings_override=None):
@@ -339,46 +339,28 @@ def get_host(self, workspace=None, settings_override=None):
339339
or settings.BASEROW_OLLAMA_HOST
340340
)
341341

342+
def get_api_key(self, workspace=None, settings_override=None):
343+
return "ollama"
344+
345+
def get_organization(self, workspace=None, settings_override=None):
346+
return None
347+
348+
def get_base_url(self, workspace=None, settings_override=None):
349+
host = self.get_host(workspace, settings_override)
350+
return f"{host}/v1"
351+
342352
def get_enabled_models(self, workspace=None, settings_override=None):
343353
workspace_models = self.get_workspace_setting(
344354
workspace, "models", settings_override
345355
)
346356
return workspace_models or settings.BASEROW_OLLAMA_MODELS
347357

348358
def is_enabled(self, workspace=None, settings_override=None):
349-
ollama_host = self.get_host(workspace, settings_override)
350-
return bool(ollama_host) and bool(
359+
host = self.get_host(workspace, settings_override)
360+
return bool(host) and bool(
351361
self.get_enabled_models(workspace, settings_override)
352362
)
353363

354-
def get_client(self, workspace=None, settings_override=None):
355-
from ollama import Client as OllamaClient
356-
357-
ollama_host = self.get_host(workspace, settings_override)
358-
return OllamaClient(host=ollama_host)
359-
360-
def prompt(
361-
self, model, prompt, workspace=None, temperature=None, settings_override=None
362-
):
363-
from ollama import RequestError as OllamaRequestError
364-
from ollama import ResponseError as OllamaResponseError
365-
366-
client = self.get_client(workspace, settings_override)
367-
options = {}
368-
if temperature:
369-
# Because some LLMs can have a temperature of 2, this is the maximum by
370-
# default. We're changing it to a maximum of 1 because Ollama only
371-
# accepts 1.
372-
options["temperature"] = min(temperature, 1)
373-
try:
374-
response = client.generate(
375-
model=model, prompt=prompt, stream=False, options=options
376-
)
377-
except (OllamaRequestError, OllamaResponseError) as exc:
378-
raise GenerativeAIPromptError(str(exc)) from exc
379-
380-
return response["response"]
381-
382364
def get_settings_serializer(self):
383365
from baserow.api.generative_ai.serializers import OllamaSettingsSerializer
384366

backend/uv.lock

Lines changed: 0 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "bug",
3+
"message": "Remove ollama dependency",
4+
"issue_origin": "github",
5+
"issue_number": 4962,
6+
"domain": "database",
7+
"bullet_points": [],
8+
"created_at": "2026-03-12"
9+
}

0 commit comments

Comments
 (0)