Skip to content

Commit 0a5d806

Browse files
fix: update route models (#198)
Co-authored-by: abhijit <abhijitastlar@gmail.com>
1 parent e246ac6 commit 0a5d806

2 files changed

Lines changed: 25 additions & 39 deletions

File tree

javelin_sdk/client.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ def register_provider(
198198
"/"
199199
) # Remove trailing slash if present
200200

201-
# default route name to provider name if not provided
202-
route_name = route_name or provider_name
201+
# Update Javelin headers into the client's _custom_headers
202+
openai_client._custom_headers["x-javelin-provider"] = base_url_str
203203
openai_client._custom_headers["x-javelin-route"] = route_name
204204

205205
# Store the original methods only if not already stored
@@ -521,12 +521,12 @@ def get_nested_attr(obj, attr_path):
521521

522522
return openai_client
523523

524-
def register_openai(self, openai_client: Any, route_name: str = "") -> Any:
524+
def register_openai(self, openai_client: Any, route_name: str = None) -> Any:
525525
return self.register_provider(
526526
openai_client, provider_name="openai", route_name=route_name
527527
)
528528

529-
def register_azureopenai(self, openai_client: Any, route_name: str = "") -> Any:
529+
def register_azureopenai(self, openai_client: Any, route_name: str = None) -> Any:
530530
return self.register_provider(
531531
openai_client, provider_name="azureopenai", route_name=route_name
532532
)
@@ -546,7 +546,7 @@ def register_bedrock(
546546
bedrock_runtime_client: Any,
547547
bedrock_client: Any = None,
548548
bedrock_session: Any = None,
549-
route_name: str = "",
549+
route_name: str = None,
550550
) -> None:
551551
"""
552552
Register an AWS Bedrock Runtime client
@@ -583,7 +583,7 @@ def register_bedrock(
583583
self.bedrock_runtime_client = bedrock_runtime_client
584584

585585
if not route_name:
586-
route_name = "amazon"
586+
route_name = "awsbedrock"
587587

588588
# Store the default bedrock route
589589
if route_name is not None:

javelin_sdk/models.py

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -114,44 +114,31 @@ class ContentFilter(BaseModel):
114114
)
115115

116116

117-
class RouteConfig(BaseModel):
118-
rate_limit: Optional[int] = Field(
119-
default=None, description="Rate limit for the route"
120-
)
121-
owner: Optional[str] = Field(default=None, description="Owner of the route")
122-
organization: Optional[str] = Field(
123-
default=None, description="Organization associated with the route"
124-
)
125-
archive: Optional[bool] = Field(
126-
default=None, description="Whether archiving is enabled"
127-
)
128-
retries: Optional[int] = Field(
129-
default=None, description="Number of retries for the route"
130-
)
131-
llm_cache: bool = Field(False, description="Whether LLM cache is enabled")
132-
role_to_assume: Optional[str] = Field(
133-
None, description="Role to assume for the route"
134-
)
135-
enable_telemetry: Optional[bool] = Field(
136-
None, description="Whether telemetry is enabled"
137-
)
117+
class ArchivePolicy(BaseModel):
118+
enabled: Optional[bool] = Field(default=None, description="Whether archiving is enabled")
138119
retention: Optional[int] = Field(default=None, description="Data retention period")
120+
121+
122+
class Policy(BaseModel):
123+
dlp: Optional[Dlp] = Field(default=None, description="DLP configuration")
124+
archive: Optional[ArchivePolicy] = Field(default=None, description="Archive policy configuration")
125+
enabled: Optional[bool] = Field(default=None, description="Whether the policy is enabled")
126+
prompt_safety: Optional[PromptSafety] = Field(default=None, description="Prompt Safety Description")
127+
content_filter: Optional[ContentFilter] = Field(default=None, description="Content Filter Description")
128+
security_filters: Optional[SecurityFilters] = Field(default=None, description="Security Filters Description")
129+
130+
131+
class RouteConfig(BaseModel):
132+
policy: Optional[Policy] = Field(default=None, description="Policy configuration")
133+
retries: Optional[int] = Field(default=None, description="Number of retries for the route")
134+
rate_limit: Optional[int] = Field(default=None, description="Rate limit for the route")
135+
unified_endpoint: Optional[bool] = Field(default=None, description="Whether unified endpoint is enabled")
139136
request_chain: Optional[Dict[str, Any]] = Field(
140137
None, description="Request chain configuration"
141138
)
142139
response_chain: Optional[Dict[str, Any]] = Field(
143140
None, description="Response chain configuration"
144141
)
145-
dlp: Optional[Dlp] = Field(default=None, description="DLP configuration")
146-
content_filter: Optional[ContentFilter] = Field(
147-
default=None, description="Content Filter Description"
148-
)
149-
prompt_safety: Optional[PromptSafety] = Field(
150-
default=None, description="Prompt Safety Description"
151-
)
152-
security_filters: Optional[SecurityFilters] = Field(
153-
default=None, description="Security Filters Description"
154-
)
155142

156143

157144
class Model(BaseModel):
@@ -354,6 +341,7 @@ class SecretType(str, Enum):
354341
AWS = "aws"
355342
KUBERNETES = "kubernetes"
356343

344+
357345
class Secret(BaseModel):
358346
api_key: str = Field(default=None, description="Key of the Secret")
359347
api_key_secret_name: str = Field(default=None, description="Name of the Secret")
@@ -370,8 +358,6 @@ class Secret(BaseModel):
370358
enabled: Optional[bool] = Field(
371359
default=True, description="Whether the secret is enabled"
372360
)
373-
secret_name: str = Field(default=None, description="Secret Name of the Secret")
374-
secrets_provider: SecretType = Field(default=SecretType.KUBERNETES, description="Type of the secret: aws or kubernetes")
375361

376362
def masked(self):
377363
"""

0 commit comments

Comments
 (0)