Skip to content

Commit e8f9232

Browse files
authored
fix: distance measure in non llm CR (#1787)
```python from ragas import evaluate from ragas.metrics import NonLLMContextRecall, NonLLMContextPrecisionWithReference from ragas import SingleTurnSample, EvaluationDataset from ragas.metrics._string import DistanceMeasure sample = SingleTurnSample( retrieved_contexts=["Paris is the capital of France."], reference_contexts=["Paris is the capital of France.", "The Eiffel Tower is one of the most famous landmarks in Paris."] ) dataset = EvaluationDataset(samples=[sample, sample, sample]) scorer = NonLLMContextRecall() result = evaluate( dataset, metrics=[scorer], ) scorer.distance_measure = DistanceMeasure.JARO_WINKLER result = evaluate( dataset, metrics=[scorer], )```
1 parent b550e55 commit e8f9232

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/ragas/metrics/_context_recall.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from pydantic import BaseModel
99

1010
from ragas.dataset_schema import SingleTurnSample
11-
from ragas.metrics._string import NonLLMStringSimilarity
11+
from ragas.metrics._string import DistanceMeasure, NonLLMStringSimilarity
1212
from ragas.metrics.base import (
1313
MetricOutputType,
1414
MetricType,
@@ -210,19 +210,23 @@ class NonLLMContextRecall(SingleTurnMetric):
210210
}
211211
)
212212
output_type: MetricOutputType = MetricOutputType.CONTINUOUS
213-
distance_measure: SingleTurnMetric = field(
213+
_distance_measure: SingleTurnMetric = field(
214214
default_factory=lambda: NonLLMStringSimilarity()
215215
)
216216
threshold: float = 0.5
217217

218-
def __post_init__(self):
219-
if isinstance(self.distance_measure, MetricWithLLM):
220-
raise ValueError(
221-
"distance_measure must not be an instance of MetricWithLLM for NonLLMContextPrecisionWithReference"
222-
)
223-
224218
def init(self, run_config: RunConfig) -> None: ...
225219

220+
@property
221+
def distance_measure(self) -> SingleTurnMetric:
222+
return self._distance_measure
223+
224+
@distance_measure.setter
225+
def distance_measure(self, distance_measure: DistanceMeasure) -> None:
226+
self._distance_measure = NonLLMStringSimilarity(
227+
distance_measure=distance_measure
228+
)
229+
226230
async def _single_turn_ascore(
227231
self, sample: SingleTurnSample, callbacks: Callbacks
228232
) -> float:

0 commit comments

Comments
 (0)