feat(model): Add support for Azure openAI (#1137)

Co-authored-by: like <406979945@qq.com>
Co-authored-by: csunny <cfqsunny@163.com>
This commit is contained in:
Likename Haojie
2024-02-02 16:41:29 +08:00
committed by GitHub
parent 208d91dea0
commit 3f70da4e1f
3 changed files with 179 additions and 7 deletions

View File

@@ -37,6 +37,7 @@ class OpenAIParameters:
api_base: Optional[str] = None
api_key: Optional[str] = None
api_version: Optional[str] = None
api_azure_deployment: Optional[str] = None
full_url: Optional[str] = None
proxies: Optional["ProxiesTypes"] = None
@@ -71,6 +72,9 @@ def _initialize_openai_v1(init_params: OpenAIParameters):
)
api_version = api_version or os.getenv("OPENAI_API_VERSION")
api_azure_deployment = init_params.api_azure_deployment or os.getenv(
"API_AZURE_DEPLOYMENT"
)
if not base_url and full_url:
base_url = full_url.split("/chat/completions")[0]
@@ -81,11 +85,8 @@ def _initialize_openai_v1(init_params: OpenAIParameters):
if base_url.endswith("/"):
base_url = base_url[:-1]
openai_params = {
"api_key": api_key,
"base_url": base_url,
}
return openai_params, api_type, api_version
openai_params = {"api_key": api_key, "base_url": base_url}
return openai_params, api_type, api_version, api_azure_deployment
def _initialize_openai(params: OpenAIParameters):
@@ -127,13 +128,16 @@ def _initialize_openai(params: OpenAIParameters):
def _build_openai_client(init_params: OpenAIParameters) -> Tuple[str, ClientType]:
import httpx
openai_params, api_type, api_version = _initialize_openai_v1(init_params)
openai_params, api_type, api_version, api_azure_deployment = _initialize_openai_v1(
init_params
)
if api_type == "azure":
from openai import AsyncAzureOpenAI
return api_type, AsyncAzureOpenAI(
api_key=openai_params["api_key"],
api_version=api_version,
azure_deployment=api_azure_deployment,
azure_endpoint=openai_params["base_url"],
http_client=httpx.AsyncClient(proxies=init_params.proxies),
)