Haystack 的 Ragas 集成
模块 haystack_integrations.components.evaluators.ragas.evaluator
RagasEvaluator
一个组件,它使用 Ragas framework 来根据指定的 Ragas 指标评估输入。
使用示例
from haystack.components.generators import OpenAIGenerator
from haystack_integrations.components.evaluators.ragas import RagasEvaluator
from ragas.metrics import ContextPrecision
from ragas.llms import HaystackLLMWrapper
llm = OpenAIGenerator(model="gpt-4o-mini")
evaluator_llm = HaystackLLMWrapper(llm)
evaluator = RagasEvaluator(
ragas_metrics=[ContextPrecision()],
evaluator_llm=evaluator_llm
)
output = evaluator.run(
query="Which is the most popular global sport?",
documents=[
"Football is undoubtedly the world's most popular sport with"
" major events like the FIFA World Cup and sports personalities"
" like Ronaldo and Messi, drawing a followership of more than 4"
" billion people."
],
reference="Football is the most popular sport with around 4 billion"
" followers worldwide",
)
output['result']
RagasEvaluator.__init__
def __init__(ragas_metrics: List[Metric],
evaluator_llm: Optional[BaseRagasLLM] = None,
evaluator_embedding: Optional[BaseRagasEmbeddings] = None)
构造一个新的 Ragas 评估器。
参数:
ragas_metrics:来自 Ragas 库的评估指标列表。evaluator_llm:用于需要 LLM 进行评估的指标的语言模型。evaluator_embedding:用于需要嵌入进行评估的指标的嵌入模型。
RagasEvaluator.run
@component.output_types(result=EvaluationResult)
def run(query: Optional[str] = None,
response: Optional[Union[List[ChatMessage], str]] = None,
documents: Optional[List[Union[Document, str]]] = None,
reference_contexts: Optional[List[str]] = None,
multi_responses: Optional[List[str]] = None,
reference: Optional[str] = None,
rubrics: Optional[Dict[str, str]] = None) -> Dict[str, Any]
根据文档评估提供的查询,并返回评估结果。
参数:
query:用户的输入查询。response:一系列 ChatMessage 响应(通常来自语言模型或代理)。documents:为查询检索到的 Haystack Document 或字符串列表。reference_contexts:应该为查询检索到的参考上下文列表。multi_responses:为查询生成的多个响应列表。reference:查询的参考答案字符串。rubrics:评估评分标准的字典,其中键表示分数,值表示相应的评估标准。
返回值:
包含评估结果的字典。
