> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fr.nvidia-localization.ferndocs.com/fr/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/fr/_mcp/server.

# nemo\_rl.environments.interfaces

## Contenu du Module

### Classes

| Nom                                                                         | Description                                                                     |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [`EnvironmentReturn`](#nemorlenvironmentsinterfacesenvironmentreturn)       | Type de retour standard par lots pour les méthodes d'étape d'environnement.     |
| [`EnvironmentInterface`](#nemorlenvironmentsinterfacesenvironmentinterface) | Classe d'assistance qui fournit un moyen standard de créer un ABC par héritage. |

### Données

`MetadataT`

### API

```python
nemo_rl.environments.interfaces.MetadataT
```

**Valeur**: `TypeVar(...)`

```python
class nemo_rl.environments.interfaces.EnvironmentReturn
```

**Bases**: `typing.NamedTuple`, `typing.Generic[nemo_rl.environments.interfaces.MetadataT]`

Type de retour standard par lots pour les méthodes d'étape d'environnement.

**Tous les éléments sont par lots.**
observations : Nouvelle observation de l'environnement.
C'est un type 'message' (par lots), qui est un dict
avec les clés 'role' et 'content'.
metadata : Métadonnées mises à jour de l'environnement.
next\_stop\_strings : Les chaînes d'arrêt pour le prochain tour.
Si votre environnement est un jeu ou similaire,
vous pouvez vouloir retourner une liste de chaînes d'arrêt
qui sont des actions valides pour le prochain tour ou
similaire. Ce champ vous permet de contrôler cela par tour.
rewards : les récompenses pour ce tour.
terminateds : si l'épisode s'est terminé ce tour.
answers : les réponses pour ce tour.

```python
observations: list[dict[str, str]]
```

**Valeur**: `None`

```python
metadata: list[nemo_rl.environments.interfaces.MetadataT]
```

**Valeur**: `None`

```python
next_stop_strings: list[list[str] | None] | list[None]
```

**Valeur**: `None`

```python
rewards: torch.Tensor
```

**Valeur**: `None`

```python
terminateds: torch.Tensor
```

**Valeur**: `None`

```python
answers: list[str | None] | None
```

**Valeur**: `None`

```python
class nemo_rl.environments.interfaces.EnvironmentInterface
```

**Bases**: `abc.ABC`, `typing.Generic[nemo_rl.environments.interfaces.MetadataT]`

```python
step(
    message_log_batch: list[nemo_rl.data.interfaces.LLMMessageLogType],
    metadata: list[nemo_rl.environments.interfaces.MetadataT]
) -> nemo_rl.environments.interfaces.EnvironmentReturn[nemo_rl.environments.interfaces.MetadataT]
```

Exécute une étape dans l'environnement. Permet l'asynchronie avec des serveurs distants, mais ce n'est pas obligatoire (cette fonction est un appel distant ray).

message\_log\_batch : lot de journaux de messages de type API OpenAI qui représentent des interactions avec le LLM.
Chaque élément est une liste\[dict\[str, Union\[str, torch.Tensor]]].
Par exemple, si c'était un environnement de mathématiques,
le journal de messages serait
\[
\{"role": "user", "content": "problème"},
\{"role": "assistant", "content": "réponse"},
]
mais si c'était un environnement de code
avec des commentaires, ce serait :
\[
\{"role": "user", "content": "problème"},
\{"role": "assistant", "content": "réponse"},
\{"role": "user", "content": "résultat du code"},
\{"role": "assistant", "content": "réponse du modèle"},
]
metadata :     lot de ce dont l'environnement a besoin pour garder une trace. C'est-à-dire
solutions mathématiques, tests unitaires de code, ou états d'agent. Peut être None si l'épisode est terminé.

Retourne :

* Un tuple EnvironmentReturn contenant les observations, métadonnées, chaînes d'arrêt suivantes, récompenses et indicateurs de fin.

```python
global_post_process_and_metrics(batch: nemo_rl.distributed.batched_data_dict.BatchedDataDict) -> tuple[nemo_rl.distributed.batched_data_dict.BatchedDataDict, dict]
```

Fonction de post-traitement après que tous les rollouts sont terminés pour le lot et retourne des métriques.