mike-backend / backend /python-service /inference /resolve_credentials.py
bardd's picture
Deploy Mike backend-only Space
06671aa verified
Raw History Blame Contribute Delete
1.17 kB
from __future__ import annotations
import os
from fastapi import HTTPException
from inference.config import get_inference_manifest
# Legacy Python service env vars remain supported for credential fallback.
_LEGACY_API_KEY_ENVS = (
"TABULAR_AGENT_API_KEY",
"GOOGLE_API_KEY",
"GEMINI_API_KEY",
"WORD_REVIEW_API_KEY",
)
def resolve_api_key(provider: str = "google-genai") -> str | None:
manifest = get_inference_manifest()
providers = manifest.get("providers") or {}
provider_entry = providers.get(provider) or {}
api_key_env = provider_entry.get("apiKeyEnv")
if isinstance(api_key_env, str) and api_key_env.strip():
value = os.environ.get(api_key_env, "").strip()
if value:
return value
for env_name in _LEGACY_API_KEY_ENVS:
value = os.environ.get(env_name, "").strip()
if value:
return value
return None
def assert_api_key(provider: str = "proxy-openai") -> str:
key = resolve_api_key(provider)
if not key:
raise HTTPException(
status_code=500,
detail="TabularAgent API key is not configured.",
)
return key