diff --git a/semantic_router/encoders/openai.py b/semantic_router/encoders/openai.py index 7699c3c1..de6c0599 100644 --- a/semantic_router/encoders/openai.py +++ b/semantic_router/encoders/openai.py @@ -20,6 +20,7 @@ class OpenAIEncoder(BaseEncoder): def __init__( self, name: Optional[str] = None, + openai_base_url: Optional[str] = None, openai_api_key: Optional[str] = None, openai_org_id: Optional[str] = None, score_threshold: float = 0.82, @@ -29,11 +30,14 @@ def __init__( name = EncoderDefault.OPENAI.value["embedding_model"] super().__init__(name=name, score_threshold=score_threshold) api_key = openai_api_key or os.getenv("OPENAI_API_KEY") + base_url = openai_base_url or os.getenv("OPENAI_BASE_URL") openai_org_id = openai_org_id or os.getenv("OPENAI_ORG_ID") if api_key is None: raise ValueError("OpenAI API key cannot be 'None'.") try: - self.client = openai.Client(api_key=api_key, organization=openai_org_id) + self.client = openai.Client( + base_url=base_url, api_key=api_key, organization=openai_org_id + ) except Exception as e: raise ValueError( f"OpenAI API client failed to initialize. Error: {e}"