Implementation:Explodinggradients Ragas RubricsScore Metric
| Field | Value |
|---|---|
| source | Repo |
| domains | Metrics, Evaluation |
| last_updated | 2026-02-10 |
Overview
RubricsScore evaluates submissions against domain-specific rubrics on a 1-5 discrete scale, supporting both single-turn and multi-turn interactions.
Description
The RubricsScore class uses an LLM to score submissions based on configurable rubric definitions. Two default rubric sets are provided: DEFAULT_REFERENCE_FREE_RUBRICS (evaluates against user input only) and DEFAULT_WITH_REFERENCE_RUBRICS (evaluates against a reference answer). The rubrics text is injected into the prompt instruction during construction. The class supports both single-turn and multi-turn evaluation modes. It inherits from MetricWithLLM, SingleTurnMetric, and MultiTurnMetric.
Key attributes:
- rubrics -- A dictionary mapping score descriptions (e.g.,
"score1_description"through"score5_description") to their criteria text. - single_turn_scoring_prompt / multi_turn_scoring_prompt -- Customizable prompts with rubrics injected.
- max_retries -- Maximum LLM retries (default
1).
Usage
All input columns are optional. The metric requires an LLM. Rubrics can be customized at construction time.
Code Reference
| Property | Value |
|---|---|
| Source Location | src/ragas/metrics/_domain_specific_rubrics.py L85-177
|
| Class Signature | class RubricsScore(MetricWithLLM, SingleTurnMetric, MultiTurnMetric)
|
| Import | from ragas.metrics import RubricsScore
|
I/O Contract
Inputs
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_input | str | Optional | The user query or input |
| response | str | Optional | The generated response |
| retrieved_contexts | List[str] | Optional | Retrieved context passages |
| reference | str | Optional | The reference answer |
| reference_contexts | List[str] | Optional | Reference context passages |
Outputs
| Output | Type | Description |
|---|---|---|
| score | int | Discrete score from 1 to 5 based on rubric evaluation |
Usage Examples
from ragas.metrics import RubricsScore
from ragas.metrics._domain_specific_rubrics import DEFAULT_WITH_REFERENCE_RUBRICS
from ragas.dataset_schema import SingleTurnSample
metric = RubricsScore(
name="quality_rubric",
rubrics=DEFAULT_WITH_REFERENCE_RUBRICS
)
# metric.llm = ... # Set your LLM
sample = SingleTurnSample(
user_input="Explain photosynthesis.",
response="Photosynthesis converts sunlight into chemical energy in plants.",
reference="Photosynthesis is the process by which plants convert light energy into chemical energy, producing glucose and oxygen from carbon dioxide and water."
)
# score = await metric.single_turn_ascore(sample)
Related Pages
- Explodinggradients_Ragas_InstanceRubrics_Metric -- Per-sample rubric evaluation (rubrics provided per instance)
- Explodinggradients_Ragas_SimpleCriteriaScore_Metric -- User-defined criteria with discrete scoring
- Explodinggradients_Ragas_AspectCritic_Metric -- Binary aspect-based evaluation