> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/curator/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/curator/llms-full.txt.

# nemo_curator.core.serve.constants

## Module Contents

### Data

[`DEFAULT_SERVE_HEALTH_TIMEOUT_S`](#nemo_curator-core-serve-constants-DEFAULT_SERVE_HEALTH_TIMEOUT_S)

[`DEFAULT_SERVE_PORT`](#nemo_curator-core-serve-constants-DEFAULT_SERVE_PORT)

[`NOSET_CUDA_RUNTIME_ENV`](#nemo_curator-core-serve-constants-NOSET_CUDA_RUNTIME_ENV)

[`PLACEMENT_GROUP_READY_TIMEOUT_S`](#nemo_curator-core-serve-constants-PLACEMENT_GROUP_READY_TIMEOUT_S)

[`SIGKILL_WAIT_S`](#nemo_curator-core-serve-constants-SIGKILL_WAIT_S)

[`SIGTERM_WAIT_S`](#nemo_curator-core-serve-constants-SIGTERM_WAIT_S)

[`WORKER_NODE_LABEL`](#nemo_curator-core-serve-constants-WORKER_NODE_LABEL)

### API

<Anchor id="nemo_curator-core-serve-constants-DEFAULT_SERVE_HEALTH_TIMEOUT_S">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.DEFAULT_SERVE_HEALTH_TIMEOUT_S = 300
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_curator-core-serve-constants-DEFAULT_SERVE_PORT">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.DEFAULT_SERVE_PORT = 8000
    ```
  </CodeBlock>
</Anchor>

<Anchor id="nemo_curator-core-serve-constants-NOSET_CUDA_RUNTIME_ENV">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.NOSET_CUDA_RUNTIME_ENV: dict[str, Any] = {'env_vars': {'RAY_EXPERIMENTAL_NOSET_CUDA_VISIBLE_DEVICES': '1'}}
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Runtime-env fragment telling Ray not to overwrite the worker's CUDA\_VISIBLE\_DEVICES.

  We explicitly set `CUDA_VISIBLE_DEVICES` in `subprocess_env` from
  `ray.get_accelerator_ids()`, so for the subprocess this flag is largely
  redundant -- it's kept defensively because the canonical vLLM+Ray pattern
  (vLLM issues #7890/#30016/#35848) relies on it.
</Indent>

<Anchor id="nemo_curator-core-serve-constants-PLACEMENT_GROUP_READY_TIMEOUT_S">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.PLACEMENT_GROUP_READY_TIMEOUT_S = 180
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Default timeout for `pg.ready()` on a freshly-created placement group.
</Indent>

<Anchor id="nemo_curator-core-serve-constants-SIGKILL_WAIT_S">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.SIGKILL_WAIT_S = 5
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Seconds to wait after SIGKILL before giving up on a subprocess.
</Indent>

<Anchor id="nemo_curator-core-serve-constants-SIGTERM_WAIT_S">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.SIGTERM_WAIT_S = 10
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Seconds to wait for SIGTERM to reap a subprocess before escalating to SIGKILL.
</Indent>

<Anchor id="nemo_curator-core-serve-constants-WORKER_NODE_LABEL">
  <CodeBlock showLineNumbers={false} wordWrap={true}>
    ```python
    nemo_curator.core.serve.constants.WORKER_NODE_LABEL = {'ray.io/node-type': 'worker'}
    ```
  </CodeBlock>
</Anchor>

<Indent>
  Bundle label selector applied when `CURATOR_IGNORE_RAY_HEAD_NODE=1`.

  Anyscale auto-labels head/worker nodes. OSS Ray users must start worker
  nodes with `ray start --labels ray.io/node-type=worker` for this to take
  effect.
</Indent>