From fb883869ec07e04acf96810beb46221fa1365b2a Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 13 Nov 2025 09:58:45 -0800 Subject: [PATCH] Pass endpoint URL to openai --- docs/configuration.md | 4 ++-- src/paperless_ai/client.py | 1 + src/paperless_ai/tests/test_client.py | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index fd1478521..b7e075266 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1842,13 +1842,13 @@ current backend. If not supplied, defaults to "gpt-3.5-turbo" for OpenAI and "ll #### [`PAPERLESS_AI_LLM_API_KEY=`](#PAPERLESS_AI_LLM_API_KEY) {#PAPERLESS_AI_LLM_API_KEY} -: The API key to use for the AI backend. This is required for the OpenAI backend only. +: The API key to use for the AI backend. This is required for the OpenAI backend (optional for others). Defaults to None. #### [`PAPERLESS_AI_LLM_ENDPOINT=`](#PAPERLESS_AI_LLM_ENDPOINT) {#PAPERLESS_AI_LLM_ENDPOINT} -: The endpoint / url to use for the AI backend. This is required for the Ollama backend only. +: The endpoint / url to use for the AI backend. This is required for the Ollama backend (optional for others). Defaults to None. diff --git a/src/paperless_ai/client.py b/src/paperless_ai/client.py index 5e6b9162e..57eedaa75 100644 --- a/src/paperless_ai/client.py +++ b/src/paperless_ai/client.py @@ -30,6 +30,7 @@ class AIClient: elif self.settings.llm_backend == "openai": return OpenAI( model=self.settings.llm_model or "gpt-3.5-turbo", + api_base=self.settings.llm_endpoint or None, api_key=self.settings.llm_api_key, ) else: diff --git a/src/paperless_ai/tests/test_client.py b/src/paperless_ai/tests/test_client.py index 62327c24a..47053ab20 100644 --- a/src/paperless_ai/tests/test_client.py +++ b/src/paperless_ai/tests/test_client.py @@ -47,11 +47,13 @@ def test_get_llm_openai(mock_ai_config, mock_openai_llm): mock_ai_config.llm_backend = "openai" mock_ai_config.llm_model = "test_model" mock_ai_config.llm_api_key = "test_api_key" + mock_ai_config.llm_endpoint = "http://test-url" client = AIClient() mock_openai_llm.assert_called_once_with( model="test_model", + api_base="http://test-url", api_key="test_api_key", ) assert client.llm == mock_openai_llm.return_value