Enhance HuggingFaceAPI to support additional provider API paths; refactor Completions and AsyncCompletions to use client.api_key and client.base_url

This commit is contained in:
hlohaus
2025-12-10 14:19:10 +01:00
parent 1032b165fe
commit 1467d7ec44
3 changed files with 16 additions and 5 deletions

View File

@@ -89,7 +89,16 @@ class HuggingFaceAPI(OpenaiTemplate):
raise ModelNotFoundError(f"Model is not supported: {model} in: {cls.__name__}")
error = None
for provider_key in provider_mapping:
api_path = "groq/openai/v1" if provider_key == "groq" else "novita/v3/openai" if provider_key == "novita" else f"{provider_key}/v1"
if provider_key == "zai-org":
api_path = "zai-org/api/paas/v4"
elif provider_key == "novita":
api_path = "novita/v3/openai"
elif provider_key == "groq":
api_path = "groq/openai/v1"
elif provider_key == "hf-inference":
api_path = f"{provider_key}/models/{model}/v1"
else:
api_path = f"{provider_key}/v1"
api_base = f"https://router.huggingface.co/{api_path}"
task = provider_mapping[provider_key]["task"]
if task != "conversational":

View File

@@ -308,7 +308,6 @@ class Completions:
response_format: Optional[dict] = None,
max_tokens: Optional[int] = None,
stop: Optional[Union[list[str], str]] = None,
api_key: Optional[str] = None,
ignore_stream: Optional[bool] = False,
raw: Optional[bool] = False,
**kwargs
@@ -337,7 +336,8 @@ class Completions:
proxy=self.client.proxy if proxy is None else proxy,
max_tokens=max_tokens,
stop=stop,
api_key=self.client.api_key if api_key is None else api_key
api_key=self.client.api_key,
api_base=self.client.base_url
),
**kwargs
)
@@ -646,7 +646,6 @@ class AsyncCompletions:
response_format: Optional[dict] = None,
max_tokens: Optional[int] = None,
stop: Optional[Union[list[str], str]] = None,
api_key: Optional[str] = None,
ignore_stream: Optional[bool] = False,
raw: Optional[bool] = False,
**kwargs
@@ -675,7 +674,8 @@ class AsyncCompletions:
proxy=self.client.proxy if proxy is None else proxy,
max_tokens=max_tokens,
stop=stop,
api_key=self.client.api_key if api_key is None else api_key
api_key=self.client.api_key,
api_base=self.client.base_url
),
**kwargs
)

View File

@@ -15,11 +15,13 @@ class Client():
self,
api_key: str = None,
proxies: Proxies = None,
base_url: str = None,
**kwargs
) -> None:
self.api_key: str = api_key
self.proxies = proxies
self.proxy: str = self.get_proxy()
self.base_url: str = base_url
def get_proxy(self) -> Union[str, None]:
if isinstance(self.proxies, str):