Skip to content

datarobot_genai.dragent.eval.common

common

Shared helpers for DataRobot NAT evaluators.

interactions_json_from_eval_item

interactions_json_from_eval_item(item: EvalInputItem) -> str | None

Return serialized pipeline interactions from the dataset row when present.

Source code in datarobot_genai/dragent/eval/common.py
def interactions_json_from_eval_item(item: EvalInputItem) -> str | None:
    """Return serialized pipeline interactions from the dataset row when present."""
    entry = item.full_dataset_entry
    if not isinstance(entry, dict):
        return None
    for key in ("pipeline_interactions", "pipelineInteractions"):
        raw = entry.get(key)
        if not raw:
            continue
        if isinstance(raw, str):
            return raw
        return json.dumps(raw)
    return None

citations_from_eval_item

citations_from_eval_item(item: EvalInputItem) -> list[str]

Extract retrieval context for faithfulness / guideline metrics.

Source code in datarobot_genai/dragent/eval/common.py
def citations_from_eval_item(item: EvalInputItem) -> list[str]:
    """Extract retrieval context for faithfulness / guideline metrics."""
    entry = item.full_dataset_entry
    if not isinstance(entry, dict):
        return []

    context = entry.get("context")
    if context is not None:
        if isinstance(context, list):
            return [str(c) for c in context if c]
        return [str(context)]

    citations: list[str] = []
    for key, value in entry.items():
        if str(key).startswith("CITATION_CONTENT_") and value:
            citations.append(str(value))
    return citations