add additional options for ollama embeddings

This commit is contained in:
perf3ct
2025-03-08 22:23:50 +00:00
parent ea6f9c8e18
commit d3013c925e
8 changed files with 351 additions and 26 deletions

40
src/routes/api/ollama.ts Normal file
View File

@@ -0,0 +1,40 @@
import axios from 'axios';
import options from "../../services/options.js";
import log from "../../services/log.js";
import type { Request, Response } from "express";
/**
* List available models from Ollama
*/
async function listModels(req: Request, res: Response) {
try {
const { baseUrl } = req.body;
// Use provided base URL or default from options
const ollamaBaseUrl = baseUrl || await options.getOption('ollamaBaseUrl') || 'http://localhost:11434';
// Call Ollama API to get models
const response = await axios.get(`${ollamaBaseUrl}/api/tags`, {
headers: { 'Content-Type': 'application/json' },
timeout: 10000
});
// Return the models list
return res.send({
success: true,
models: response.data.models || []
});
} catch (error: any) {
log.error(`Error listing Ollama models: ${error.message || 'Unknown error'}`);
return res.status(500).send({
success: false,
message: error.message || 'Failed to list Ollama models',
error: error.toString()
});
}
}
export default {
listModels
};