Check ollama alive for embedder ()

This commit is contained in:
Timothy Carambat 2024-04-06 12:16:30 -07:00 committed by GitHub
parent 6f52a2b729
commit 1c11a47f93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -18,12 +18,28 @@ class OllamaEmbedder {
console.log(`\x1b[36m[${this.constructor.name}]\x1b[0m ${text}`, ...args); 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) { async embedTextInput(textInput) {
const result = await this.embedChunks([textInput]); const result = await this.embedChunks([textInput]);
return result?.[0] || []; return result?.[0] || [];
} }
async embedChunks(textChunks = []) { async embedChunks(textChunks = []) {
if (!(await this.#isAlive()))
throw new Error(
`Ollama service could not be reached. Is Ollama running?`
);
const embeddingRequests = []; const embeddingRequests = [];
this.log( this.log(
`Embedding ${textChunks.length} chunks of text with ${this.model}.` `Embedding ${textChunks.length} chunks of text with ${this.model}.`