Skip to content

Commit 0d9bd8f

Browse files
committed
feat(client): add methods to langfuse client to fetch and delete dataset runs
1 parent 96b2bf8 commit 0d9bd8f

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

langfuse/_client/client.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@
7979
from langfuse._utils.parse_error import handle_fern_exception
8080
from langfuse._utils.prompt_cache import PromptCache
8181
from langfuse.api.resources.commons.errors.error import Error
82+
from langfuse.api.resources.commons.types import DatasetRunWithItems
83+
from langfuse.api.resources.datasets.types import (
84+
DeleteDatasetRunResponse,
85+
PaginatedDatasetRuns,
86+
)
8287
from langfuse.api.resources.ingestion.types.score_body import ScoreBody
8388
from langfuse.api.resources.prompts.types import (
8489
CreatePromptRequest_Chat,
@@ -2456,6 +2461,78 @@ def get_dataset(
24562461
handle_fern_exception(e)
24572462
raise e
24582463

2464+
def get_dataset_run(
2465+
self, dataset_name: str, *, run_name: str
2466+
) -> DatasetRunWithItems:
2467+
"""Fetch a dataset run by dataset name and run name.
2468+
2469+
Args:
2470+
dataset_name (str): The name of the dataset.
2471+
run_name (str): The name of the run.
2472+
2473+
Returns:
2474+
DatasetRunWithItems: The dataset run with its items.
2475+
"""
2476+
try:
2477+
return self.api.datasets.get_run(
2478+
dataset_name=self._url_encode(dataset_name),
2479+
run_name=self._url_encode(run_name),
2480+
request_options=None,
2481+
)
2482+
except Error as e:
2483+
handle_fern_exception(e)
2484+
raise e
2485+
2486+
def get_dataset_runs(
2487+
self,
2488+
dataset_name: str,
2489+
*,
2490+
page: Optional[int] = None,
2491+
limit: Optional[int] = None,
2492+
) -> PaginatedDatasetRuns:
2493+
"""Fetch all runs for a dataset.
2494+
2495+
Args:
2496+
dataset_name (str): The name of the dataset.
2497+
page (Optional[int]): Page number, starts at 1.
2498+
limit (Optional[int]): Limit of items per page.
2499+
2500+
Returns:
2501+
PaginatedDatasetRuns: Paginated list of dataset runs.
2502+
"""
2503+
try:
2504+
return self.api.datasets.get_runs(
2505+
dataset_name=self._url_encode(dataset_name),
2506+
page=page,
2507+
limit=limit,
2508+
request_options=None,
2509+
)
2510+
except Error as e:
2511+
handle_fern_exception(e)
2512+
raise e
2513+
2514+
def delete_dataset_run(
2515+
self, dataset_name: str, *, run_name: str
2516+
) -> DeleteDatasetRunResponse:
2517+
"""Delete a dataset run and all its run items. This action is irreversible.
2518+
2519+
Args:
2520+
dataset_name (str): The name of the dataset.
2521+
run_name (str): The name of the run.
2522+
2523+
Returns:
2524+
DeleteDatasetRunResponse: Confirmation of deletion.
2525+
"""
2526+
try:
2527+
return self.api.datasets.delete_run(
2528+
dataset_name=self._url_encode(dataset_name),
2529+
run_name=self._url_encode(run_name),
2530+
request_options=None,
2531+
)
2532+
except Error as e:
2533+
handle_fern_exception(e)
2534+
raise e
2535+
24592536
def run_experiment(
24602537
self,
24612538
*,

0 commit comments

Comments
 (0)