From 7faee90ecc83cc2a1d79299c1580110314b06fe2 Mon Sep 17 00:00:00 2001 From: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:30:22 -0800 Subject: [PATCH] Add Auth Token to Ollama Embedding Client (#4766) * Enhance OllamaEmbedder to support authentication by adding an authorization token in headers for client initialization. * Add optional Auth Token input for Ollama embedding options * move info elements --------- Co-authored-by: Timothy Carambat --- .../OllamaOptions/index.jsx | 39 ++++++++++++++++--- server/utils/EmbeddingEngines/ollama/index.js | 6 ++- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx index 74c24f80..606ea464 100644 --- a/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx +++ b/frontend/src/components/EmbeddingSelection/OllamaOptions/index.jsx @@ -14,6 +14,8 @@ export default function OllamaEmbeddingOptions({ settings }) { showAdvancedControls, setShowAdvancedControls, handleAutoDetectClick, + authToken, + authTokenValue, } = useProviderEndpointAutoDiscovery({ provider: "ollama", initialBasePath: settings?.EmbeddingBasePath, @@ -48,13 +50,13 @@ export default function OllamaEmbeddingOptions({ settings }) { data-tooltip-id="max-embedding-chunk-length-tooltip" className="flex gap-x-1 items-center mb-3" > + - Maximum length of text chunks, in characters, for embedding. @@ -134,13 +136,13 @@ export default function OllamaEmbeddingOptions({ settings }) { data-tooltip-id="ollama-batch-size-tooltip" className="flex gap-x-1 items-center mb-3" > + - Number of text chunks to embed in parallel. Higher values improve speed but use more memory. Default is 1. @@ -163,6 +165,31 @@ export default function OllamaEmbeddingOptions({ settings }) { faster embedding.

+
+ + +

+ Enter a Bearer Auth Token for interacting with your + Ollama server. +
+ Used only if running Ollama behind an authentication + server. +

+
diff --git a/server/utils/EmbeddingEngines/ollama/index.js b/server/utils/EmbeddingEngines/ollama/index.js index 150998f5..de5db4f0 100644 --- a/server/utils/EmbeddingEngines/ollama/index.js +++ b/server/utils/EmbeddingEngines/ollama/index.js @@ -15,7 +15,11 @@ class OllamaEmbedder { ? Number(process.env.OLLAMA_EMBEDDING_BATCH_SIZE) : 1; this.embeddingMaxChunkLength = maximumChunkLength(); - this.client = new Ollama({ host: this.basePath }); + this.authToken = process.env.OLLAMA_AUTH_TOKEN; + const headers = this.authToken + ? { Authorization: `Bearer ${this.authToken}` } + : {}; + this.client = new Ollama({ host: this.basePath, headers }); this.log( `initialized with model ${this.model} at ${this.basePath}. Batch size: ${this.maxConcurrentChunks}, num_ctx: ${this.embeddingMaxChunkLength}` );