Source code for oumi.inference.openai_inference_engine
# Copyright 2025 - Oumi## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.importcopyfromtypingimportAny,Optionalfromtyping_extensionsimportoverridefromoumi.core.configsimportGenerationParams,ModelParams,RemoteParamsfromoumi.core.types.conversationimportConversationfromoumi.inference.remote_inference_engineimportRemoteInferenceEngine
[docs]classOpenAIInferenceEngine(RemoteInferenceEngine):"""Engine for running inference against the OpenAI API."""@property@overridedefbase_url(self)->Optional[str]:"""Return the default base URL for the OpenAI API."""return"https://api.openai.com/v1/chat/completions"@property@overridedefapi_key_env_varname(self)->Optional[str]:"""Return the default environment variable name for the OpenAI API key."""return"OPENAI_API_KEY"@overridedef_convert_conversation_to_api_input(self,conversation:Conversation,generation_params:GenerationParams,model_params:ModelParams,)->dict[str,Any]:"""Converts a conversation to an OpenAI input. Documentation: https://platform.openai.com/docs/api-reference/chat/create Args: conversation: The conversation to convert. generation_params: Parameters for generation during inference. model_params: Model parameters to use during inference. Returns: Dict[str, Any]: A dictionary representing the OpenAI input. """ifmodel_params.model_name=="o1-preview":generation_params=copy.deepcopy(generation_params)# o1-preview does NOT support logit_bias.generation_params.logit_bias={}# o1-preview only supports temperature = 1.generation_params.temperature=1.0returnsuper()._convert_conversation_to_api_input(conversation=conversation,generation_params=generation_params,model_params=model_params,)@overridedef_default_remote_params(self)->RemoteParams:"""Returns the default remote parameters."""returnRemoteParams(num_workers=50,politeness_policy=60.0)