Spaces:
Paused
Paused
| from typing import List, Optional | |
| from litellm.secret_managers.main import get_secret_str | |
| from litellm.types.llms.openai import AllMessageValues | |
| from ..base_llm.base_utils import BaseLLMModelInfo | |
| from ..base_llm.chat.transformation import BaseLLMException | |
| class TopazException(BaseLLMException): | |
| pass | |
| class TopazModelInfo(BaseLLMModelInfo): | |
| def validate_environment( | |
| self, | |
| headers: dict, | |
| model: str, | |
| messages: List[AllMessageValues], | |
| optional_params: dict, | |
| litellm_params: dict, | |
| api_key: Optional[str] = None, | |
| api_base: Optional[str] = None, | |
| ) -> dict: | |
| if api_key is None: | |
| raise ValueError( | |
| "API key is required for Topaz image variations. Set via `TOPAZ_API_KEY` or `api_key=..`" | |
| ) | |
| return { | |
| # "Content-Type": "multipart/form-data", | |
| "Accept": "image/jpeg", | |
| "X-API-Key": api_key, | |
| } | |
| def get_models( | |
| self, api_key: Optional[str] = None, api_base: Optional[str] = None | |
| ) -> List[str]: | |
| return [ | |
| "topaz/Standard V2", | |
| "topaz/Low Resolution V2", | |
| "topaz/CGI", | |
| "topaz/High Resolution V2", | |
| "topaz/Text Refine", | |
| ] | |
| def get_api_key(api_key: Optional[str] = None) -> Optional[str]: | |
| return api_key or get_secret_str("TOPAZ_API_KEY") | |
| def get_api_base(api_base: Optional[str] = None) -> Optional[str]: | |
| return ( | |
| api_base or get_secret_str("TOPAZ_API_BASE") or "https://api.topazlabs.com" | |
| ) | |
| def get_base_model(model: str) -> str: | |
| return model | |