55
66import numpy as np
77from datasets import Dataset , concatenate_datasets
8- from langchain_core .language_models import BaseLanguageModel as LangchainLLM
98from langchain_core .embeddings import Embeddings as LangchainEmbeddings
9+ from langchain_core .language_models import BaseLanguageModel as LangchainLLM
1010
1111from ragas ._analytics import EvaluationEvent , track
1212from ragas .callbacks import new_group
1313from ragas .embeddings .base import BaseRagasEmbeddings , LangchainEmbeddingsWrapper
14+ from ragas .exceptions import ExceptionInRunner
1415from ragas .executor import Executor
1516from ragas .llms .base import BaseRagasLLM , LangchainLLMWrapper
17+ from ragas .metrics ._answer_correctness import AnswerCorrectness
1618from ragas .metrics .base import Metric , MetricWithEmbeddings , MetricWithLLM
1719from ragas .metrics .critique import AspectCritique
1820from ragas .run_config import RunConfig
19- from ragas .exceptions import ExceptionInRunner
2021
2122# from ragas.metrics.critique import AspectCritique
2223from ragas .validation import (
@@ -158,6 +159,7 @@ def evaluate(
158159 binary_metrics = []
159160 llm_changed : t .List [int ] = []
160161 embeddings_changed : t .List [int ] = []
162+ answer_correctness_is_set = - 1
161163 for i , metric in enumerate (metrics ):
162164 if isinstance (metric , AspectCritique ):
163165 binary_metrics .append (metric .name )
@@ -169,6 +171,9 @@ def evaluate(
169171 if metric .embeddings is None :
170172 metric .embeddings = embeddings
171173 embeddings_changed .append (i )
174+ if isinstance (metric , AnswerCorrectness ):
175+ if metric .answer_similarity is None :
176+ answer_correctness_is_set = i
172177
173178 # initialize all the models in the metrics
174179 [m .init (run_config ) for m in metrics ]
@@ -237,6 +242,10 @@ def evaluate(
237242 t .cast (MetricWithLLM , metrics [i ]).llm = None
238243 for i in embeddings_changed :
239244 t .cast (MetricWithEmbeddings , metrics [i ]).embeddings = None
245+ if answer_correctness_is_set != - 1 :
246+ t .cast (
247+ AnswerCorrectness , metrics [answer_correctness_is_set ]
248+ ).answer_similarity = None
240249
241250 # log the evaluation event
242251 metrics_names = [m .name for m in metrics ]
0 commit comments