def METHOD_NAME(
    self, model: MLTypes.ModelType, x: MLTypes.DatasetType, **kwargs
) -> Dict[str, Artifact]:
    """
    Produce the feature importance according to the given model and dataset ('x').
    :param model: Model to get its 'feature_importances_' or 'coef_' fields.
    :param x:     Input dataset the model trained on for the column labels.
    :return: The produced feature importance artifact in an artifacts dictionary.
    """
    # Get the importance score:
    importance_score = self._get_importance_score(model=model)
    if importance_score is None:
        raise mlrun.errors.MLRunInvalidArgumentError(
            "This model cannot be used for Feature Importance plotting."
        )
    # Create a table of features and their importance along the assigned class:
    features = MLUtils.to_dataframe(dataset=x).columns
    targets = model.classes_ if hasattr(model, "classes_") else [0]
    if len(targets) != len(importance_score):
        targets = [0]
    # Create the figure:
    fig = go.Figure(
        [
            go.Bar(
                x=class_importance_score,
                y=[str(f) for f in features],
                orientation="h",
                name=str(target),
            )
            for class_importance_score, target in zip(importance_score, targets)
        ]
    )
    # Creating the artifact:
    self._artifacts[self._ARTIFACT_NAME] = PlotlyArtifact(
        key=self._ARTIFACT_NAME,
        figure=fig,
    )
    return self._artifacts