From 88d2d73eceafe26772f6fc742ae448a39637c5ca Mon Sep 17 00:00:00 2001
From: bdqfork <bdqsky@163.com>
Date: Fri, 1 Mar 2024 21:47:13 +0800
Subject: [PATCH] Support openai base_url

---
 semantic_router/encoders/openai.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

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 @@ class OpenAIEncoder(BaseEncoder):
             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}"
-- 
GitLab