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

Ragas

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:评估评分标准的字典,其中键表示分数,值表示相应的评估标准。

返回值:

包含评估结果的字典。