[openai_api_base support] - ft/Added openai OPENAI_API_BASE llm config support (#1737)
This commit is contained in:
@@ -14,6 +14,8 @@ class BaseEmbedderConfig(ABC):
|
|||||||
embedding_dims: Optional[int] = None,
|
embedding_dims: Optional[int] = None,
|
||||||
# Ollama specific
|
# Ollama specific
|
||||||
ollama_base_url: Optional[str] = None,
|
ollama_base_url: Optional[str] = None,
|
||||||
|
# Openai specific
|
||||||
|
openai_base_url: Optional[str] = None,
|
||||||
# Huggingface specific
|
# Huggingface specific
|
||||||
model_kwargs: Optional[dict] = None,
|
model_kwargs: Optional[dict] = None,
|
||||||
):
|
):
|
||||||
@@ -30,11 +32,13 @@ class BaseEmbedderConfig(ABC):
|
|||||||
:type ollama_base_url: Optional[str], optional
|
:type ollama_base_url: Optional[str], optional
|
||||||
:param model_kwargs: key-value arguments for the huggingface embedding model, defaults a dict inside init
|
:param model_kwargs: key-value arguments for the huggingface embedding model, defaults a dict inside init
|
||||||
:type model_kwargs: Optional[Dict[str, Any]], defaults a dict inside init
|
:type model_kwargs: Optional[Dict[str, Any]], defaults a dict inside init
|
||||||
|
:param openai_base_url: Openai base URL to be use, defaults to "https://api.openai.com/v1"
|
||||||
|
:type openai_base_url: Optional[str], optional
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.model = model
|
self.model = model
|
||||||
self.api_key = api_key
|
self.api_key = api_key
|
||||||
|
self.openai_base_url = openai_base_url
|
||||||
self.embedding_dims = embedding_dims
|
self.embedding_dims = embedding_dims
|
||||||
|
|
||||||
# Ollama specific
|
# Ollama specific
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ class BaseLlmConfig(ABC):
|
|||||||
models: Optional[list[str]] = None,
|
models: Optional[list[str]] = None,
|
||||||
route: Optional[str] = "fallback",
|
route: Optional[str] = "fallback",
|
||||||
openrouter_base_url: Optional[str] = "https://openrouter.ai/api/v1",
|
openrouter_base_url: Optional[str] = "https://openrouter.ai/api/v1",
|
||||||
|
# Openai specific
|
||||||
|
openai_base_url: Optional[str] = "https://api.openai.com/v1",
|
||||||
site_url: Optional[str] = None,
|
site_url: Optional[str] = None,
|
||||||
app_name: Optional[str] = None,
|
app_name: Optional[str] = None,
|
||||||
# Ollama specific
|
# Ollama specific
|
||||||
@@ -53,6 +55,8 @@ class BaseLlmConfig(ABC):
|
|||||||
:type app_name: Optional[str], optional
|
:type app_name: Optional[str], optional
|
||||||
:param ollama_base_url: The base URL of the LLM, defaults to None
|
:param ollama_base_url: The base URL of the LLM, defaults to None
|
||||||
:type ollama_base_url: Optional[str], optional
|
:type ollama_base_url: Optional[str], optional
|
||||||
|
:param openai_base_url: Openai base URL to be use, defaults to "https://api.openai.com/v1"
|
||||||
|
:type openai_base_url: Optional[str], optional
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.model = model
|
self.model = model
|
||||||
@@ -66,6 +70,7 @@ class BaseLlmConfig(ABC):
|
|||||||
self.models = models
|
self.models = models
|
||||||
self.route = route
|
self.route = route
|
||||||
self.openrouter_base_url = openrouter_base_url
|
self.openrouter_base_url = openrouter_base_url
|
||||||
|
self.openai_base_url = openai_base_url
|
||||||
self.site_url = site_url
|
self.site_url = site_url
|
||||||
self.app_name = app_name
|
self.app_name = app_name
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ class OpenAIEmbedding(EmbeddingBase):
|
|||||||
self.config.embedding_dims = self.config.embedding_dims or 1536
|
self.config.embedding_dims = self.config.embedding_dims or 1536
|
||||||
|
|
||||||
api_key = os.getenv("OPENAI_API_KEY") or self.config.api_key
|
api_key = os.getenv("OPENAI_API_KEY") or self.config.api_key
|
||||||
self.client = OpenAI(api_key=api_key)
|
base_url = os.getenv("OPENAI_API_BASE") or self.config.openai_base_url
|
||||||
|
self.client = OpenAI(api_key=api_key, base_url=base_url)
|
||||||
|
|
||||||
def embed(self, text):
|
def embed(self, text):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ class OpenAILLM(LLMBase):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
api_key = os.getenv("OPENAI_API_KEY") or self.config.api_key
|
api_key = os.getenv("OPENAI_API_KEY") or self.config.api_key
|
||||||
self.client = OpenAI(api_key=api_key)
|
base_url = os.getenv("OPENAI_API_BASE") or self.config.openai_base_url
|
||||||
|
self.client = OpenAI(api_key=api_key, base_url=base_url)
|
||||||
|
|
||||||
def _parse_response(self, response, tools):
|
def _parse_response(self, response, tools):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user