Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/evaluation/base.py: 100%
9 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Base evaluator class for RAG evaluation."""
3from __future__ import annotations
5from abc import ABC, abstractmethod
6from typing import Any
8from lexigram.ai.rag.evaluation.types import EvaluationResult
11class EvaluatorBase(ABC):
12 """Base class for RAG evaluators.
14 All evaluators should inherit from this class and implement the evaluate method.
15 """
17 def __init__(self, name: str = "base"):
18 """Initialize evaluator.
20 Args:
21 name: Name of the evaluator.
22 """
23 self.name = name
25 @abstractmethod
26 async def evaluate(
27 self,
28 query: str,
29 retrieved_docs: list[Any],
30 generated_answer: str,
31 reference_answer: str | None = None,
32 **kwargs,
33 ) -> EvaluationResult:
34 """Evaluate a RAG response.
36 Args:
37 query: The query.
38 retrieved_docs: Retrieved documents.
39 generated_answer: Generated answer.
40 reference_answer: Optional ground truth.
41 **kwargs: Additional parameters.
43 Returns:
44 Evaluation result.
45 """