> This page is for version 0.3.0.
> For other versions, use one of these documentation indexes:
> - Main (default): https://docs.nvidia.com/nemo/gym/main/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo/gym/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo/gym/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo/gym/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo/gym/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo/gym/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo/gym/v0.3.0/llms.txt
> - 0.2.1: https://docs.nvidia.com/nemo/gym/v0.2.1/llms.txt

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

# nemo_gym.web.resources_server

Backend-neutral HTTP resource server for stateful web rollouts.

## Module Contents

### Classes

| Name                                                                            | Description                                                                     |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [`WebResourcesServer`](#nemo_gym-web-resources_server-WebResourcesServer)       | Expose any common-protocol web backend through Gym's session API.               |
| [`_BearerAuthMiddleware`](#nemo_gym-web-resources_server-_BearerAuthMiddleware) | Check bearer tokens while keeping downstream ASGI handling in the calling task. |

### Functions

| Name                                                                | Description |
| ------------------------------------------------------------------- | ----------- |
| [`_error_response`](#nemo_gym-web-resources_server-_error_response) | -           |

### Data

[`LOG`](#nemo_gym-web-resources_server-LOG)

### API

```python
class nemo_gym.web.resources_server.WebResourcesServer()
```

**Bases:** [SimpleResourcesServer](/nemo/gym/nemo-gym/nemo_gym/server_runtime/base_resources_server#nemo_gym-server_runtime-base_resources_server-SimpleResourcesServer)

Expose any common-protocol web backend through Gym's session API.

**`_manager`** `WebSessionManager = PrivateAttr()`

---

**`_session_control`** `WebSessionControl = PrivateAttr()`

---

**`config`** `WebResourcesServerConfig`

---

```python
nemo_gym.web.resources_server.WebResourcesServer._check_identity_cookie(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebSessionIdentity
) -> None
```

staticmethod

```python
nemo_gym.web.resources_server.WebResourcesServer._session_id(
    request: fastapi.Request
) -> str
```

staticmethod

```python
nemo_gym.web.resources_server.WebResourcesServer.close_session(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebSessionIdentity | None = None
) -> nemo_gym.web.api_models.WebCloseResponse | fastapi.responses.JSONResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.evaluate(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebEvaluateRequest
) -> nemo_gym.web.api_models.WebEvaluateResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.healthz()
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.make_session_manager() -> nemo_gym.web.session_manager.WebSessionManager
```

Create the backend-specific manager used by the common HTTP API.

```python
nemo_gym.web.resources_server.WebResourcesServer.model_post_init(
    _context
) -> None
```

```python
nemo_gym.web.resources_server.WebResourcesServer.observe(
    request: fastapi.Request
)
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.reset_session(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebResetRequest
) -> nemo_gym.web.api_models.WebSeedSessionResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.seed_session(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebSeedSessionRequest
) -> nemo_gym.web.api_models.WebSeedSessionResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.session_status(
    request: fastapi.Request
) -> nemo_gym.web.api_models.WebSessionStatusResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.setup_webserver() -> fastapi.FastAPI
```

```python
nemo_gym.web.resources_server.WebResourcesServer.step(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebStepRequest
) -> nemo_gym.web.api_models.WebStepResponse
```

async

```python
nemo_gym.web.resources_server.WebResourcesServer.verify(
    request: fastapi.Request,
    body: nemo_gym.web.api_models.WebVerifyRequest
) -> nemo_gym.web.api_models.WebVerifyResponse
```

async

Run the colocated benchmark evaluator and always release the browser.

```python
class nemo_gym.web.resources_server._BearerAuthMiddleware(
    app: starlette.types.ASGIApp,
    config: nemo_gym.web.resource_config.WebResourcesServerConfig
)
```

Check bearer tokens while keeping downstream ASGI handling in the calling task.

```python
nemo_gym.web.resources_server._BearerAuthMiddleware.__call__(
    scope: starlette.types.Scope,
    receive: starlette.types.Receive,
    send: starlette.types.Send
) -> None
```

async

```python
nemo_gym.web.resources_server._error_response(
    status_code: int,
    detail: str,
    error_kind: str,
    retryable: bool
) -> fastapi.responses.JSONResponse
```

```python
nemo_gym.web.resources_server.LOG = logging.getLogger('nemo_gym.web.resources_server')
```