from dataclasses import dataclass, field
from typing import Any


@dataclass
class QA:
    """Atomic QA pair generated by the default pipeline. This follows the verifiers format of question, answer and info (info is a dict for metadata)"""

    question: str
    answer: str
    doc_indices: list[int] = field(default_factory=list)
    info: dict[str, Any] = field(default_factory=dict)


@dataclass
class Concept:
    """Concept extracted from source documents for QA generation."""

    name: str
    data_source: str
    doc_idx: int
    importance: str = ""
    info: dict[str, Any] = field(default_factory=dict)
