Ragas BaseModel

An Extended version of Pydantics BaseModel for some ragas specific stuff

source

ExtendedPydanticBaseModel

 ExtendedPydanticBaseModel ()

Extended Pydantic BaseModel with database integration capabilities

import ragas_experimental.typing as rt
from ragas_experimental.metric.result import MetricResult
# Example usage
class TestDataRow(ExtendedPydanticBaseModel):
    id: t.Optional[int] = None
    query: t.Annotated[str, rt.Text(id="search_query")]
    persona: t.List[t.Literal["opt1", "opt2", "opt3"]]
    result: MetricResult
TestDataRow.__column_mapping__ = {}
test_data_row = TestDataRow(id=1, query="this is a test", persona=["opt1"], result=MetricResult(result=0.5, reason="test reason"))
test_data_row
TestDataRow(id=1, query='this is a test', persona=['opt1'], result=0.5)
test_data_row.__column_mapping__
{'id': 'id',
 'query': 'search_query',
 'persona': 'persona',
 'result': 'result',
 'result_reason': 'result_reason'}