From dbb05a9caddf50cb27afa805ffd71c5012a7ab00 Mon Sep 17 00:00:00 2001 From: abhijit Date: Thu, 15 May 2025 09:02:56 +0530 Subject: [PATCH] feat: update universal endpoint scripts --- examples/azure-openai/azure-universal.py | 8 ++------ examples/bedrock/bedrock_client_universal.py | 3 +-- examples/openai/openai-universal.py | 7 ++----- javelin_sdk/client.py | 13 ++++++++----- javelin_sdk/models.py | 5 +++++ 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/azure-openai/azure-universal.py b/examples/azure-openai/azure-universal.py index 3489c8e..328b8ba 100644 --- a/examples/azure-openai/azure-universal.py +++ b/examples/azure-openai/azure-universal.py @@ -31,17 +31,13 @@ def initialize_client(): # Create the Azure client azure_client = AzureOpenAI( - # Typically "2023-07-01-preview" or a more recent version - api_version="2023-07-01-preview", - azure_endpoint="https://javelinpreview.openai.azure.com", - api_key=azure_openai_api_key, + api_version="2023-09-15-preview" ) # Initialize the Javelin client and register the Azure client config = JavelinConfig(javelin_api_key=javelin_api_key) javelin_client = JavelinClient(config) - rout_name = "azureopenai_univ" # Define the unversal route name - javelin_client.register_azureopenai(azure_client, route_name=rout_name) + javelin_client.register_azureopenai(azure_client) return azure_client diff --git a/examples/bedrock/bedrock_client_universal.py b/examples/bedrock/bedrock_client_universal.py index 8375828..5e35213 100644 --- a/examples/bedrock/bedrock_client_universal.py +++ b/examples/bedrock/bedrock_client_universal.py @@ -26,8 +26,7 @@ def init_bedrock(): javelin_client = JavelinClient(config) javelin_client.register_bedrock( bedrock_runtime_client=bedrock_runtime_client, - bedrock_client=bedrock_client, - route_name="amazon_univ", + bedrock_client=bedrock_client ) return bedrock_runtime_client diff --git a/examples/openai/openai-universal.py b/examples/openai/openai-universal.py index f63bc92..caa1238 100644 --- a/examples/openai/openai-universal.py +++ b/examples/openai/openai-universal.py @@ -34,15 +34,12 @@ def init_javelin_client_sync(openai_client): """Initialize JavelinClient for synchronous usage and register the OpenAI route.""" try: # Set (and print) the Javelin key - javelin_api_key = os.getenv( - "JAVELIN_API_KEY" - ) # define your javelin api key here + javelin_api_key = os.getenv("JAVELIN_API_KEY") config = JavelinConfig( javelin_api_key=javelin_api_key, ) client = JavelinClient(config) - rout_name = "openai_univ" # define your universal route name here - client.register_openai(openai_client, route_name=rout_name) + client.register_openai(openai_client) return client except Exception as e: raise e diff --git a/javelin_sdk/client.py b/javelin_sdk/client.py index f8843d8..6498926 100644 --- a/javelin_sdk/client.py +++ b/javelin_sdk/client.py @@ -198,8 +198,8 @@ def register_provider( "/" ) # Remove trailing slash if present - # Update Javelin headers into the client's _custom_headers - openai_client._custom_headers["x-javelin-provider"] = base_url_str + # default route name to provider name if not provided + route_name = route_name or provider_name openai_client._custom_headers["x-javelin-route"] = route_name # Store the original methods only if not already stored @@ -521,12 +521,12 @@ def get_nested_attr(obj, attr_path): return openai_client - def register_openai(self, openai_client: Any, route_name: str = None) -> Any: + def register_openai(self, openai_client: Any, route_name: str = "") -> Any: return self.register_provider( openai_client, provider_name="openai", route_name=route_name ) - def register_azureopenai(self, openai_client: Any, route_name: str = None) -> Any: + def register_azureopenai(self, openai_client: Any, route_name: str = "") -> Any: return self.register_provider( openai_client, provider_name="azureopenai", route_name=route_name ) @@ -546,7 +546,7 @@ def register_bedrock( bedrock_runtime_client: Any, bedrock_client: Any = None, bedrock_session: Any = None, - route_name: str = None, + route_name: str = "", ) -> None: """ Register an AWS Bedrock Runtime client @@ -582,6 +582,9 @@ def register_bedrock( self.bedrock_session = bedrock_session self.bedrock_runtime_client = bedrock_runtime_client + if not route_name: + route_name = "amazon" + # Store the default bedrock route if route_name is not None: self.use_default_bedrock_route = True diff --git a/javelin_sdk/models.py b/javelin_sdk/models.py index 211a3d0..128813c 100644 --- a/javelin_sdk/models.py +++ b/javelin_sdk/models.py @@ -350,6 +350,9 @@ class Template(BaseModel): class Templates(BaseModel): templates: List[Template] = Field(default=[], description="List of templates") +class SecretType(str, Enum): + AWS = "aws" + KUBERNETES = "kubernetes" class Secret(BaseModel): api_key: str = Field(default=None, description="Key of the Secret") @@ -367,6 +370,8 @@ class Secret(BaseModel): enabled: Optional[bool] = Field( default=True, description="Whether the secret is enabled" ) + secret_name: str = Field(default=None, description="Secret Name of the Secret") + secrets_provider: SecretType = Field(default=SecretType.KUBERNETES, description="Type of the secret: aws or kubernetes") def masked(self): """