nemo_gym.openai_utils#

Module Contents#

Classes#

TokenIDLogProbMixin

TokenIDLogProbTypedDictMixin

NeMoGymSummary

NeMoGymResponseReasoningItem

NeMoGymResponseOutputText

NeMoGymResponseOutputRefusal

NeMoGymResponseOutputMessage

NeMoGymEasyInputMessage

NeMoGymMessage

NeMoGymFunctionCallOutput

We copy openai.types.responses.response_input_param.FunctionCallOutput, originally a TypedDict, as a BaseModel here so that we can use it in the NeMoGymResponseOutputItem below and be consistent with the other ResponseOutputItem types.

NeMoGymResponseFunctionToolCall

NeMoGymResponseInputText

NeMoGymEasyInputMessageForTraining

NeMoGymMessageForTraining

NeMoGymResponseOutputMessageForTraining

NeMoGymResponseFunctionToolCallForTraining

NeMoGymResponseReasoningItemForTraining

NeMoGymResponseCreateParamsNonStreaming

This class is a copy of openai.types.responses.response_create_params.ResponseCreateParamsNonStreaming We make a copy of it here since ResponseCreateParamsNonStreaming is a TypedDict with no strict validation. We need to do server side validation here.

NeMoGymResponse

NeMoGymFunction

NeMoGymChatCompletionMessageToolCall

NeMoGymChatCompletionMessage

NeMoGymChatCompletionMessageForTraining

NeMoGymChoice

NeMoGymChatCompletion

NeMoGymFunctionDefinition

NeMoGymChatCompletionToolParam

NeMoGymChatCompletionContentPartTextParam

NeMoGymChatCompletionUserMessageParam

NeMoGymChatCompletionSystemMessageParam

NeMoGymChatCompletionDeveloperMessageParam

NeMoGymChatCompletionMessageToolCallFunctionParam

NeMoGymChatCompletionMessageToolCallParam

NeMoGymChatCompletionAssistantMessageParam

NeMoGymChatCompletionAssistantMessageForTrainingParam

NeMoGymChatCompletionToolMessageParam

NeMoGymFunctionToolParam

NeMoGymChatCompletionCreateParamsNonStreaming

NeMoGymAsyncOpenAI

This is just a stub class that wraps around aiohttp

Data#

API#

class nemo_gym.openai_utils.TokenIDLogProbMixin#

Bases: pydantic.BaseModel

prompt_token_ids: List[int]#

None

generation_token_ids: List[int]#

None

generation_log_probs: List[float]#

None

class nemo_gym.openai_utils.TokenIDLogProbTypedDictMixin#

Bases: typing_extensions.TypedDict

prompt_token_ids: List[int]#

None

generation_token_ids: List[int]#

None

generation_log_probs: List[float]#

None

class nemo_gym.openai_utils.NeMoGymSummary#

Bases: openai.types.responses.response_reasoning_item.Summary

class nemo_gym.openai_utils.NeMoGymResponseReasoningItem#

Bases: pydantic.BaseModel

id: str#

None

summary: List[nemo_gym.openai_utils.NeMoGymSummary]#

None

type: Literal[reasoning]#

‘reasoning’

encrypted_content: Optional[str]#

None

class nemo_gym.openai_utils.NeMoGymResponseOutputText#

Bases: pydantic.BaseModel

annotations: List[openai.types.responses.response_output_text_param.Annotation]#

None

text: str#

None

type: Literal[output_text]#

‘output_text’

logprobs: Optional[List[openai.types.responses.response_output_text_param.Logprob]]#

None

class nemo_gym.openai_utils.NeMoGymResponseOutputRefusal#

Bases: pydantic.BaseModel

refusal: str#

None

type: Literal[nemo_gym.openai_utils.NeMoGymResponseOutputRefusal.refusal]#

‘refusal’

nemo_gym.openai_utils.NeMoGymContent: TypeAlias#

None

class nemo_gym.openai_utils.NeMoGymResponseOutputMessage#

