Katya Beresneva
fix
d23d069
import os
import dotenv
from typing import Optional
# Load environment variables from .env file if it exists
dotenv.load_dotenv()
def get_required_env(key: str, error_message: Optional[str] = None) -> str:
"""Get a required environment variable or raise a helpful error."""
value = os.getenv(key)
if not value:
api_instructions = {
"GOOGLE_API_KEY": "1. Go to https://makersuite.google.com/app/apikey\n2. Create a new API key",
"TAVILY_API_KEY": "1. Go to https://tavily.com/#pricing\n2. Sign up for an account\n3. Get your API key from the dashboard",
"OAUTH_CLIENT_ID": "Enable OAuth in your Space by setting `hf_oauth: true` in the README.md Space metadata",
"OAUTH_CLIENT_SECRET": "Enable OAuth in your Space by setting `hf_oauth: true` in the README.md Space metadata"
}
instructions = api_instructions.get(key, "Please obtain an API key from the service provider")
default_message = (
f"{key} environment variable is not set.\n"
f"Please create a .env file in the project root with:\n"
f"{key}=your_{key.lower()}_here\n\n"
f"If you don't have the credentials:\n"
f"{instructions}\n"
f"4. Add it to your .env file"
)
raise ValueError(error_message or default_message)
return value
def is_running_in_space() -> bool:
"""Check if we're running in a Hugging Face Space."""
return bool(os.getenv("SPACE_ID"))
# Required environment variables
GOOGLE_API_KEY = get_required_env("GOOGLE_API_KEY")
TAVILY_API_KEY = get_required_env("TAVILY_API_KEY")
# OAuth is only required when running in a Space
if is_running_in_space():
OAUTH_CLIENT_ID = get_required_env("OAUTH_CLIENT_ID")
OAUTH_CLIENT_SECRET = get_required_env("OAUTH_CLIENT_SECRET")
# Optional environment variables with defaults
AGENT_MODEL_NAME = os.getenv("AGENT_MODEL_NAME", "gemini-2.0-flash")