2222import ragas_experimental .typing as rt
2323
2424# %% ../../nbs/project/experiments.ipynb 4
25+ # Add this helper function similar to create_dataset_columns in core.ipynb
26+ async def create_experiment_columns (project_id , experiment_id , columns , create_experiment_column_func ):
27+ tasks = []
28+ for column in columns :
29+ tasks .append (create_experiment_column_func (
30+ project_id = project_id ,
31+ experiment_id = experiment_id ,
32+ id = create_nano_id (),
33+ name = column ["name" ],
34+ type = column ["type" ],
35+ settings = column ["settings" ]
36+ ))
37+ return await asyncio .gather (* tasks )
38+
39+ # %% ../../nbs/project/experiments.ipynb 5
2540@patch
2641def create_experiment (
2742 self : Project , name : str , model : t .Type [BaseModel ]
@@ -61,24 +76,8 @@ def create_experiment(
6176 ragas_api_client = self ._ragas_api_client ,
6277 )
6378
64- # Add this helper function similar to create_dataset_columns in core.ipynb
65- async def create_experiment_columns (project_id , experiment_id , columns , create_experiment_column_func ):
66- tasks = []
67- for column in columns :
68- tasks .append (create_experiment_column_func (
69- project_id = project_id ,
70- experiment_id = experiment_id ,
71- id = create_nano_id (),
72- name = column ["name" ],
73- type = column ["type" ],
74- settings = {
75- "max_length" : 255 ,
76- "is_required" : True ,
77- },
78- ))
79- return await asyncio .gather (* tasks )
8079
81- # %% ../../nbs/project/experiments.ipynb 8
80+ # %% ../../nbs/project/experiments.ipynb 9
8281@patch
8382def get_experiment_by_id (self : Project , experiment_id : str , model : t .Type [BaseModel ]) -> Experiment :
8483 """Get an existing experiment by ID."""
@@ -97,7 +96,7 @@ def get_experiment_by_id(self: Project, experiment_id: str, model: t.Type[BaseMo
9796 ragas_api_client = self ._ragas_api_client ,
9897 )
9998
100- # %% ../../nbs/project/experiments.ipynb 11
99+ # %% ../../nbs/project/experiments.ipynb 12
101100@patch
102101def get_experiment (self : Project , dataset_name : str , model ) -> Dataset :
103102 """Get an existing dataset by name."""
@@ -117,23 +116,23 @@ def get_experiment(self: Project, dataset_name: str, model) -> Dataset:
117116 ragas_api_client = self ._ragas_api_client ,
118117 )
119118
120- # %% ../../nbs/project/experiments.ipynb 14
119+ # %% ../../nbs/project/experiments.ipynb 15
121120@t .runtime_checkable
122121class ExperimentProtocol (t .Protocol ):
123122 async def __call__ (self , * args , ** kwargs ): ...
124123 async def run_async (self , name : str , dataset : Dataset ): ...
125124
126- # %% ../../nbs/project/experiments.ipynb 15
125+ # %% ../../nbs/project/experiments.ipynb 16
127126# this one we have to clean up
128127from langfuse .decorators import observe
129128
130- # %% ../../nbs/project/experiments.ipynb 16
129+ # %% ../../nbs/project/experiments.ipynb 17
131130from .naming import MemorableNames
132131
133- # %% ../../nbs/project/experiments.ipynb 17
132+ # %% ../../nbs/project/experiments.ipynb 18
134133memorable_names = MemorableNames ()
135134
136- # %% ../../nbs/project/experiments.ipynb 18
135+ # %% ../../nbs/project/experiments.ipynb 19
137136@patch
138137def experiment (
139138 self : Project , experiment_model , name_prefix : str = ""
@@ -212,7 +211,7 @@ async def run_async(dataset: Dataset, name: t.Optional[str] = None):
212211
213212 return decorator
214213
215- # %% ../../nbs/project/experiments.ipynb 22
214+ # %% ../../nbs/project/experiments.ipynb 23
216215@patch
217216def langfuse_experiment (
218217 self : Project , experiment_model , name_prefix : str = ""
0 commit comments