code: def _gateway(self) -> Optional[Gateway]:
      options = {}
      if self.run_spec.configuration.model is not None:
          options["openai"] = openai.complete_model(
              self.run_spec.configuration.model
          )
  
      return Gateway(
          gateway_name=None,  # TODO configurable
          service_port=self.run_spec.configuration.port.container_port,
          public_port=self.run_spec.configuration.port.local_port,
          options=options,
      )
  
file_path: dstack/src/dstack/_internal/server/services/jobs/configurators/service.py
imports: from typing import List, Optional
  import dstack._internal.server.services.jobs.configurators.extensions.openai
  from dstack._internal.core.models.configurations import ConfigurationType, PortMapping
  from dstack._internal.core.models.profiles import ProfileRetryPolicy, SpotPolicy
  from dstack._internal.core.models.runs import Gateway, RetryPolicy
  from dstack._internal.server.services.jobs.configurators.base import JobConfigurator
label_desc: Use image node_id 1 for calling the ServiceJobConfigurator obj's underlying member method code with example usage: obj._gateway() and returns: Gateway