mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-06 02:30:41 -08:00
32 lines
1 KiB
Python
32 lines
1 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from typing import Optional
|
|
|
|
from ..providers.types import ProviderType
|
|
from .. import debug
|
|
|
|
class AuthManager:
|
|
"""Handles API key management"""
|
|
aliases = {
|
|
"GeminiPro": "Gemini",
|
|
"PollinationsAI": "Pollinations",
|
|
"OpenaiAPI": "Openai",
|
|
"PuterJS": "Puter",
|
|
}
|
|
|
|
@classmethod
|
|
def load_api_key(cls, provider: ProviderType) -> Optional[str]:
|
|
"""Load API key from config file"""
|
|
if not provider.needs_auth and not hasattr(provider, "login_url"):
|
|
return None
|
|
provider_name = provider.get_parent()
|
|
env_var = f"{provider_name.upper()}_API_KEY"
|
|
api_key = os.environ.get(env_var)
|
|
if not api_key and provider_name in cls.aliases:
|
|
env_var = f"{cls.aliases[provider_name].upper()}_API_KEY"
|
|
api_key = os.environ.get(env_var)
|
|
if api_key:
|
|
debug.log(f"Loading API key for {provider_name} from environment variable {env_var}")
|
|
return api_key
|
|
return None
|