Implementation:Explodinggradients Ragas RagasTracer Callbacks
| Knowledge Sources | |
|---|---|
| Domains | Tracing, Callbacks |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Callback and tracing system for Ragas evaluations built on LangChain's callback infrastructure, enabling hierarchical trace collection.
Description
This module provides RagasTracer (a LangChain BaseCallbackHandler) that traces chain execution, recording parent-child relationships and run metadata. ChainRun and MetricTrace models store trace data. The new_group function creates callback manager groups for evaluation chains. parse_run_traces converts hierarchical traces into flat metric trace lists.
Usage
Use RagasTracer as a callback handler when running evaluations to collect execution traces for debugging or observability.
Code Reference
Source Location
- Repository: Explodinggradients_Ragas
- File: src/ragas/callbacks.py
- Lines: 19-173
Signature
def new_group(
name: str,
inputs: Dict[str, Any],
callbacks: Callbacks,
tags: Optional[List[str]] = None,
metadata: Optional[Dict[str, Any]] = None,
) -> Tuple[CallbackManagerForChainRun, CallbackManagerForChainGroup]:
...
@dataclass
class RagasTracer(BaseCallbackHandler):
traces: Dict[str, ChainRun] = field(default_factory=dict)
def on_chain_start(self, serialized, inputs, *, run_id, parent_run_id=None, tags=None, metadata=None, **kwargs):
...
def on_chain_end(self, outputs, *, run_id, **kwargs):
...
def to_jsons(self) -> str:
...
def parse_run_traces(traces: Dict[str, ChainRun], parent_run_id: Optional[str] = None) -> List[Dict[str, Any]]:
...
Import
from ragas.callbacks import RagasTracer, new_group, parse_run_traces
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| name | str | Yes | Name for the evaluation chain group |
| inputs | Dict[str, Any] | Yes | Initial inputs for the chain |
| callbacks | Callbacks | Yes | LangChain callback configuration |
Outputs
| Name | Type | Description |
|---|---|---|
| new_group returns | Tuple[CallbackManagerForChainRun, CallbackManagerForChainGroup] | Callback managers for the chain |
| to_jsons returns | str | JSON-serialized traces |
| parse_run_traces returns | List[Dict[str, Any]] | Flat list of metric traces |
Usage Examples
from ragas.callbacks import RagasTracer
# Create tracer and use it during evaluation
tracer = RagasTracer()
# Pass tracer as a callback to evaluation functions
# After evaluation, inspect traces:
print(tracer.to_jsons())