diff --git a/g4f/Provider/needs_auth/hf/HuggingFaceAPI.py b/g4f/Provider/needs_auth/hf/HuggingFaceAPI.py index 538b6a0c..2ce1609d 100644 --- a/g4f/Provider/needs_auth/hf/HuggingFaceAPI.py +++ b/g4f/Provider/needs_auth/hf/HuggingFaceAPI.py @@ -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": diff --git a/g4f/client/__init__.py b/g4f/client/__init__.py index 0c6dcd78..ac8a42bb 100644 --- a/g4f/client/__init__.py +++ b/g4f/client/__init__.py @@ -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 ) diff --git a/g4f/client/types.py b/g4f/client/types.py index 785f3d8b..eb2400ac 100644 --- a/g4f/client/types.py +++ b/g4f/client/types.py @@ -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):