You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RAGAS评估LLM RAG应用时触发AttributeError报错求助

解决RAGAS evaluate函数触发AttributeError: 'TestDataset' object has no attribute 'column_names'的问题

问题场景

使用RAGAS的TestsetGenerator生成测试数据集后,调用evaluate函数时触发如下报错:

AttributeError: 'TestDataset' object has no attribute 'column_names'

问题原因

ragas的evaluate函数仅支持接收Hugging Face Dataset格式的输入,而TestsetGenerator.generate()返回的是TestDataset类型对象,两者格式不兼容,导致验证阶段无法找到column_names属性。

解决方案

将TestDataset转换为Hugging Face Dataset格式即可解决,具体步骤:

  • 导入Hugging Face的Dataset类
  • 调用TestDataset的to_dict()方法转为字典,再通过Dataset.from_dict()转换为标准Dataset对象
  • 使用转换后的Dataset对象调用evaluate函数

修改后的完整代码

# 生成测试数据集(移除冗余导入,保留核心逻辑)
from ragas.testset import TestsetGenerator
from langchain.embeddings import OpenAIEmbeddings
from langchain.chat_models import ChatOpenAI
from ragas.llms import LangchainLLM
from langchain.document_loaders import PyPDFDirectoryLoader

llm_wrapper = ChatOpenAI(model="gpt-3.5-turbo")
generator_llm = LangchainLLM(llm=llm_wrapper)
critic_llm = LangchainLLM(llm=llm_wrapper)
embeddings_model = OpenAIEmbeddings() 

testset_distribution = {
    "simple": 0.25,
    "reasoning": 0.5,
    "multi_context": 0.0,
    "conditional": 0.25,
}
chat_qa = 0.2

test_generator = TestsetGenerator(
    generator_llm=generator_llm,
    critic_llm=critic_llm,
    embeddings_model=embeddings_model,
    testset_distribution=testset_distribution,
    chat_qa=chat_qa,
)

data_file = "/content/"
loader = PyPDFDirectoryLoader(data_file+"/")
documents = loader.load()
testset = test_generator.generate(documents, test_size=2)

# 新增格式转换逻辑
from datasets import Dataset
testset_dataset = Dataset.from_dict(testset.to_dict())

# 执行评估
from ragas import evaluate
from ragas.metrics import context_precision, faithfulness, answer_relevancy, context_recall

result = evaluate(
    testset_dataset,
    metrics=[
        context_precision,
        faithfulness,
        answer_relevancy,
        context_recall,
    ],
)

额外提示

原代码中存在重复导入from ragas.llms import LangchainLLM的冗余代码,可删除以保持代码整洁。

内容的提问来源于stack exchange,提问作者zainul abid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:37:32