From 980354b78bfcda1247989ce854f51a68d3a2a16f Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Tue, 11 Mar 2025 16:12:36 -0700 Subject: [PATCH] add validate_environment, get_complete_url --- .../llms/openai/responses/transformation.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/litellm/llms/openai/responses/transformation.py b/litellm/llms/openai/responses/transformation.py index bff4e12dfb5..7c52679e7f9 100644 --- a/litellm/llms/openai/responses/transformation.py +++ b/litellm/llms/openai/responses/transformation.py @@ -1,4 +1,8 @@ +from typing import Optional + +import litellm from litellm.llms.base_llm.responses.transformation import BaseResponsesAPIConfig +from litellm.secret_managers.main import get_secret_str from litellm.types.llms.openai import ResponsesAPIRequestParams @@ -61,3 +65,44 @@ class OpenAIResponsesAPIConfig(BaseResponsesAPIConfig): extra_body=optional_params.get("extra_body"), timeout=optional_params.get("timeout"), ) + + def validate_environment( + self, + headers: dict, + model: str, + api_key: Optional[str] = None, + ) -> dict: + api_key = ( + api_key + or litellm.api_key + or litellm.openai_key + or get_secret_str("OPENAI_API_KEY") + ) + headers.update( + { + "Authorization": f"Bearer {api_key}", + } + ) + return headers + + def get_complete_url( + self, + api_base: Optional[str], + model: str, + optional_params: dict, + stream: Optional[bool] = None, + ) -> str: + """ + Get the endpoint for OpenAI responses API + """ + api_base = ( + api_base + or litellm.api_base + or get_secret_str("OPENAI_API_BASE") + or "https://api.openai.com/v1" + ) + + # Remove trailing slashes + api_base = api_base.rstrip("/") + + return f"{api_base}/responses"