Configuration¶
The MicroDC client can be configured via environment variables, a configuration file, or programmatically.
Environment Variables¶
MICRODC_API_KEY=mDC_499FC19C-686A-47C5-AA93-E619C55EBE98
MICRODC_BASE_URL=https://api.microdc.ai
MICRODC_TIMEOUT=30
MICRODC_POLL_INTERVAL=2.0
MICRODC_VERIFY_SSL=true
| Variable | Default | Description |
|---|---|---|
MICRODC_API_KEY |
(required) | API key for authentication |
MICRODC_BASE_URL |
https://api.microdc.ai |
Base URL for the API |
MICRODC_TIMEOUT |
30 |
Request timeout in seconds |
MICRODC_POLL_INTERVAL |
2.0 |
Polling interval in seconds |
MICRODC_VERIFY_SSL |
true |
Enable SSL verification |
Configuration File¶
Create a .microdc.json file in your project root:
{
"api_key": "mDC_499FC19C-686A-47C5-AA93-E619C55EBE98",
"base_url": "https://api.microdc.ai",
"timeout": 30,
"poll_interval": 2.0,
"default_model": "llama3.3",
"default_priority": "standard"
}
Warning
Do not commit .microdc.json to version control if it contains your API key. Add it to .gitignore.
Programmatic Configuration¶
from microdc import Client, Config
config = Config(
api_key="mDC_...",
base_url="https://api.microdc.ai",
timeout=60,
max_retries=5,
poll_interval=1.0
)
client = Client.from_config(config)
Client Constructor Options¶
client = Client(
api_key="mDC_...", # Required: API key
base_url="https://api.microdc.ai", # API endpoint
timeout=30, # Request timeout (seconds)
verify_ssl=True, # SSL certificate verification
auto_start_polling=True # Auto-start background polling
)
| Parameter | Type | Default | Description |
|---|---|---|---|
api_key |
str |
(required) | API key starting with mDC_ |
base_url |
str |
https://api.microdc.ai |
API base URL |
timeout |
int |
30 |
Request timeout in seconds |
verify_ssl |
bool |
True |
Verify SSL certificates |
auto_start_polling |
bool |
True |
Start polling on init |
Configuration Precedence¶
Configuration is resolved in this order (highest to lowest priority):
- Constructor arguments -- Values passed directly to
Client() - Environment variables --
MICRODC_*variables - Configuration file --
.microdc.json - Defaults -- Built-in default values
Polling Configuration¶
The client uses background polling to check job status:
# Default: polls every 2 seconds
client = Client(api_key="mDC_...")
# Custom poll interval
client = Client(api_key="mDC_...", auto_start_polling=True)
# Disable auto-polling (manual control)
client = Client(api_key="mDC_...", auto_start_polling=False)
Retry Configuration¶
The client automatically retries failed requests:
- Retry attempts: 3
- Base delay: 1 second
- Backoff multiplier: 2.0 (exponential)
- Retryable status codes: 408, 429, 500, 502, 503, 504