[openai_api_base support] - ft/Added openai OPENAI_API_BASE llm config support (#1737)

This commit is contained in:
ParseDark
2024-08-25 18:55:14 +08:00
committed by GitHub
parent 3fb4f2655b
commit b80925e857
4 changed files with 14 additions and 3 deletions

View File

@@ -14,6 +14,8 @@ class BaseEmbedderConfig(ABC):
embedding_dims: Optional[int] = None,
# Ollama specific
ollama_base_url: Optional[str] = None,
# Openai specific
openai_base_url: Optional[str] = None,
# Huggingface specific
model_kwargs: Optional[dict] = None,
):
@@ -30,11 +32,13 @@ class BaseEmbedderConfig(ABC):
:type ollama_base_url: Optional[str], optional
: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
: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.api_key = api_key
self.openai_base_url = openai_base_url
self.embedding_dims = embedding_dims
# Ollama specific

View File

@@ -19,6 +19,8 @@ class BaseLlmConfig(ABC):
models: Optional[list[str]] = None,
route: Optional[str] = "fallback",
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,
app_name: Optional[str] = None,
# Ollama specific
@@ -53,6 +55,8 @@ class BaseLlmConfig(ABC):
:type app_name: Optional[str], optional
:param ollama_base_url: The base URL of the LLM, defaults to None
: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
@@ -66,6 +70,7 @@ class BaseLlmConfig(ABC):
self.models = models
self.route = route
self.openrouter_base_url = openrouter_base_url
self.openai_base_url = openai_base_url
self.site_url = site_url
self.app_name = app_name

View File

@@ -15,7 +15,8 @@ class OpenAIEmbedding(EmbeddingBase):
self.config.embedding_dims = self.config.embedding_dims or 1536
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):
"""

View File

@@ -22,7 +22,8 @@ class OpenAILLM(LLMBase):
)
else:
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):
"""