aidc-ai--pixelle-video
55 行
1.9 KiB
Python
55 行
1.9 KiB
Python
"""Compatibility config for migrated API provider clients.
|
|
|
|
This module keeps the old ``Config.X`` access pattern used by the copied
|
|
clients, while sourcing values from Pixelle's config manager first and
|
|
environment variables as a fallback.
|
|
"""
|
|
|
|
import os
|
|
from typing import Any
|
|
|
|
|
|
def _provider_config(provider: str) -> dict:
|
|
try:
|
|
from pixelle_video.config import config_manager
|
|
|
|
config = config_manager.config.to_dict()
|
|
return config.get("api_providers", {}).get(provider, {}) or {}
|
|
except Exception:
|
|
return {}
|
|
|
|
|
|
class _ConfigMeta(type):
|
|
def __getattr__(cls, name: str) -> Any:
|
|
mapping = {
|
|
"PRINT_MODEL_INPUT": ("common", "print_model_input", False),
|
|
"LOCAL_PROXY": ("common", "local_proxy", ""),
|
|
"OPENAI_API_KEY": ("openai", "api_key", ""),
|
|
"OPENAI_BASE_URL": ("openai", "base_url", ""),
|
|
"DASHSCOPE_API_KEY": ("dashscope", "api_key", ""),
|
|
"DASHSCOPE_BASE_URL": ("dashscope", "base_url", ""),
|
|
"DEEPSEEK_API_KEY": ("deepseek", "api_key", ""),
|
|
"DEEPSEEK_BASE_URL": ("deepseek", "base_url", ""),
|
|
"GEMINI_API_KEY": ("gemini", "api_key", ""),
|
|
"GOOGLE_GEMINI_BASE_URL": ("gemini", "base_url", ""),
|
|
"ARK_API_KEY": ("ark", "api_key", ""),
|
|
"ARK_BASE_URL": ("ark", "base_url", ""),
|
|
"KLING_BASE_URL": ("kling", "base_url", ""),
|
|
"KLING_ACCESS_KEY": ("kling", "access_key", ""),
|
|
"KLING_SECRET_KEY": ("kling", "secret_key", ""),
|
|
}
|
|
|
|
if name not in mapping:
|
|
raise AttributeError(name)
|
|
|
|
provider, key, default = mapping[name]
|
|
value = _provider_config(provider).get(key, default)
|
|
env_value = os.getenv(name)
|
|
if env_value is not None and env_value != "":
|
|
return env_value
|
|
return value
|
|
|
|
|
|
class Config(metaclass=_ConfigMeta):
|
|
"""Old-style config facade for migrated provider clients."""
|