[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, 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

View File

@@ -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

View File

@@ -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):
""" """

View File

@@ -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):
""" """