AWS SageMaker JupyterLab中Ragas代码模块导入错误求助
ragas版本兼容问题解决方案
问题原因分析
- 0.2.14版本的
ModuleNotFoundError:ragas从0.2.x版本开始,已将原ragas.metrics.critique子模块下的所有指标(harmfulness、maliciousness等)迁移至ragas.metrics主模块,原子模块路径已被移除,因此直接导入会报错。 - 0.1.16版本的
ImportError:旧版本的ragas内部代码结构与当前API逻辑不兼容,且0.1.x版本存在较多依赖兼容问题,降级会引发新的导入错误。
正确解决步骤
1. 安装正确的ragas版本
先卸载现有版本,再重新安装指定稳定版:
pip uninstall -y ragas pip install ragas==0.2.14
2. 修改代码导入逻辑
移除原from ragas.metrics.critique import ...语句,将所有指标统一从ragas.metrics导入:
import warnings warnings.filterwarnings('ignore') # ignore warnings related to pydantic v1 to v2 migration from ragas import evaluate from ragas.metrics import ( faithfulness, answer_relevancy, context_recall, context_precision, context_entity_recall, answer_similarity, answer_correctness, # 原critique模块下的指标直接从ragas.metrics导入 harmfulness, maliciousness, coherence, correctness, conciseness ) # 指定评估指标 metrics = [ faithfulness, answer_relevancy, context_precision, context_recall, context_entity_recall, answer_similarity, answer_correctness, harmfulness, maliciousness, coherence, correctness, conciseness ] result = evaluate( dataset = dataset, metrics=metrics, llm=llm_for_evaluation, embeddings=bedrock_embeddings, ) df = result.to_pandas()
额外注意
代码中metrics列表包含两个correctness(一个是原answer_correctness,一个是原critique下的correctness),若不需要重复评估,可根据需求移除其中一个。
内容的提问来源于stack exchange,提问作者ggcoder
相关产品推荐
相关产品推荐

