For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DocumentationAPI Reference
DocumentationAPI Reference
  • API Reference
    • Overview
        • Nemo Gym
          • Base Resources Server
          • Base Responses Api Agent
          • Base Responses Api Model
          • Benchmarks
          • Cli
          • Cli Setup Command
          • Config Types
          • Dataset Orchestrator
          • Gitlab Utils
          • Global Config
          • Hf Utils
          • Openai Utils
          • Package Info
          • Profiling
          • Prompt
          • Reward Profile
          • Rollout Collection
          • Server Metadata
          • Server Status
          • Server Utils
          • Train Data Utils
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoNeMo Gym
On this page
  • Module Contents
  • Classes
  • Functions
  • Data
  • API
API ReferenceFull Library ReferenceNemo GymNemo Gym

nemo_gym.server_utils

||View as Markdown|
Previous

nemo_gym.server_status

Next

nemo_gym.train_data_utils

Module Contents

Classes

NameDescription
BaseServerAll instances of BaseServer are queryable using ServerClient.
GlobalAIOHTTPAsyncClientConfig-
HeadServer-
ProfilingMiddlewareConfig-
ProfilingMiddlewareInputConfig-
ServerClient-
ServerInstanceDisplayConfig-
SimpleServer-
UvicornLoggingConfig-

Functions

NameDescription
get_global_aiohttp_client-
get_nemo_gym_fastapi_num_workers-
get_response_json-
get_server_url-
global_aiohttp_client_exit-
initialize_rayInitialize ray cluster in a process.
is_global_aiohttp_client_request_debug_enabled-
is_global_aiohttp_client_setup-
is_nemo_gym_fastapi_entrypoint-
is_nemo_gym_fastapi_worker-
maybe_ray_cluster_exit-
raise_for_status-
request-
set_global_aiohttp_client-
set_is_nemo_gym_fastapi_entrypoint-
set_is_nemo_gym_fastapi_worker-
set_nemo_gym_fastapi_num_workers-

Data

DEFAULT_HEAD_SERVER_PORT

DISCONNECTED_CLIENT_OS_HELP_TEXT

DISCONNECTED_CLIENT_OS_PRINT_INTERVAL

IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME

IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME

MAX_NUM_TRIES

NEMO_GYM_FASTAPI_NUM_WORKERS

SESSION_ID_KEY

ServerStatus

_GLOBAL_AIOHTTP_CLIENT

_GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG

_NEMO_GYM_STARTED_RAY_CLUSTER

_NUM_CLIENT_OS_ERROR

_NUM_SERVER_DISCONNECTED_ERROR

API

class nemo_gym.server_utils.BaseServer()

Bases: BaseModel

All instances of BaseServer are queryable using ServerClient.

config
BaseRunServerInstanceConfig
nemo_gym.server_utils.BaseServer.load_config_from_global_config() -> nemo_gym.config_types.BaseRunServerInstanceConfig
classmethod
nemo_gym.server_utils.BaseServer.setup_liveness(
app: fastapi.FastAPI
) -> None
class nemo_gym.server_utils.GlobalAIOHTTPAsyncClientConfig()

Bases: BaseModel

global_aiohttp_client_request_debug
bool = False
global_aiohttp_connector_limit
int = 100 * 1024
global_aiohttp_connector_limit_per_host
int = 1024
class nemo_gym.server_utils.HeadServer()

Bases: BaseServer

_server_instances
List[dict] = []
config
BaseServerConfig
nemo_gym.server_utils.HeadServer.get_server_instances() -> typing.List[dict]
nemo_gym.server_utils.HeadServer.global_config_dict_yaml() -> str
async
nemo_gym.server_utils.HeadServer.run_webserver() -> typing.Tuple[uvicorn.Server, threading.Thread, nemo_gym.server_utils.HeadServer]nemo_gym.server_utils.HeadServer.run_webserver() -> typing.Tuple[uvicorn.Server, threading.Thread, nemo_gym.server_utils.HeadServer]
classmethod
nemo_gym.server_utils.HeadServer.set_server_instances(
instances: typing.List
) -> None
nemo_gym.server_utils.HeadServer.setup_webserver() -> fastapi.FastAPI
class nemo_gym.server_utils.ProfilingMiddlewareConfig()

