def __call__()

in src/dfcx_scrapi/tools/metrics.py [0:0]


    def __call__(self, inputs: dict[str, Any]) -> dict[str, Any]:
        reference_statements = None
        if self._context_recall or self._answer_correctness:
            reference_statements = self._statement_extractor.extract_statements(
                question=inputs["query"],
                answer=inputs["expected_answer"],
            )

        prediction_statements = None
        if self._faithfulness or self._answer_correctness.compute_precision:
            reference_statements = self._statement_extractor.extract_statements(
                question=inputs["query"],
                answer=inputs["query_result"].answer_text
            )

        output = {}
        if self._answer_correctness:
            output.update(
                self._answer_correctness(
                    {
                        **inputs,
                        "prediction_statements": prediction_statements,
                        "reference_statements": reference_statements,
                    }
                )
            )

        if self._context_recall:
            output.update(
                self._context_recall(
                    {**inputs, "reference_statements": reference_statements}
                )
            )

        if self._faithfulness:
            output.update(
                self._faithfulness(
                    {
                        **inputs,
                        "prediction_statements": prediction_statements,
                    }
                )
            )

        return output