class_docstr: Integration with the Ludwig declarative ML library.
code: def create(
      self,
      target: str,
      df: Optional[pd.DataFrame] = None,
      args: Optional[dict] = None,
  ) -> None:
      args = args["using"]  # ignore the rest of the problem definition
  
      # TODO: filter out incompatible use cases (e.g. time series won't work currently)
      # TODO: enable custom values via `args` (mindful of local vs cloud)
      user_config = {
          "hyperopt": {
              "executor": {
                  "gpu_resources_per_trial": 0,
                  "num_samples": 3,
              }
          }
      }  # no GPU for now
  
      with RayConnection():
          results = auto_train(
              dataset=df,
              target=target,
              tune_for_memory=False,
              time_limit_s=120,
              user_config=user_config,
              # output_directory='./',
              # random_seed=42,
              # use_reference_config=False,
              # kwargs={}
          )
      model = results.best_model
      args["dtype_dict"] = {
          f["name"]: f["type"]
          for f in model.base_config["input_features"]
      }
      args["accuracies"] = {
          "metric": results.experiment_analysis.best_result[
              "metric_score"
          ]
      }
      self.model_storage.json_set("args", args)
      self.model_storage.file_set("model", dill.dumps(model))
  
file_path: mindsdb/mindsdb/integrations/handlers/ludwig_handler/ludwig_handler.py
imports: from typing import Optional
  import dill
  import dask
  import pandas
  from ludwig.automl import auto_train
  from mindsdb.integrations.libs.base import BaseMLEngine
  from .utils import RayConnection
label_desc: Use image node_id 1 for calling the LudwigHandler obj's underlying member method code with example usage: obj.create(target, df, args) without return types