Bases: pydantic.BaseModel

id: str#

None

content: List[nemo_gym.openai_utils.NeMoGymContent]#

None

role: Literal[assistant]#

‘assistant’

status: Literal[in_progress, completed, incomplete]#

‘completed’

type: Literal[message]#

‘message’

class nemo_gym.openai_utils.NeMoGymEasyInputMessage#

Bases: pydantic.BaseModel

content: Union[str, openai.types.responses.response_input_param.ResponseInputMessageContentListParam]#

None

role: Literal[user, assistant, system, developer]#

None

type: Literal[message]#

‘message’

class nemo_gym.openai_utils.NeMoGymMessage#

Bases: pydantic.BaseModel

content: openai.types.responses.response_input_param.ResponseInputMessageContentListParam#

None

role: Literal[user, system, developer]#

None

status: Literal[in_progress, completed, incomplete]#

‘completed’

type: Literal[message]#

‘message’

class nemo_gym.openai_utils.NeMoGymFunctionCallOutput#

Bases: pydantic.BaseModel

We copy openai.types.responses.response_input_param.FunctionCallOutput, originally a TypedDict, as a BaseModel here so that we can use it in the NeMoGymResponseOutputItem below and be consistent with the other ResponseOutputItem types.

call_id: str#

None

output: str#

None

type: Literal[function_call_output]#

‘function_call_output’

id: Optional[str]#

None

status: Optional[Literal[in_progress, completed, incomplete]]#

None

class nemo_gym.openai_utils.NeMoGymResponseFunctionToolCall#

Bases: pydantic.BaseModel

arguments: str#

None

call_id: str#

None

name: str#

None

type: Literal[function_call]#

‘function_call’

id: Optional[str]#

None

status: Optional[Literal[in_progress, completed, incomplete]]#

None

class nemo_gym.openai_utils.NeMoGymResponseInputText#

Bases: openai.types.responses.ResponseInputTextParam

class nemo_gym.openai_utils.NeMoGymEasyInputMessageForTraining#

Bases: nemo_gym.openai_utils.NeMoGymEasyInputMessage, nemo_gym.openai_utils.TokenIDLogProbMixin

class nemo_gym.openai_utils.NeMoGymMessageForTraining#

Bases: nemo_gym.openai_utils.NeMoGymMessage, nemo_gym.openai_utils.TokenIDLogProbMixin

class nemo_gym.openai_utils.NeMoGymResponseOutputMessageForTraining#

Bases: nemo_gym.openai_utils.NeMoGymResponseOutputMessage, nemo_gym.openai_utils.TokenIDLogProbMixin

class nemo_gym.openai_utils.NeMoGymResponseFunctionToolCallForTraining#

Bases: nemo_gym.openai_utils.NeMoGymResponseFunctionToolCall, nemo_gym.openai_utils.TokenIDLogProbMixin

class nemo_gym.openai_utils.NeMoGymResponseReasoningItemForTraining#

Bases: nemo_gym.openai_utils.NeMoGymResponseReasoningItem, nemo_gym.openai_utils.TokenIDLogProbMixin

nemo_gym.openai_utils.RESPONSES_TO_TRAIN#

None

nemo_gym.openai_utils.NeMoGymResponseInputItem#

None

nemo_gym.openai_utils.NeMoGymResponseInput: TypeAlias#

None

class nemo_gym.openai_utils.NeMoGymResponseCreateParamsNonStreaming#

Bases: pydantic.BaseModel

This class is a copy of openai.types.responses.response_create_params.ResponseCreateParamsNonStreaming We make a copy of it here since ResponseCreateParamsNonStreaming is a TypedDict with no strict validation. We need to do server side validation here.

model_config#

‘ConfigDict(…)’

background: Optional[bool]#

None

include: Optional[List[openai.types.responses.response_create_params.ResponseIncludable]]#

None

input: Union[str, nemo_gym.openai_utils.NeMoGymResponseInput]#

None

