updated ollama to use defined base URL for model calls

This commit is contained in:
noobydp 2024-10-24 16:49:11 +08:00
parent 94fa108142
commit 8ce82b5a1c
4 changed files with 9 additions and 5 deletions

2
.gitignore vendored
View File

@ -12,7 +12,7 @@ dist-ssr
*.local *.local
.vscode/* .vscode/*
!.vscode/launch.json .vscode/launch.json
!.vscode/extensions.json !.vscode/extensions.json
.idea .idea
.DS_Store .DS_Store

View File

@ -30,6 +30,8 @@ export function getBaseURL(cloudflareEnv: Env, provider: string) {
switch (provider) { switch (provider) {
case 'OpenAILike': case 'OpenAILike':
return env.OPENAI_LIKE_API_BASE_URL || cloudflareEnv.OPENAI_LIKE_API_BASE_URL; return env.OPENAI_LIKE_API_BASE_URL || cloudflareEnv.OPENAI_LIKE_API_BASE_URL;
case 'Ollama':
return env.OLLAMA_API_BASE_URL || cloudflareEnv.OLLAMA_API_BASE_URL;
default: default:
return ""; return "";
} }

View File

@ -47,8 +47,10 @@ export function getGroqModel(apiKey: string, model: string) {
return openai(model); return openai(model);
} }
export function getOllamaModel(model: string) { export function getOllamaModel(baseURL: string, model: string) {
return ollama(model); let Ollama = ollama(model);
Ollama.config.baseURL = `${baseURL}/api`;
return Ollama;
} }
export function getOpenRouterModel(apiKey: string, model: string) { export function getOpenRouterModel(apiKey: string, model: string) {
@ -77,6 +79,6 @@ export function getModel(provider: string, model: string, env: Env) {
case 'OpenAILike': case 'OpenAILike':
return getOpenAILikeModel(baseURL,apiKey, model); return getOpenAILikeModel(baseURL,apiKey, model);
default: default:
return getOllamaModel(model); return getOllamaModel(baseURL, model);
} }
} }

View File

@ -38,7 +38,7 @@ async function getOllamaModels(): Promise<ModelInfo[]> {
try { try {
const base_url =import.meta.env.OLLAMA_API_BASE_URL || "http://localhost:11434"; const base_url =import.meta.env.OLLAMA_API_BASE_URL || "http://localhost:11434";
const url = new URL(base_url).toString(); const url = new URL(base_url).toString();
const response = await fetch(`${url}/api/tags`); const response = await fetch(`${url}api/tags`);
const data = await response.json(); const data = await response.json();
return data.models.map((model: any) => ({ return data.models.map((model: any) => ({