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}` );