instructions: Optional[str]#

None

max_output_tokens: Optional[int]#

None

max_tool_calls: Optional[int]#

None

metadata: Optional[openai.types.responses.response_create_params.Metadata]#

None

model: Optional[openai.types.responses.response_create_params.ResponsesModel]#

None

parallel_tool_calls: bool#

True

previous_response_id: Optional[str]#

None

prompt: Optional[openai.types.responses.response_create_params.ResponsePromptParam]#

None

reasoning: Optional[openai.types.responses.response_create_params.Reasoning]#

None

service_tier: Optional[Literal[auto, default, flex, scale, priority]]#

None

store: Optional[bool]#

None

temperature: Optional[float]#

None

text: Optional[openai.types.responses.response_create_params.ResponseTextConfigParam]#

None

tool_choice: openai.types.responses.response_create_params.ToolChoice#

‘auto’

tools: List[openai.types.responses.response_create_params.ToolParam]#

‘Field(…)’

top_logprobs: Optional[int]#

None

top_p: Optional[float]#

None

truncation: Optional[Literal[auto, disabled]]#

None

user: Optional[str]#

None

stream: Optional[Literal[False]]#

None

nemo_gym.openai_utils.NeMoGymResponseOutputItem#

None

class nemo_gym.openai_utils.NeMoGymResponse#

Bases: openai.types.responses.Response

output: List[nemo_gym.openai_utils.NeMoGymResponseOutputItem]#

None

class nemo_gym.openai_utils.NeMoGymFunction#

Bases: pydantic.BaseModel

arguments: str#

None

name: str#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCall#

Bases: openai.types.chat.ChatCompletionMessageToolCall

function: nemo_gym.openai_utils.NeMoGymFunction#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionMessage#

Bases: openai.types.chat.ChatCompletionMessage

tool_calls: Optional[List[nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCall]]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionMessageForTraining#

Bases: nemo_gym.openai_utils.NeMoGymChatCompletionMessage, nemo_gym.openai_utils.TokenIDLogProbMixin

class nemo_gym.openai_utils.NeMoGymChoice#

Bases: openai.types.chat.chat_completion.Choice

message: Union[nemo_gym.openai_utils.NeMoGymChatCompletionMessage, nemo_gym.openai_utils.NeMoGymChatCompletionMessageForTraining]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletion#

Bases: openai.types.chat.ChatCompletion

choices: List[nemo_gym.openai_utils.NeMoGymChoice]#

None

class nemo_gym.openai_utils.NeMoGymFunctionDefinition#

Bases: openai.types.shared_params.FunctionDefinition

class nemo_gym.openai_utils.NeMoGymChatCompletionToolParam#

Bases: openai.types.chat.ChatCompletionToolParam

function: Required[nemo_gym.openai_utils.NeMoGymFunctionDefinition]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionContentPartTextParam#

Bases: openai.types.chat.ChatCompletionContentPartTextParam

class nemo_gym.openai_utils.NeMoGymChatCompletionUserMessageParam#

Bases: openai.types.chat.ChatCompletionUserMessageParam

content: Required[Union[str, List[nemo_gym.openai_utils.NeMoGymChatCompletionContentPartTextParam]]]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionSystemMessageParam#

Bases: openai.types.chat.ChatCompletionSystemMessageParam

content: Required[Union[str, List[nemo_gym.openai_utils.NeMoGymChatCompletionContentPartTextParam]]]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionDeveloperMessageParam#

Bases: openai.types.chat.ChatCompletionDeveloperMessageParam

content: Required[Union[str, List[nemo_gym.openai_utils.NeMoGymChatCompletionContentPartTextParam]]]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCallFunctionParam#

Bases: typing_extensions.TypedDict

arguments: Required[str]#

None

name: Required[str]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCallParam#

Bases: openai.types.chat.ChatCompletionMessageToolCallParam

function: nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCallFunctionParam#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionAssistantMessageParam#

