25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
from typing import Optional
|
|
|
|
from huggingface_hub.hf_api import InferenceProviderMapping
|
|
from huggingface_hub.inference._providers._common import BaseConversationalTask
|
|
|
|
|
|
class OpenAIConversationalTask(BaseConversationalTask):
|
|
def __init__(self):
|
|
super().__init__(provider="openai", base_url="https://api.openai.com")
|
|
|
|
def _prepare_api_key(self, api_key: Optional[str]) -> str:
|
|
if api_key is None:
|
|
raise ValueError("You must provide an api_key to work with OpenAI API.")
|
|
if api_key.startswith("hf_"):
|
|
raise ValueError(
|
|
"OpenAI provider is not available through Hugging Face routing, please use your own OpenAI API key."
|
|
)
|
|
return api_key
|
|
|
|
def _prepare_mapping_info(self, model: Optional[str]) -> InferenceProviderMapping:
|
|
if model is None:
|
|
raise ValueError("Please provide an OpenAI model ID, e.g. `gpt-4o` or `o1`.")
|
|
return InferenceProviderMapping(
|
|
provider="openai", providerId=model, task="conversational", status="live", hf_model_id=model
|
|
)
|