Bases: ProfilingMiddlewareInputConfig

profiling_enabled
bool = False
class nemo_gym.server_utils.ProfilingMiddlewareInputConfig()

Bases: BaseModel

profiling_results_dirpath
Optional[str] = None
class nemo_gym.server_utils.ServerClient()

Bases: BaseModel

global_config_dict
DictConfig
head_server_config
BaseServerConfig
model_config
= ConfigDict(arbitrary_types_allowed=True)
nemo_gym.server_utils.ServerClient._build_server_base_url(
server_config_dict: omegaconf.OmegaConf
) -> str
nemo_gym.server_utils.ServerClient.get(
server_name: str,
url_path: str,
kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
) -> aiohttp.ClientResponse
async

Parameters:

server_name
str

str The name of the server you are trying to call.

url_path
str

str The URL path in the server you are trying to call e.g. “/v1/responses”.

nemo_gym.server_utils.ServerClient.load_from_global_config(
head_server_config: typing.Optional[nemo_gym.config_types.BaseServerConfig] = None
) -> nemo_gym.server_utils.ServerClient
classmethod
nemo_gym.server_utils.ServerClient.load_head_server_config() -> nemo_gym.config_types.BaseServerConfig
classmethod
nemo_gym.server_utils.ServerClient.poll_for_status(
server_name: str
) -> nemo_gym.server_utils.ServerStatus
nemo_gym.server_utils.ServerClient.post(
server_name: str,
url_path: str,
kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
) -> aiohttp.ClientResponse
async

Parameters:

server_name
str

str The name of the server you are trying to call.

url_path
str

str The URL path in the server you are trying to call e.g. “/v1/responses”.

nemo_gym.server_utils.ServerClient.request(
server_name: str,
url_path: str,
method: str,
kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
) -> aiohttp.ClientResponse
async
class nemo_gym.server_utils.ServerInstanceDisplayConfig()

Bases: BaseModel

config_path
Optional[str] = None
dir_path
Optional[Path] = None
entrypoint
Optional[str] = None
host
Optional[str] = None
name
Optional[str] = None
pid
Optional[int] = None
port
Optional[int] = None
process_name
Optional[str] = None
server_type
Optional[str] = None
start_time
Optional[float] = None
status
Optional[ServerStatus] = None
uptime_seconds
Optional[float] = None
url
Optional[str] = None
class nemo_gym.server_utils.SimpleServer()

Bases: BaseServer

server_client
ServerClient
nemo_gym.server_utils.SimpleServer.get_session_middleware_key() -> str
nemo_gym.server_utils.SimpleServer.prefix_server_logs() -> None
nemo_gym.server_utils.SimpleServer.run_webserver() -> typing.Optional[fastapi.FastAPI]
classmethod
nemo_gym.server_utils.SimpleServer.set_ulimit(
target_soft_limit: int = 65535
)
nemo_gym.server_utils.SimpleServer.setup_exception_middleware(
app: fastapi.FastAPI
) -> None
nemo_gym.server_utils.SimpleServer.setup_profiling(
app: fastapi.FastAPI,
profiling_config: nemo_gym.server_utils.ProfilingMiddlewareConfig
) -> None
nemo_gym.server_utils.SimpleServer.setup_session_middleware(
app: fastapi.FastAPI
) -> None
nemo_gym.server_utils.SimpleServer.setup_webserver() -> fastapi.FastAPI
abstract
class nemo_gym.server_utils.UvicornLoggingConfig()

Bases: BaseModel

