Skip to content

Commit cff1f13

Browse files
committed
fix score sampling issue
1 parent 06757cc commit cff1f13

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

langfuse/_client/client.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1348,7 +1348,15 @@ def create_score(
13481348
}
13491349

13501350
if self._resources is not None:
1351-
self._resources.add_score_task(event)
1351+
# Force the score to be in sample if it was for a legacy trace ID, i.e. non-32 hexchar
1352+
force_sample = (
1353+
not self._is_valid_trace_id(trace_id) if trace_id else True
1354+
)
1355+
1356+
self._resources.add_score_task(
1357+
event,
1358+
force_sample=force_sample,
1359+
)
13521360

13531361
except Exception as e:
13541362
langfuse_logger.exception(

langfuse/_client/resource_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,11 @@ def _initialize_instance(
258258
def reset(cls):
259259
cls._instances.clear()
260260

261-
def add_score_task(self, event: dict):
261+
def add_score_task(self, event: dict, *, force_sample: bool = False):
262262
try:
263263
# Sample scores with the same sampler that is used for tracing
264264
tracer_provider = cast(TracerProvider, otel_trace_api.get_tracer_provider())
265-
should_sample = (
265+
should_sample = force_sample or (
266266
(
267267
tracer_provider.sampler.should_sample(
268268
parent_context=None,

0 commit comments

Comments
 (0)