Skip to content

Commit d748049

Browse files
authored
feat: added tracking of minimal stuff in testset generation (#509)
1 parent 8566a33 commit d748049

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

src/ragas/_analytics.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ class EvaluationEvent(BaseEvent):
8989
num_rows: int
9090

9191

92+
class TesetGenerationEvent(BaseEvent):
93+
evolutions: t.Dict[str, float]
94+
num_rows: int
95+
96+
9297
@silent
9398
def track(event_properties: BaseEvent):
9499
if do_not_track():

src/ragas/testset/generator.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from langchain_openai.embeddings import OpenAIEmbeddings
1010
from llama_index.readers.schema import Document as LlamaindexDocument
1111

12+
from ragas._analytics import TesetGenerationEvent, track
1213
from ragas.embeddings import BaseRagasEmbeddings
1314
from ragas.executor import Executor
1415
from ragas.llms import BaseRagasLLM, LangchainLLMWrapper
@@ -143,4 +144,15 @@ def generate(
143144
test_data_rows = exec.results()
144145
except ValueError as e:
145146
raise e
146-
return TestDataset(test_data=test_data_rows)
147+
test_dataset = TestDataset(test_data=test_data_rows)
148+
track(
149+
TesetGenerationEvent(
150+
event_type="testset_generation",
151+
evolutions={
152+
k.__class__.__name__.lower(): v for k, v in distributions.items()
153+
},
154+
num_rows=len(test_dataset.test_data),
155+
)
156+
)
157+
158+
return test_dataset

tests/unit/test_analytics.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,31 @@ def test_load_userid_from_json_file(tmp_path, monkeypatch):
8787
get_userid.cache_clear()
8888

8989
assert get_userid() == "test-userid"
90+
91+
92+
def test_testset_generation_tracking(monkeypatch):
93+
94+
import ragas._analytics as analyticsmodule
95+
from ragas._analytics import TesetGenerationEvent, track
96+
from ragas.testset.evolutions import multi_context, reasoning, simple
97+
98+
distributions = {simple: 0.5, multi_context: 0.3, reasoning: 0.2}
99+
100+
testset_event_payload = TesetGenerationEvent(
101+
event_type="testset_generation",
102+
evolutions={k.__class__.__name__.lower(): v for k, v in distributions.items()},
103+
num_rows=10,
104+
)
105+
106+
assert dict(testset_event_payload)["evolutions"] == {
107+
"simpleevolution": 0.5,
108+
"multicontextevolution": 0.3,
109+
"reasoningevolution": 0.2,
110+
}
111+
112+
# just in the case you actually want to check if tracking is working in the
113+
# dashboard
114+
if False:
115+
monkeypatch.setattr(analyticsmodule, "do_not_track", lambda: False)
116+
monkeypatch.setattr(analyticsmodule, "_usage_event_debugging", lambda: False)
117+
track(testset_event_payload)

0 commit comments

Comments
 (0)