uvicorn_logging_show_200_ok
bool = False
nemo_gym.server_utils.get_global_aiohttp_client(
global_config_dict_parser_config: typing.Optional[nemo_gym.global_config.GlobalConfigDictParserConfig] = None,
global_config_dict_parser_cls: typing.Type[nemo_gym.global_config.GlobalConfigDictParser] = GlobalConfigDictParser
) -> aiohttp.ClientSession
nemo_gym.server_utils.get_nemo_gym_fastapi_num_workers() -> int
nemo_gym.server_utils.get_response_json(
response: aiohttp.ClientResponse
) -> typing.Any
async
nemo_gym.server_utils.get_server_url(
server_name: str
) -> str
nemo_gym.server_utils.global_aiohttp_client_exit()
nemo_gym.server_utils.initialize_ray() -> None

Initialize ray cluster in a process. We store the Ray address in the global config dict so that child processes can connect to it. This avoids the need to start a new Ray cluster in each child process. Note: This function will modify the global config dict - update ray_head_node_address

nemo_gym.server_utils.is_global_aiohttp_client_request_debug_enabled() -> bool
nemo_gym.server_utils.is_global_aiohttp_client_setup() -> bool
nemo_gym.server_utils.is_nemo_gym_fastapi_entrypoint(
file: str
) -> bool
nemo_gym.server_utils.is_nemo_gym_fastapi_worker() -> bool
nemo_gym.server_utils.maybe_ray_cluster_exit()
nemo_gym.server_utils.raise_for_status(
response: aiohttp.ClientResponse
) -> None
async
nemo_gym.server_utils.request(
method: str,
url: str,
_internal: bool = False,
kwargs: typing.Unpack[aiohttp.client._RequestOptions] = {}
) -> aiohttp.ClientResponse
async
nemo_gym.server_utils.set_global_aiohttp_client(
cfg: nemo_gym.server_utils.GlobalAIOHTTPAsyncClientConfig
) -> aiohttp.ClientSession
nemo_gym.server_utils.set_is_nemo_gym_fastapi_entrypoint(
file: str
) -> None
nemo_gym.server_utils.set_is_nemo_gym_fastapi_worker() -> None
nemo_gym.server_utils.set_nemo_gym_fastapi_num_workers(
num_workers: int
) -> None
nemo_gym.server_utils.DEFAULT_HEAD_SERVER_PORT = 11000
nemo_gym.server_utils.DISCONNECTED_CLIENT_OS_HELP_TEXT = "We've run into this issue in two different scenarios previously:\n1. Too many o...
nemo_gym.server_utils.DISCONNECTED_CLIENT_OS_PRINT_INTERVAL: int = 100
nemo_gym.server_utils.IS_NEMO_GYM_FASTAPI_ENTRYPOINT_KEY_NAME = 'IS_NEMO_GYM_FASTAPI_ENTRYPOINT'
nemo_gym.server_utils.IS_NEMO_GYM_FASTAPI_WORKER_KEY_NAME = 'IS_NEMO_GYM_FASTAPI_WORKER'
nemo_gym.server_utils.MAX_NUM_TRIES = 3
nemo_gym.server_utils.NEMO_GYM_FASTAPI_NUM_WORKERS = 'NEMO_GYM_FASTAPI_NUM_WORKERS'
nemo_gym.server_utils.SESSION_ID_KEY = 'session_id'
nemo_gym.server_utils.ServerStatus = Union[Literal['success'], Literal['connection_error'], Literal['timeout'], Liter...
nemo_gym.server_utils._GLOBAL_AIOHTTP_CLIENT: Union[None, ClientSession] = None
nemo_gym.server_utils._GLOBAL_AIOHTTP_CLIENT_REQUEST_DEBUG: bool = False
nemo_gym.server_utils._NEMO_GYM_STARTED_RAY_CLUSTER: bool = False
nemo_gym.server_utils._NUM_CLIENT_OS_ERROR: int = 0
nemo_gym.server_utils._NUM_SERVER_DISCONNECTED_ERROR: int = 0