nemo_rl.models.generation.dynamo.token_wrapper#
OpenAI-compatible token wrapper for NeMo-Gym traffic to Dynamo.
Module Contents#
Classes#
Small HTTP server that supplies tokenized chat prompts to Dynamo. |
Functions#
Return the exact prompt and generation IDs from the latest model turn. |
|
Make OpenAI tool calls renderable by model chat templates. |
|
Expose Dynamo engine metadata on the message fields consumed by Gym. |
|
Prepare a NeMo-Gym chat-completion request for Dynamo token input. |
Data#
API#
- nemo_rl.models.generation.dynamo.token_wrapper._GYM_TOKEN_METADATA_FIELDS#
(‘prompt_token_ids’, ‘generation_token_ids’, ‘generation_log_probs’)
- nemo_rl.models.generation.dynamo.token_wrapper._TOOL_ARGUMENT_MAPPING_ERROR#
‘Can only get item pairs from a mapping.’
- nemo_rl.models.generation.dynamo.token_wrapper._coerce_token_id_list(value: Any, field_name: str) list[int]#
- nemo_rl.models.generation.dynamo.token_wrapper._coerce_logprob_list(
- value: Any,
- field_name: str,
- nemo_rl.models.generation.dynamo.token_wrapper._strip_gym_token_metadata(
- messages: list[Any],
- nemo_rl.models.generation.dynamo.token_wrapper._chat_template_kwargs(
- request_body: dict[str, Any],
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]],
- nemo_rl.models.generation.dynamo.token_wrapper._request_add_generation_prompt(
- request_body: dict[str, Any],
- nemo_rl.models.generation.dynamo.token_wrapper._apply_chat_template(
- *,
- tokenizer: Any,
- request_body: dict[str, Any],
- messages: list[Any],
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]],
- exclude_tools_when_tool_choice_none: bool,
- add_generation_prompt: bool,
- tokenize: bool,
- nemo_rl.models.generation.dynamo.token_wrapper._render_prompt_token_ids(
- *,
- tokenizer: Any,
- request_body: dict[str, Any],
- messages: list[Any],
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]],
- exclude_tools_when_tool_choice_none: bool,
- add_generation_prompt: bool,
- nemo_rl.models.generation.dynamo.token_wrapper._render_prompt_token_ids_with_optional_prefix(
- *,
- tokenizer: Any,
- request_body: dict[str, Any],
- messages: list[Any],
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]],
- exclude_tools_when_tool_choice_none: bool,
- add_generation_prompt: bool,
- assistant_index: int | None,
- nemo_rl.models.generation.dynamo.token_wrapper._latest_tokenized_assistant_index(
- messages: list[Any],
- nemo_rl.models.generation.dynamo.token_wrapper._derive_required_prefix_token_ids(
- messages: list[Any],
Return the exact prompt and generation IDs from the latest model turn.
- nemo_rl.models.generation.dynamo.token_wrapper._normalize_tool_arguments_for_template(
- messages: list[Any],
- *,
- before_index: int,
Make OpenAI tool calls renderable by model chat templates.
OpenAI chat messages carry
function.argumentsas a JSON string, while some model templates iterate those arguments as a mapping. Normalize only the local template copy; the request forwarded to Dynamo retains its original OpenAI payload.
- nemo_rl.models.generation.dynamo.token_wrapper._validate_engine_data(
- response_body: dict[str, Any],
- nemo_rl.models.generation.dynamo.token_wrapper._inject_gym_token_metadata(
- response_body: dict[str, Any],
Expose Dynamo engine metadata on the message fields consumed by Gym.
- nemo_rl.models.generation.dynamo.token_wrapper.prepare_dynamo_chat_completion_request(
- request_body: dict[str, Any],
- *,
- tokenizer: Any,
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]] = None,
- exclude_tools_when_tool_choice_none: bool,
Prepare a NeMo-Gym chat-completion request for Dynamo token input.
- class nemo_rl.models.generation.dynamo.token_wrapper.DynamoTokenWrapperServer(
- *,
- dynamo_frontend_base_url: str,
- tokenizer: Any,
- tokenizer_chat_template_kwargs: Optional[dict[str, Any]],
- exclude_tools_when_tool_choice_none: bool,
- request_timeout_s: Optional[float],
Small HTTP server that supplies tokenized chat prompts to Dynamo.
Initialization
- start() str#
Start the wrapper in a background uvicorn thread.
- async _forward_chat_completion(
- request_body: dict[str, Any],
- *,
- authorization: Optional[str],
- shutdown() None#
Stop the background uvicorn server.