| import os |
| import dotenv |
| from typing import Optional |
|
|
| |
| 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")) |
|
|
| |
| GOOGLE_API_KEY = get_required_env("GOOGLE_API_KEY") |
| TAVILY_API_KEY = get_required_env("TAVILY_API_KEY") |
|
|
| |
| if is_running_in_space(): |
| OAUTH_CLIENT_ID = get_required_env("OAUTH_CLIENT_ID") |
| OAUTH_CLIENT_SECRET = get_required_env("OAUTH_CLIENT_SECRET") |
|
|
| |
| AGENT_MODEL_NAME = os.getenv("AGENT_MODEL_NAME", "gemini-2.0-flash") |