| | import os |
| | from dotenv import load_dotenv |
| |
|
| | load_dotenv() |
| |
|
| |
|
| | def get_env_var(name: str, required: bool = True, default: str | None = None) -> str | None: |
| | val = os.getenv(name, default) |
| | if required and not val: |
| | raise ValueError(f"Missing required environment variable: {name}") |
| | return val |
| |
|
| | proxy_key = os.getenv("PROXY_API_KEY") |
| | proxy_base = os.getenv("PROXY_BASE_URL") |
| | openai_key = os.getenv("OPENAI_API_KEY") |
| | openai_base = os.getenv("OPENAI_BASE_URL") |
| |
|
| | api_key = proxy_key or openai_key |
| | if not api_key: |
| | raise ValueError("Missing API key: set PROXY_API_KEY or OPENAI_API_KEY in environment/secrets.") |
| |
|
| | base_url = proxy_base or openai_base or "https://api.openai.com/v1" |
| |
|
| | os.environ["OPENAI_API_KEY"] = api_key |
| | os.environ["OPENAI_BASE_URL"] = base_url |
| |
|
| | MODE = "proxy" if proxy_key else "direct" |
| | OPENAI_API_KEY = api_key |
| | OPENAI_BASE_URL = base_url |
| |
|
| |
|
| | LLM_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini") |
| | LLM_TEMPERATURE = float(os.getenv("LLM_TEMPERATURE", "0")) |
| |
|
| | FORBIDDEN_KEYWORDS = { |
| | "ATTACH", "PRAGMA", |
| | "CREATE", "DROP", "ALTER", "VACUUM", "REINDEX", "TRIGGER", |
| | "INSERT", "UPDATE", "DELETE", "REPLACE", |
| | "GRANT", "REVOKE", |
| | "BEGIN", "END", "COMMIT", "ROLLBACK", |
| | "DETACH", |
| | } |
| | FORBIDDEN_TABLES = {"sqlite_master", "sqlite_temp_master"} |
| |
|