From 1c11a47f93b230d11776514f851efb3d191f17c6 Mon Sep 17 00:00:00 2001
From: Timothy Carambat <rambat1010@gmail.com>
Date: Sat, 6 Apr 2024 12:16:30 -0700
Subject: [PATCH] Check ollama alive for embedder (#1057)

---
 server/utils/EmbeddingEngines/ollama/index.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/server/utils/EmbeddingEngines/ollama/index.js b/server/utils/EmbeddingEngines/ollama/index.js
index 1f77c36e8..f6b33376a 100644
--- a/server/utils/EmbeddingEngines/ollama/index.js
+++ b/server/utils/EmbeddingEngines/ollama/index.js
@@ -18,12 +18,28 @@ class OllamaEmbedder {
     console.log(`\x1b[36m[${this.constructor.name}]\x1b[0m ${text}`, ...args);
   }
 
+  async #isAlive() {
+    return await fetch(process.env.EMBEDDING_BASE_PATH, {
+      method: "HEAD",
+    })
+      .then((res) => res.ok)
+      .catch((e) => {
+        this.log(e.message);
+        return false;
+      });
+  }
+
   async embedTextInput(textInput) {
     const result = await this.embedChunks([textInput]);
     return result?.[0] || [];
   }
 
   async embedChunks(textChunks = []) {
+    if (!(await this.#isAlive()))
+      throw new Error(
+        `Ollama service could not be reached. Is Ollama running?`
+      );
+
     const embeddingRequests = [];
     this.log(
       `Embedding ${textChunks.length} chunks of text with ${this.model}.`
-- 
GitLab