文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
文档

DeepEvalEvaluator

DeepEvalEvaluator 使用基于 LLM 的指标来评估 Haystack 管道。它支持诸如答案相关性、忠实度、上下文相关性等指标。

pipeline 中的最常见位置单独使用或在评估管道中使用。应在单独的管道生成 Evaluator 的输入后使用。
必需的初始化变量“metric”:“要用于评估的 DeepEval 指标之一”
强制运行变量“**inputs”:“一个包含预期输入的关键字参数字典。预期输入将根据您正在评估的指标而变化。有关更多详细信息,请参见下文。”
输出变量“results”:“一个指标结果的嵌套列表。根据指标,可以有一个或多个结果。每个结果都是一个字典,其中包含:”

- name - 指标的名称 -score - 指标的分数 -explanation - 分数的可选解释
API 参考DeepEval
GitHub 链接https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/deepeval

DeepEval 是一个提供一系列基于 LLM 的评估指标的评估框架。您可以使用DeepEvalEvaluator 组件来评估 Haystack 管道,例如检索增强生成管道,针对 DeepEval 提供的指标之一。

支持的指标

DeepEval 支持许多指标,我们通过 DeepEval 指标枚举 提供。Haystack 中的 DeepEvalEvaluator 支持以下列表中的指标,并在初始化 Evaluator 时具有预期的metric_params。许多指标使用 OpenAI 模型,并要求您设置环境变量OPENAI_API_KEY。有关这些指标的完整指南,请访问 DeepEval 文档

指标指标参数预期输入指标描述
ANSWER_RELEVANCYmodel: strquestions: List[str], contexts: List[List[str]], responses: List[str]评估答案与指定问题的相关性。
FAITHFULNESSmodel: strquestions: List[str], contexts: List[List[str]], responses: List[str]评估生成响应的事实性。
CONTEXTUAL_PRECISIONmodel: strquestions: List[str], contexts: List[List[str]], responses: List[str],
ground_truths: List[str]
评估答案是否包含与所提问题无关的附加信息。
CONTEXTUAL_RECALLmodel: strquestions: List[str], contexts: List[List[str]], responses: List[str],
ground_truths: List[str]
评估生成响应对于指定问题的完整性。
CONTEXTUAL_RELEVANCEmodel: strquestions: List[str], contexts: List[List[str]], responses: List[str]评估所提供上下文与指定问题的相关性。

参数概述

初始化DeepEvalEvaluator,您需要提供以下参数:

  • metric:一个DeepEvalMetric.
  • metric_params:如果指标需要其他参数,您可以选择在此处提供。

用法

要使用DeepEvalEvaluator,您需要先安装集成。

pip install deepeval-haystack

要使用DeepEvalEvaluator,您需要遵循以下步骤:

  1. 初始化DeepEvalEvaluator,同时为要使用的指标提供正确的metric_params
  2. 运行DeepEvalEvaluator,方法是提供您正在使用的指标的预期输入,可以单独使用或在管道中使用。

示例

评估忠实度

创建忠实度评估管道

from haystack import Pipeline
from haystack_integrations.components.evaluators.deepeval import DeepEvalEvaluator, DeepEvalMetric

pipeline = Pipeline()
evaluator = DeepEvalEvaluator(
    metric=DeepEvalMetric.FAITHFULNESS,
    metric_params={"model": "gpt-4"},
)
pipeline.add_component("evaluator", evaluator)

要运行评估管道,您应该准备好指标的*预期输入*。此指标需要一系列questionscontexts。这些应该来自您想要评估的管道的结果。

results = pipeline.run({"evaluator": {"questions": ["When was the Rhodes Statue built?", "Where is the Pyramid of Giza?"], 
                                      "contexts": [["Context for question 1"], ["Context for question 2"]],
                                      "responses": ["Response for queston 1", "Reponse for question 2"]}})

其他参考资料

🧑‍🍳 食谱:使用 DeepEval 进行 RAG 管道评估