openai.py 1.1 KB

12345678910111213141516171819202122232425
  1. from typing import Optional
  2. from huggingface_hub.hf_api import InferenceProviderMapping
  3. from huggingface_hub.inference._providers._common import BaseConversationalTask
  4. class OpenAIConversationalTask(BaseConversationalTask):
  5. def __init__(self):
  6. super().__init__(provider="openai", base_url="https://api.openai.com")
  7. def _prepare_api_key(self, api_key: Optional[str]) -> str:
  8. if api_key is None:
  9. raise ValueError("You must provide an api_key to work with OpenAI API.")
  10. if api_key.startswith("hf_"):
  11. raise ValueError(
  12. "OpenAI provider is not available through Hugging Face routing, please use your own OpenAI API key."
  13. )
  14. return api_key
  15. def _prepare_mapping_info(self, model: Optional[str]) -> InferenceProviderMapping:
  16. if model is None:
  17. raise ValueError("Please provide an OpenAI model ID, e.g. `gpt-4o` or `o1`.")
  18. return InferenceProviderMapping(
  19. provider="openai", providerId=model, task="conversational", status="live", hf_model_id=model
  20. )