Bases: openai.types.chat.ChatCompletionAssistantMessageParam

content: Union[str, List[openai.types.chat.chat_completion_assistant_message_param.ContentArrayOfContentPart], None]#

None

tool_calls: Optional[List[nemo_gym.openai_utils.NeMoGymChatCompletionMessageToolCallParam]]#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionAssistantMessageForTrainingParam#

Bases: nemo_gym.openai_utils.NeMoGymChatCompletionAssistantMessageParam, nemo_gym.openai_utils.TokenIDLogProbTypedDictMixin

class nemo_gym.openai_utils.NeMoGymChatCompletionToolMessageParam#

Bases: openai.types.chat.ChatCompletionToolMessageParam

content: Required[Union[str, List[nemo_gym.openai_utils.NeMoGymChatCompletionContentPartTextParam]]]#

None

class nemo_gym.openai_utils.NeMoGymFunctionToolParam#

Bases: openai.types.responses.FunctionToolParam

nemo_gym.openai_utils.NeMoGymChatCompletionMessageParam: TypeAlias#

None

class nemo_gym.openai_utils.NeMoGymChatCompletionCreateParamsNonStreaming#

Bases: pydantic.BaseModel

messages: List[nemo_gym.openai_utils.NeMoGymChatCompletionMessageParam]#

None

model: Optional[Union[str, openai.types.shared.chat_model.ChatModel]]#

None

audio: Optional[openai.types.chat.completion_create_params.ChatCompletionAudioParam]#

None

frequency_penalty: Optional[float]#

None

logit_bias: Optional[Dict[str, int]]#

None

logprobs: Optional[bool]#

None

max_completion_tokens: Optional[int]#

None

max_tokens: Optional[int]#

None

metadata: Optional[openai.types.responses.response_create_params.Metadata]#

None

modalities: Optional[List[Literal[text, nemo_gym.openai_utils.NeMoGymChatCompletionCreateParamsNonStreaming.audio]]]#

None

n: Optional[int]#

None

parallel_tool_calls: bool#

True

prediction: Optional[openai.types.chat.completion_create_params.ChatCompletionPredictionContentParam]#

None

presence_penalty: Optional[float]#

None

reasoning_effort: Optional[openai.types.chat.completion_create_params.ReasoningEffort]#

None

response_format: Optional[openai.types.chat.completion_create_params.ResponseFormat]#

None

seed: Optional[int]#

None

service_tier: Optional[Literal[auto, default, flex, scale, priority]]#

None

stop: Union[Optional[str], List[str], None]#

None

store: Optional[bool]#

None

stream_options: Optional[openai.types.chat.completion_create_params.ChatCompletionStreamOptionsParam]#

None

temperature: Optional[float]#

None

tool_choice: Optional[openai.types.chat.completion_create_params.ChatCompletionToolChoiceOptionParam]#

None

tools: Optional[List[nemo_gym.openai_utils.NeMoGymChatCompletionToolParam]]#

None

top_logprobs: Optional[int]#

None

top_p: Optional[float]#

None

user: Optional[str]#

None

web_search_options: Optional[openai.types.chat.completion_create_params.WebSearchOptions]#

None

stream: Optional[Literal[False]]#

None

nemo_gym.openai_utils.RATE_LIMIT_ERROR_CODES#

[429, 502, 503, 504, 520]

nemo_gym.openai_utils.RETRY_ERROR_CODES#

None

class nemo_gym.openai_utils.NeMoGymAsyncOpenAI#

Bases: pydantic.BaseModel

This is just a stub class that wraps around aiohttp

base_url: str#

None

api_key: str#

None

internal: bool#

‘Field(…)’

async _request(
**request_kwargs: Dict,
) nemo_gym.server_utils.ClientResponse#
async _raise_for_status(
response: nemo_gym.server_utils.ClientResponse,
request_kwargs: Dict[str, Any],
) None#
async create_chat_completion(**kwargs)#
async create_response(**kwargs)#
async create_tokenize(**kwargs)#