Skip to content

Commit deded70

Browse files
authored
fix: raise ExceptionInRunner if executor faces any issues (#569)
1 parent e6be5bb commit deded70

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

src/ragas/testset/docstore.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from langchain_core.pydantic_v1 import Field
1616

1717
from ragas.embeddings.base import BaseRagasEmbeddings
18+
from ragas.exceptions import ExceptionInRunner
1819
from ragas.executor import Executor
1920
from ragas.run_config import RunConfig
2021
from ragas.testset.utils import rng
@@ -245,6 +246,9 @@ def add_nodes(
245246
result_idx += 1
246247

247248
results = executor.results()
249+
if results == []:
250+
raise ExceptionInRunner()
251+
248252
for i, n in enumerate(nodes):
249253
if i in nodes_to_embed.keys():
250254
n.embedding = results[nodes_to_embed[i]]

src/ragas/testset/evolutions.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,12 @@ async def _aevolve(
412412
)
413413

414414
# find a similar node and generate a question based on both
415-
similar_node = self.docstore.get_similar(current_nodes.root_node)[0]
415+
similar_node = self.docstore.get_similar(current_nodes.root_node)
416+
if similar_node == []:
417+
# retry
418+
current_nodes = self.se._get_more_adjacent_nodes(current_nodes)
419+
return await self.aretry_evolve(current_tries, current_nodes)
420+
416421
prompt = self.multi_context_question_prompt.format(
417422
question=simple_question,
418423
context1=current_nodes.root_node.page_content,

src/ragas/testset/extractor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def save(self, cache_dir: t.Optional[str] = None) -> None:
3939

4040

4141
@dataclass
42-
class keyphraseExtractor(Extractor):
42+
class KeyphraseExtractor(Extractor):
4343
keyphrase_extraction_prompt: Prompt = field(
4444
default_factory=lambda: keyphrase_extraction_prompt
4545
)

src/ragas/testset/generator.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
from ragas._analytics import TesetGenerationEvent, track
1414
from ragas.embeddings.base import BaseRagasEmbeddings, LangchainEmbeddingsWrapper
15+
from ragas.exceptions import ExceptionInRunner
1516
from ragas.executor import Executor
1617
from ragas.llms import BaseRagasLLM, LangchainLLMWrapper
1718
from ragas.run_config import RunConfig
@@ -25,7 +26,7 @@
2526
reasoning,
2627
simple,
2728
)
28-
from ragas.testset.extractor import keyphraseExtractor
29+
from ragas.testset.extractor import KeyphraseExtractor
2930
from ragas.testset.filters import EvolutionFilter, NodeFilter, QuestionFilter
3031
from ragas.utils import check_if_sum_is_close, is_nan
3132

@@ -83,7 +84,7 @@ def with_openai(
8384
embeddings_model = LangchainEmbeddingsWrapper(
8485
OpenAIEmbeddings(model=embeddings)
8586
)
86-
keyphrase_extractor = keyphraseExtractor(llm=generator_llm_model)
87+
keyphrase_extractor = KeyphraseExtractor(llm=generator_llm_model)
8788
if docstore is None:
8889
from langchain.text_splitter import TokenTextSplitter
8990

@@ -241,6 +242,9 @@ def generate(
241242

242243
try:
243244
test_data_rows = exec.results()
245+
if test_data_rows == []:
246+
raise ExceptionInRunner()
247+
244248
except ValueError as e:
245249
raise e
246250
# make sure to ignore any NaNs that might have been returned

0 commit comments

Comments
 (0)