mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-08-07 11:08:20 +00:00
refactor(ollama): model availability check
Moved model availability check logic into a dedicated check_model_availability function. Eliminated redundant code by reusing the helper function in both embedding and non-embedding model registration. Signed-off-by: Sébastien Han <seb@redhat.com>
This commit is contained in:
parent
d0d568c5ba
commit
d9c460cb4b
1 changed files with 9 additions and 13 deletions
|
@ -352,24 +352,20 @@ class OllamaInferenceAdapter(Inference, ModelsProtocolPrivate):
|
||||||
return EmbeddingsResponse(embeddings=embeddings)
|
return EmbeddingsResponse(embeddings=embeddings)
|
||||||
|
|
||||||
async def register_model(self, model: Model) -> Model:
|
async def register_model(self, model: Model) -> Model:
|
||||||
# ollama does not have embedding models running. Check if the model is in list of available models.
|
async def check_model_availability(model_id: str):
|
||||||
if model.model_type == ModelType.embedding:
|
response = await self.client.ps()
|
||||||
response = await self.client.list()
|
|
||||||
available_models = [m["model"] for m in response["models"]]
|
available_models = [m["model"] for m in response["models"]]
|
||||||
if model.provider_resource_id not in available_models:
|
if model_id not in available_models:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"Model '{model.provider_resource_id}' is not available in Ollama. "
|
f"Model '{model_id}' is not available in Ollama. Available models: {', '.join(available_models)}"
|
||||||
f"Available models: {', '.join(available_models)}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if model.model_type == ModelType.embedding:
|
||||||
|
await check_model_availability(model.provider_resource_id)
|
||||||
return model
|
return model
|
||||||
|
|
||||||
model = await self.register_helper.register_model(model)
|
model = await self.register_helper.register_model(model)
|
||||||
models = await self.client.ps()
|
await check_model_availability(model.provider_resource_id)
|
||||||
available_models = [m["model"] for m in models["models"]]
|
|
||||||
if model.provider_resource_id not in available_models:
|
|
||||||
raise ValueError(
|
|
||||||
f"Model '{model.provider_resource_id}' is not available in Ollama. "
|
|
||||||
f"Available models: {', '.join(available_models)}"
|
|
||||||
)
|
|
||||||
|
|
||||||
return model
|
return model
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue