Skip to content

datarobot_genai.drtools.predictive.model

model

ModelInsights dataclass

DTO for model detail information returned by modeling_get_modeldetails.

Source code in datarobot_genai/drtools/predictive/model.py
@dataclass
class ModelInsights:
    """DTO for model detail information returned by modeling_get_modeldetails."""

    model_id: str
    project_id: str
    model_type: str
    featurelist_name: str | None
    target: str
    metric: str
    metrics: dict[str, Any]
    sample_pct: float | None
    feature_impact: list[dict[str, Any]] | None = None
    feature_impact_error: str | None = None
    roc_curve: dict[str, Any] | None = None
    roc_curve_error: str | None = None

ModelEncoder

Bases: JSONEncoder

Custom JSON encoder for DataRobot Model objects.

Source code in datarobot_genai/drtools/predictive/model.py
class ModelEncoder(json.JSONEncoder):
    """Custom JSON encoder for DataRobot Model objects."""

    def default(self, obj: Any) -> Any:
        if isinstance(obj, Model):
            return model_to_dict(obj)
        return super().default(obj)

model_to_dict

model_to_dict(model: Any) -> dict[str, Any]

Convert a DataRobot Model object to a dictionary.

Source code in datarobot_genai/drtools/predictive/model.py
def model_to_dict(model: Any) -> dict[str, Any]:
    """Convert a DataRobot Model object to a dictionary."""
    try:
        return {
            "id": model.id,
            "model_type": model.model_type,
            "metrics": model.metrics,
        }
    except AttributeError as e:
        logger.warning(f"Failed to access some model attributes: {e}")
        # Return minimal information if some attributes are not accessible
        return {
            "id": getattr(model, "id", "unknown"),
            "model_type": getattr(model, "model_type", "unknown"),
        }