fix: refresh model list in get_ollama_url when model not found

This commit is contained in:
khaleefaworks 2026-07-23 16:46:27 +05:30
parent d0f7da4f45
commit 526c768a81

View file

@ -889,8 +889,8 @@ async def embed(
key = get_api_key(url_idx, url, (await Config.get('ollama.api_configs', {})))
prefix_id = api_config.get('prefix_id')
if prefix_id:
form_data.model = form_data.model.replace(f'{prefix_id}.', '')
if prefix_id and form_data.model.startswith(f'{prefix_id}.'):
form_data.model = form_data.model[len(f'{prefix_id}.'):]
return await send_request(
f'{url}/api/embed',
@ -943,8 +943,8 @@ async def embeddings(
key = get_api_key(url_idx, url, (await Config.get('ollama.api_configs', {})))
prefix_id = api_config.get('prefix_id')
if prefix_id:
form_data.model = form_data.model.replace(f'{prefix_id}.', '')
if prefix_id and form_data.model.startswith(f'{prefix_id}.'):
form_data.model = form_data.model[len(f'{prefix_id}.'):]
return await send_request(
f'{url}/api/embeddings',
@ -1001,8 +1001,8 @@ async def generate_completion(
)
prefix_id = api_config.get('prefix_id')
if prefix_id:
form_data.model = form_data.model.replace(f'{prefix_id}.', '')
if prefix_id and form_data.model.startswith(f'{prefix_id}.'):
form_data.model = form_data.model[len(f'{prefix_id}.'):]
return await send_request(
f'{url}/api/generate',
@ -1061,6 +1061,9 @@ async def get_ollama_url(request: Request, model: str, url_idx: int | None = Non
await validate_ollama_backend_idx(request, model, url_idx, user)
if url_idx is None:
models = request.app.state.OLLAMA_MODELS
if not models or model not in models:
await get_all_models(request, user=user)
models = request.app.state.OLLAMA_MODELS
if model not in models:
raise HTTPException(
status_code=400,
@ -1133,7 +1136,8 @@ async def generate_chat_completion(
prefix_id = api_config.get('prefix_id')
if prefix_id:
payload['model'] = payload['model'].replace(f'{prefix_id}.', '')
if payload['model'].startswith(f'{prefix_id}.'):
payload['model'] = payload['model'][len(f'{prefix_id}.'):]
return await send_request(
f'{url}/api/chat',
@ -1229,7 +1233,8 @@ async def generate_openai_completion(
prefix_id = api_config.get('prefix_id')
if prefix_id:
payload['model'] = payload['model'].replace(f'{prefix_id}.', '')
if payload['model'].startswith(f'{prefix_id}.'):
payload['model'] = payload['model'][len(f'{prefix_id}.'):]
return await send_request(
f'{url}/v1/completions',
@ -1338,7 +1343,8 @@ async def generate_openai_chat_completion(
prefix_id = api_config.get('prefix_id')
if prefix_id:
payload['model'] = payload['model'].replace(f'{prefix_id}.', '')
if payload['model'].startswith(f'{prefix_id}.'):
payload['model'] = payload['model'][len(f'{prefix_id}.'):]
return await send_request(
f'{url}/v1/chat/completions',
@ -1392,7 +1398,8 @@ async def generate_anthropic_messages(
prefix_id = api_config.get('prefix_id', None)
if prefix_id:
payload['model'] = payload['model'].replace(f'{prefix_id}.', '')
if payload['model'].startswith(f'{prefix_id}.'):
payload['model'] = payload['model'][len(f'{prefix_id}.'):]
return await send_request(
f'{url}/v1/messages',
@ -1452,7 +1459,8 @@ async def generate_responses(
prefix_id = api_config.get('prefix_id', None)
if prefix_id:
payload['model'] = payload['model'].replace(f'{prefix_id}.', '')
if payload['model'].startswith(f'{prefix_id}.'):
payload['model'] = payload['model'][len(f'{prefix_id}.'):]
return await send_request(
f'{url}/v1/responses',