Kili Python SDK Configuration Guide
Overview
The Kili Python SDK supports multiple configuration methods with a clear priority order. Configuration can be set via:
- Function parameters (highest priority)
- Environment variables
- Configuration file (
sdk-config.json) - Default values (lowest priority)
Configuration File
Location
The SDK searches for sdk-config.json in the following locations (in order):
- Current working directory
- Home directory (
~)
Format
Create sdk-config.json with the following structure:
{
"api_key": "your-api-key-here",
"api_endpoint": "https://cloud.kili-technology.com/api/label/v2/graphql",
"verify_ssl": true,
"disable_tqdm": false
}
Configuration Options
1. API Key (api_key)
Your Kili API key for authentication.
Configuration Methods:
# 1. Function parameter (highest priority)
kili = Kili(api_key="your-api-key")
# 2. Environment variable
export KILI_API_KEY="your-api-key"
# 3. Configuration file
{
"api_key": "your-api-key"
}
# 4. Interactive prompt (if not set and terminal is available)
# The SDK will prompt you to enter the API key
Example:
from kili.client import Kili
# Method 1: Direct parameter
kili = Kili(api_key="abc123")
# Method 2: Environment variable
# $ export KILI_API_KEY="abc123"
kili = Kili() # Will use env var
# Method 3: Config file (sdk-config.json)
kili = Kili() # Will use config file
2. API Endpoint (api_endpoint)
The GraphQL endpoint URL for Kili API.
Configuration Methods:
# 1. Function parameter
kili = Kili(api_endpoint="https://custom.kili.com/api/label/v2/graphql")
# 2. Environment variable
export KILI_API_ENDPOINT="https://custom.kili.com/api/label/v2/graphql"
# 3. Configuration file
{
"api_endpoint": "https://custom.kili.com/api/label/v2/graphql"
}
# 4. Default value
# "https://cloud.kili-technology.com/api/label/v2/graphql"
Example:
from kili.client import Kili
# For on-premise installations
kili = Kili(
api_key="your-api-key",
api_endpoint="https://your-company.kili.com/api/label/v2/graphql"
)
# Or via environment variable
# $ export KILI_API_ENDPOINT="https://your-company.kili.com/api/label/v2/graphql"
kili = Kili(api_key="your-api-key")
3. TLS Verification (verify / verify_ssl)
Controls TLS certificate verification for HTTPS requests.
Values:
True(default): Verify TLS certificatesFalse: Disable verification (not recommended for production)str: Path to CA bundle file
Configuration Methods:
# 1. Function parameter (uses 'verify')
kili = Kili(verify=False)
# 2. Environment variable
export KILI_VERIFY=false # or "true", "1", "yes"
# 3. Configuration file (uses 'verify_ssl')
{
"verify_ssl": false
}
# Note: The config file also supports 'verify' for backward compatibility
# 4. Default value: True
Example:
from kili.client import Kili
# Disable verification for local development (NOT RECOMMENDED FOR PRODUCTION)
kili = Kili(
api_key="your-api-key",
verify=False
)
# Use custom CA bundle
kili = Kili(
api_key="your-api-key",
verify="/path/to/ca-bundle.crt"
)
# Via environment variable for testing
# $ export KILI_VERIFY=false
kili = Kili(api_key="your-api-key")
4. Disable Progress Bars (disable_tqdm)
Globally disable progress bars (tqdm) for all operations. Individual function calls can still override this setting.
Values:
None(default): Use each function's default behaviorTrue: Disable progress bars globallyFalse: Enable progress bars globally
Configuration Methods:
# 1. Function parameter (highest priority)
kili = Kili(disable_tqdm=True)
# 2. Environment variable
export KILI_DISABLE_TQDM=true # or "false", "1", "yes"
# 3. Configuration file
{
"disable_tqdm": true
}
# 4. Default: None (each function uses its own default)
Priority for Individual Operations:
- Function parameter:
kili.assets(project_id="id", disable_tqdm=True) - Client global setting:
Kili(disable_tqdm=True) - Function default (usually
Falseto show progress)
Example:
from kili.client import Kili
# Disable progress bars globally for automated scripts
kili = Kili(api_key="your-api-key", disable_tqdm=True)
# All operations will have progress bars disabled
assets = kili.assets(project_id="your-project-id")
projects = kili.projects()
# Override for specific operations
labels = kili.labels(
project_id="your-project-id",
disable_tqdm=False # Show progress bar just for this call
)
# Via environment variable for CI/CD
# $ export KILI_DISABLE_TQDM=true
kili = Kili(api_key="your-api-key") # Progress bars disabled
Environment Variables Reference
| Variable | Type | Default | Description |
|---|---|---|---|
KILI_API_KEY |
string | None | Your Kili API key |
KILI_API_ENDPOINT |
string | https://cloud.kili-technology.com/api/label/v2/graphql |
GraphQL API endpoint |
KILI_VERIFY |
boolean/string | true |
TLS certificate verification |
KILI_DISABLE_TQDM |
boolean | None | Disable progress bars globally |
Boolean Environment Variables:
- Truthy values:
"true","1","yes"(case-insensitive) - Falsy values:
"false","0","no"(case-insensitive)
Example : Production Configuration
{
"api_endpoint": "https://cloud.kili-technology.com/api/label/v2/graphql",
"verify_ssl": true,
"disable_tqdm": false
}
export KILI_API_KEY="your-production-key"
from kili.client import Kili
# Loads settings from env var and config file
kili = Kili()
Configuration Priority Summary
For each setting, the priority order is:
-
Function parameter (highest)
Kili(api_key="key", verify=False, disable_tqdm=True) -
Environment variable
export KILI_API_KEY="key" export KILI_VERIFY=false export KILI_DISABLE_TQDM=true -
Configuration file (
sdk-config.json){ "api_key": "key", "verify_ssl": false, "disable_tqdm": true } -
Default value (lowest)
api_endpoint:https://cloud.kili-technology.com/api/label/v2/graphqlverify:Truedisable_tqdm:None