Files
gh-doodledood-claude-code-p…/skills/consultant/scripts/config.py
2025-11-29 18:23:41 +08:00

47 lines
1.3 KiB
Python

"""
Configuration and constants for consultant Python implementation
"""
import os
from pathlib import Path
# Session storage location
DEFAULT_SESSIONS_DIR = Path.home() / ".consultant" / "sessions"
# Environment variable names
ENV_LITELLM_API_KEY = "LITELLM_API_KEY"
ENV_OPENAI_API_KEY = "OPENAI_API_KEY"
ENV_ANTHROPIC_API_KEY = "ANTHROPIC_API_KEY"
ENV_OPENAI_BASE_URL = "OPENAI_BASE_URL"
# Token budget: Reserve this percentage for response
CONTEXT_RESERVE_RATIO = 0.2 # 20% reserved for response
# Retry configuration
MAX_RETRIES = 3
INITIAL_RETRY_DELAY = 2 # seconds
MAX_RETRY_DELAY = 60 # seconds
# Background job polling configuration
POLL_INTERVAL = 20 # seconds between polls (configurable)
POLL_TIMEOUT = 3600 # 1 hour max wait for background jobs
# Session polling
POLLING_INTERVAL_SECONDS = 2
def get_api_key() -> str | None:
"""Get API key from environment in priority order"""
return (
os.environ.get(ENV_LITELLM_API_KEY)
or os.environ.get(ENV_OPENAI_API_KEY)
or os.environ.get(ENV_ANTHROPIC_API_KEY)
)
def get_base_url() -> str | None:
"""Get base URL from OPENAI_BASE_URL environment variable if set"""
base_url = os.environ.get(ENV_OPENAI_BASE_URL)
# Only return if non-empty
return base_url if base_url and base_url.strip() else None