Skip to content

Commit 8138c12

Browse files
committed
[LEADS-504] Simplify Ragas context precision metric names
1 parent 807df32 commit 8138c12

8 files changed

Lines changed: 29 additions & 31 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@ uv run lightspeed-eval --system-config <AGENTS_CONFIG.yaml> --eval-data <PROPOSA
217217
- Context Evaluation
218218
- [`context_recall`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_recall/)
219219
- [`context_relevance`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/nvidia_metrics/#context-relevance)
220-
- [`context_precision_without_reference`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/#context-precision-without-reference)
221-
- [`context_precision_with_reference`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/#context-precision-with-reference)
220+
- [`context_utilization`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/#context-precision-without-reference) (context precision without reference)
221+
- [`context_precision`](https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/#context-precision-with-reference) (context precision with reference)
222222
- **Custom**
223223
- Response Evaluation
224224
- [`answer_correctness`](src/lightspeed_evaluation/core/metrics/custom/custom.py)

config/evaluation_data.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
turn_metrics:
2121
- ragas:faithfulness
2222
- ragas:response_relevancy
23-
- ragas:context_precision_without_reference
23+
- ragas:context_utilization
2424
turn_metrics_metadata:
2525
ragas:faithfulness:
2626
threshold: 0.99
@@ -42,7 +42,7 @@
4242
turn_metrics:
4343
- ragas:context_recall
4444
- ragas:context_relevance
45-
- ragas:context_precision_with_reference
45+
- ragas:context_precision
4646

4747
- conversation_group_id: conv_group_3
4848
description: conversation group description

config/system.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ agents:
108108
quality_score:
109109
metrics:
110110
- "ragas:faithfulness"
111-
- "ragas:context_precision_with_reference"
111+
- "ragas:context_precision"
112112
- "custom:tool_eval"
113113
- "custom:answer_correctness"
114114
default: true # If true, all metrics in this list get default: true
@@ -133,11 +133,11 @@ metrics_metadata:
133133
threshold: 0.8
134134
description: "Did we fetch every fact the answer needs?"
135135

136-
"ragas:context_precision_with_reference":
136+
"ragas:context_precision":
137137
threshold: 0.7
138138
description: "How precise the retrieved context is (with reference)"
139139

140-
"ragas:context_precision_without_reference":
140+
"ragas:context_utilization":
141141
threshold: 0.7
142142
description: "How precise the retrieved context is (without reference)"
143143

docs/EVALUATION_GUIDE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -687,8 +687,8 @@ What are you evaluating?
687687
│ ├─ Context / Retrieval Quality?
688688
│ │ ├─ Found everything needed? → context_recall
689689
│ │ ├─ Is retrieved context relevant? → context_relevance
690-
│ │ ├─ Precision (have expected answer)? → context_precision_with_reference
691-
│ │ └─ Precision (no expected answer)? → context_precision_without_reference
690+
│ │ ├─ Precision (have expected answer)? → context_precision
691+
│ │ └─ Precision (no expected answer)? → context_utilization
692692
│ │
693693
│ ├─ Tool Calls & AI Behavior?
694694
│ │ ├─ Right intent? → intent_eval
@@ -1401,7 +1401,7 @@ The Quality Score aggregates selected sub-metrics into a single number that repr
14011401
quality_score:
14021402
metrics:
14031403
- "ragas:faithfulness"
1404-
- "ragas:context_precision_with_reference"
1404+
- "ragas:context_precision"
14051405
- "custom:tool_eval"
14061406
default: true
14071407
```
@@ -1985,8 +1985,8 @@ lightspeed-eval --eval-data config/eval_batch2.yaml
19851985
| **ragas:faithfulness** | 0-1 | No made-up information | 0.8 | response, contexts |
19861986
| **ragas:context_recall** | 0-1 | Found all needed info | 0.8 | contexts, expected_response |
19871987
| **ragas:context_relevance** | 0-1 | Retrieved info is relevant | 0.7 | query, contexts |
1988-
| **ragas:context_precision_without_reference** | 0-1 | Retrieved info is useful | 0.7 | query, contexts, response |
1989-
| **ragas:context_precision_with_reference** | 0-1 | Retrieved info is useful (vs reference) | 0.7 | query, contexts, response, expected_response |
1988+
| **ragas:context_utilization** | 0-1 | Retrieved info is useful | 0.7 | query, contexts, response |
1989+
| **ragas:context_precision** | 0-1 | Retrieved info is useful (vs reference) | 0.7 | query, contexts, response, expected_response |
19901990
| **custom:answer_correctness** | 0-1 | Matches expected answer | 0.75 | query, response, expected_response |
19911991
| **custom:intent_eval** | 0/1 | Has right intent | 1 | query, response, expected_intent |
19921992
| **custom:tool_eval** | 0/1 | Called correct tools with expected results | 1 | expected_tool_calls, tool_calls |

examples/02_metrics/context_quality/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ uv run lightspeed-eval \
2020
|-----------------------------------------------|---------------------|---------------------------------------------------------------------------------------|--------------------------------------------|-----------------------------|
2121
| `ragas:context_recall` | Context Recall | Measures how well retrieved context covers the expected answer | query, response, contexts, expected_response | query, expected_response |
2222
| `ragas:context_relevance` | Context Relevance | Evaluates relevance of retrieved context to the query | query, response, contexts | query |
23-
| `ragas:context_precision_without_reference` | Context Utilization | Assesses context ranking quality without using reference answer | query, response, contexts | query |
24-
| `ragas:context_precision_with_reference` | Context Precision | Assesses context ranking quality using expected answer | query, response, contexts, expected_response | query, expected_response |
23+
| `ragas:context_utilization` | Context Utilization | Assesses context ranking quality without using reference answer | query, response, contexts | query |
24+
| `ragas:context_precision` | Context Precision | Assesses context ranking quality using expected answer | query, response, contexts, expected_response | query, expected_response |
2525

2626
**Note:** In live mode, `response` and `contexts` are fetched from live API; only `query` and expected fields go in YAML.
2727

examples/02_metrics/context_quality/system.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ metrics_metadata:
3131
threshold: 0.7
3232
description: Measures relevance of retrieved context to the query
3333
default: true
34-
ragas:context_precision_without_reference: # ContextUtilization
34+
ragas:context_utilization: # ContextUtilization
3535
threshold: 0.7
3636
description: Evaluates precision of context ranking (no reference needed)
3737
default: true
38-
ragas:context_precision_with_reference: # ContextPrecision
38+
ragas:context_precision: # ContextPrecision
3939
threshold: 0.7
4040
description: Evaluates precision of context using expected answer
4141
default: true

src/lightspeed_evaluation/core/metrics/ragas.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,8 @@ def __init__(self, llm_manager: LLMManager, embedding_manager: EmbeddingManager)
8888
# Context/Retrieval evaluation metrics
8989
"context_recall": self._evaluate_context_recall,
9090
"context_relevance": self._evaluate_context_relevance,
91-
"context_precision_with_reference": self._evaluate_context_precision_with_reference,
92-
"context_precision_without_reference": (
93-
self._evaluate_context_precision_without_reference
94-
),
91+
"context_precision": self._evaluate_context_precision,
92+
"context_utilization": self._evaluate_context_utilization,
9593
}
9694

9795
@property
@@ -220,16 +218,16 @@ def _evaluate_faithfulness(
220218
score = _clamp_score(float(result.value))
221219
return score, f"Ragas faithfulness: {score:.2f}"
222220

223-
def _evaluate_context_precision_without_reference(
221+
def _evaluate_context_utilization(
224222
self,
225223
_conv_data: Any,
226224
_turn_idx: Optional[int],
227225
turn_data: Optional[TurnData],
228226
is_conversation: bool,
229227
) -> tuple[Optional[float], str]:
230-
"""Evaluate context precision without reference using Ragas 0.4+ score()."""
228+
"""Evaluate context utilization using Ragas 0.4+ ContextUtilization."""
231229
if is_conversation:
232-
return None, "Context precision without reference is a turn-level metric"
230+
return None, "Context utilization is a turn-level metric"
233231

234232
query, response, contexts = self._extract_turn_data(turn_data)
235233

@@ -242,21 +240,21 @@ def _evaluate_context_precision_without_reference(
242240
)
243241

244242
score = _clamp_score(float(result.value))
245-
return score, f"Ragas context precision without reference: {score:.2f}"
243+
return score, f"Ragas context utilization: {score:.2f}"
246244

247-
def _evaluate_context_precision_with_reference(
245+
def _evaluate_context_precision(
248246
self,
249247
_conv_data: Any,
250248
_turn_idx: Optional[int],
251249
turn_data: Optional[TurnData],
252250
is_conversation: bool,
253251
) -> tuple[Optional[float], str]:
254-
"""Evaluate context precision with reference using Ragas 0.4+ score()."""
252+
"""Evaluate context precision using Ragas 0.4+ ContextPrecision."""
255253
if is_conversation:
256-
return None, "Context precision with reference is a turn-level metric"
254+
return None, "Context precision is a turn-level metric"
257255

258256
if turn_data is None:
259-
return None, "TurnData is required for context precision with reference"
257+
return None, "TurnData is required for context precision"
260258

261259
query, _, contexts = self._extract_turn_data(turn_data)
262260

@@ -269,7 +267,7 @@ def _evaluate_context_precision_with_reference(
269267
)
270268

271269
score = _clamp_score(float(result.value))
272-
return score, f"Ragas context precision with reference: {score:.2f}"
270+
return score, f"Ragas context precision: {score:.2f}"
273271

274272
def _evaluate_context_recall(
275273
self,

src/lightspeed_evaluation/core/system/validator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
"required_fields": ["response", "contexts"],
3333
"description": "requires 'response' and 'contexts' fields",
3434
},
35-
"ragas:context_precision_with_reference": {
35+
"ragas:context_precision": {
3636
"required_fields": ["response", "contexts", "expected_response"],
3737
"description": "requires 'response', 'contexts', and 'expected_response' fields",
3838
},
39-
"ragas:context_precision_without_reference": {
39+
"ragas:context_utilization": {
4040
"required_fields": ["response", "contexts"],
4141
"description": "requires 'response' and 'contexts' fields",
4242
},

0 commit comments

Comments
 (0)