|
8 | 8 | from pydantic import BaseModel |
9 | 9 |
|
10 | 10 | from ragas.dataset_schema import SingleTurnSample |
11 | | -from ragas.metrics._string import NonLLMStringSimilarity |
| 11 | +from ragas.metrics._string import DistanceMeasure, NonLLMStringSimilarity |
12 | 12 | from ragas.metrics.base import ( |
13 | 13 | MetricOutputType, |
14 | 14 | MetricType, |
@@ -210,19 +210,23 @@ class NonLLMContextRecall(SingleTurnMetric): |
210 | 210 | } |
211 | 211 | ) |
212 | 212 | output_type: MetricOutputType = MetricOutputType.CONTINUOUS |
213 | | - distance_measure: SingleTurnMetric = field( |
| 213 | + _distance_measure: SingleTurnMetric = field( |
214 | 214 | default_factory=lambda: NonLLMStringSimilarity() |
215 | 215 | ) |
216 | 216 | threshold: float = 0.5 |
217 | 217 |
|
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 | | - |
224 | 218 | def init(self, run_config: RunConfig) -> None: ... |
225 | 219 |
|
| 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 | + |
226 | 230 | async def _single_turn_ascore( |
227 | 231 | self, sample: SingleTurnSample, callbacks: Callbacks |
228 | 232 | ) -> float: |
|
0 commit comments