mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-08-12 04:50:39 +00:00
chore: standardize dataset not found error (#2962)
# What does this PR do? 1. Adds a broad schema for custom exception classes in the Llama Stack project 2. Creates a new `DatasetNotFoundError` class 3. Implements the new class where appropriate Relates to #2379 Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
This commit is contained in:
parent
25d3dfa30f
commit
272a3e9937
2 changed files with 16 additions and 2 deletions
|
@ -4,6 +4,11 @@
|
||||||
# This source code is licensed under the terms described in the LICENSE file in
|
# This source code is licensed under the terms described in the LICENSE file in
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
|
|
||||||
|
# Custom Llama Stack Exception classes should follow the following schema
|
||||||
|
# 1. All classes should inherit from an existing Built-In Exception class: https://docs.python.org/3/library/exceptions.html
|
||||||
|
# 2. All classes should have a custom error message with the goal of informing the Llama Stack user specifically
|
||||||
|
# 3. All classes should propogate the inherited __init__ function otherwise via 'super().__init__(message)'
|
||||||
|
|
||||||
|
|
||||||
class UnsupportedModelError(ValueError):
|
class UnsupportedModelError(ValueError):
|
||||||
"""raised when model is not present in the list of supported models"""
|
"""raised when model is not present in the list of supported models"""
|
||||||
|
@ -19,3 +24,11 @@ class ModelNotFoundError(ValueError):
|
||||||
def __init__(self, model_name: str) -> None:
|
def __init__(self, model_name: str) -> None:
|
||||||
message = f"Model '{model_name}' not found. Use client.models.list() to list available models."
|
message = f"Model '{model_name}' not found. Use client.models.list() to list available models."
|
||||||
super().__init__(message)
|
super().__init__(message)
|
||||||
|
|
||||||
|
|
||||||
|
class DatasetNotFoundError(ValueError):
|
||||||
|
"""raised when Llama Stack cannot find a referenced dataset"""
|
||||||
|
|
||||||
|
def __init__(self, dataset_name: str) -> None:
|
||||||
|
message = f"Dataset '{dataset_name}' not found. Use client.datasets.list() to list available datasets."
|
||||||
|
super().__init__(message)
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
import uuid
|
import uuid
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from llama_stack.apis.common.errors import DatasetNotFoundError
|
||||||
from llama_stack.apis.datasets import (
|
from llama_stack.apis.datasets import (
|
||||||
Dataset,
|
Dataset,
|
||||||
DatasetPurpose,
|
DatasetPurpose,
|
||||||
|
@ -35,7 +36,7 @@ class DatasetsRoutingTable(CommonRoutingTableImpl, Datasets):
|
||||||
async def get_dataset(self, dataset_id: str) -> Dataset:
|
async def get_dataset(self, dataset_id: str) -> Dataset:
|
||||||
dataset = await self.get_object_by_identifier("dataset", dataset_id)
|
dataset = await self.get_object_by_identifier("dataset", dataset_id)
|
||||||
if dataset is None:
|
if dataset is None:
|
||||||
raise ValueError(f"Dataset '{dataset_id}' not found")
|
raise DatasetNotFoundError(dataset_id)
|
||||||
return dataset
|
return dataset
|
||||||
|
|
||||||
async def register_dataset(
|
async def register_dataset(
|
||||||
|
@ -88,5 +89,5 @@ class DatasetsRoutingTable(CommonRoutingTableImpl, Datasets):
|
||||||
async def unregister_dataset(self, dataset_id: str) -> None:
|
async def unregister_dataset(self, dataset_id: str) -> None:
|
||||||
dataset = await self.get_dataset(dataset_id)
|
dataset = await self.get_dataset(dataset_id)
|
||||||
if dataset is None:
|
if dataset is None:
|
||||||
raise ValueError(f"Dataset {dataset_id} not found")
|
raise DatasetNotFoundError(dataset_id)
|
||||||
await self.unregister_object(dataset)
|
await self.unregister_object(dataset)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue