Skip to content

Commit a49acb7

Browse files
authored
Merge pull request #772 from parea-ai/PAI-1049-public-api-get-list-of-experiment-uui-ds-by-filtering-on-one-of-the-following-items-metadata-key-matches-value-or-experiment-run-name-contains-string
feat: list experiment uuids
2 parents e23f33f + 3ea6de6 commit a49acb7

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

parea/client.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
TestCaseCollection,
3232
TraceLog,
3333
UseDeployedPrompt,
34-
UseDeployedPromptResponse,
34+
UseDeployedPromptResponse, ListExperimentUUIDsFilters,
3535
)
3636
from parea.utils.trace_utils import get_current_trace_id, get_root_trace_id, logger_all_possible, logger_record_log, trace_data
3737

@@ -50,6 +50,7 @@
5050
CREATE_COLLECTION_ENDPOINT = "/collection"
5151
ADD_TEST_CASES_ENDPOINT = "/testcases"
5252
GET_TRACE_LOG_ENDPOINT = "/trace_log/{trace_id}"
53+
LIST_EXPERIMENTS_ENDPOINT = "/experiments"
5354

5455

5556
@define
@@ -346,6 +347,14 @@ async def aget_trace_log(self, trace_id: str) -> TraceLog:
346347
response = await self._client.request_async("GET", GET_TRACE_LOG_ENDPOINT.format(trace_id=trace_id))
347348
return structure_trace_log_from_api(response.json())
348349

350+
def list_experiment_uuids(self, filter_conditions: Optional[ListExperimentUUIDsFilters] = ListExperimentUUIDsFilters()) -> List[str]:
351+
response = self._client.request("POST", LIST_EXPERIMENTS_ENDPOINT, data=asdict(filter_conditions))
352+
return response.json()
353+
354+
async def alist_experiment_uuids(self, filter_conditions: Optional[ListExperimentUUIDsFilters] = ListExperimentUUIDsFilters()) -> List[str]:
355+
response = await self._client.request_async("POST", LIST_EXPERIMENTS_ENDPOINT, data=asdict(filter_conditions))
356+
return response.json()
357+
349358

350359
_initialized_parea_wrapper = False
351360

parea/cookbook/list_experiments.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import os
2+
3+
from dotenv import load_dotenv
4+
5+
from parea import Parea
6+
from parea.schemas import ListExperimentUUIDsFilters
7+
8+
load_dotenv()
9+
10+
p = Parea(api_key=os.getenv("PAREA_API_KEY"))
11+
12+
exp_uuids = p.list_experiment_uuids(ListExperimentUUIDsFilters())
13+
print(len(exp_uuids))
14+
print(exp_uuids)

parea/schemas/models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,11 @@ class CreateTestCaseCollection(CreateTestCases):
278278
@define
279279
class FinishExperimentRequestSchema:
280280
dataset_level_stats: Optional[List[EvaluationResult]] = field(factory=list)
281+
282+
283+
@define
284+
class ListExperimentUUIDsFilters:
285+
project_name: Optional[str] = None
286+
metadata_filter: Optional[Dict[str, Any]] = None
287+
experiment_name_filter: Optional[str] = None
288+
run_name_filter: Optional[str] = None

0 commit comments

Comments
 (0)