Skip to main content
Configuration class for WebSocket server settings.

Class

class
ServerConfig
Configuration for WebSocket server.

Constructor

constructor
ServerConfig()
Create a new ServerConfig instance. All parameters have defaults loaded from environment variables.

Parameters

Server Settings

host
str
default:"0.0.0.0"
Server host address. Loaded from KURALIT_HOST environment variable.
port
int
default:"8000"
Server port number. Loaded from KURALIT_PORT environment variable.
debug
bool
default:"false"
Enable debug mode. Loaded from KURALIT_DEBUG environment variable.
log_level
str
default:"INFO"
Logging level (DEBUG, INFO, WARNING, ERROR). Loaded from KURALIT_LOG_LEVEL environment variable.

Security

api_key_validator
Callable[[str], bool] | None
default:"None"
Function to validate API keys from client connections. Must be provided programmatically.
require_wss
bool
default:"true"
Require secure WebSocket (WSS) connections. Loaded from KURALIT_REQUIRE_WSS environment variable.

STT Settings

stt_enabled
bool
default:"true"
Enable Speech-to-Text. Loaded from KURALIT_STT_ENABLED environment variable.
stt_provider
str
default:"deepgram"
STT provider name (“deepgram” or “google”). Loaded from KURALIT_STT_PROVIDER environment variable.
deepgram_api_key
str | None
default:"None"
Deepgram API key. Loaded from DEEPGRAM_API_KEY environment variable.
stt_api_key
str | None
default:"None"
Google STT API key. Loaded from GOOGLE_STT_API_KEY environment variable.
stt_credentials_path
str | None
default:"None"
Path to Google STT credentials JSON file. Loaded from GOOGLE_STT_CREDENTIALS environment variable.
stt_language_code
str
default:"en-US"
STT language code. Loaded from KURALIT_STT_LANGUAGE environment variable.
sample_rate
int
default:"16000"
Audio sample rate in Hz. Loaded from KURALIT_SAMPLE_RATE environment variable.

VAD Settings

vad_enabled
bool
default:"true"
Enable Voice Activity Detection. Loaded from KURALIT_VAD_ENABLED environment variable.
vad_activation_threshold
float
default:"0.5"
VAD activation threshold (0.0-1.0). Loaded from KURALIT_VAD_ACTIVATION_THRESHOLD environment variable.
vad_model_path
str | None
default:"None"
Path to VAD model file. Loaded from KURALIT_VAD_MODEL_PATH environment variable.

Turn Detector Settings

turn_detector_enabled
bool
default:"true"
Enable turn detection. Loaded from KURALIT_TURN_DETECTOR_ENABLED environment variable.
turn_detector_threshold
float
default:"0.5"
Turn detector threshold (0.0-1.0). Loaded from KURALIT_TURN_DETECTOR_THRESHOLD environment variable.
turn_detector_model_path
str | None
default:"None"
Path to turn detector model. Loaded from KURALIT_TURN_DETECTOR_MODEL_PATH environment variable.
min_endpointing_delay
float
default:"0.5"
Minimum endpointing delay in seconds. Loaded from KURALIT_MIN_ENDPOINTING_DELAY environment variable.
max_endpointing_delay
float
default:"3.0"
Maximum endpointing delay in seconds. Loaded from KURALIT_MAX_ENDPOINTING_DELAY environment variable.

Agent Settings

agent_api_key
str | None
default:"None"
Agent API key (Gemini/Google). Loaded from GOOGLE_API_KEY environment variable.
agent_model_id
str
default:"gemini-2.0-flash-001"
Agent model ID. Loaded from KURALIT_MODEL_ID environment variable.

Limits

max_text_size_bytes
int
default:"4096"
Maximum text message size in bytes. Loaded from KURALIT_MAX_TEXT_SIZE environment variable.
max_audio_chunk_size_bytes
int
default:"16384"
Maximum audio chunk size in bytes (16KB). Loaded from KURALIT_MAX_AUDIO_CHUNK_SIZE environment variable.
max_concurrent_connections
int
default:"1000"
Maximum concurrent WebSocket connections. Loaded from KURALIT_MAX_CONNECTIONS environment variable.
connection_timeout_seconds
int
default:"300"
Connection timeout in seconds. Loaded from KURALIT_CONNECTION_TIMEOUT environment variable.

Methods

validate()

validate
None
Validate configuration. Raises ValueError if configuration is invalid.Raises:
  • ValueError: If required fields are missing or invalid
Example:
config = ServerConfig()
config.api_key_validator = lambda key: key == "demo-key"
config.validate()  # Raises ValueError if invalid

Usage Examples

Basic Configuration

from kuralit.server.config import ServerConfig

# Create config with defaults
config = ServerConfig()

# Set API key validator
config.api_key_validator = lambda key: key == "my-secret-key"

# Validate
config.validate()

Custom Configuration

from kuralit.server.config import ServerConfig

# Create custom config
config = ServerConfig(
    host="0.0.0.0",
    port=8080,
    debug=True,
    log_level="DEBUG",
    api_key_validator=lambda key: key == "my-key",
    require_wss=False,
)

config.validate()

Environment Variable Configuration

# .env file
KURALIT_HOST=0.0.0.0
KURALIT_PORT=8000
KURALIT_DEBUG=false
KURALIT_LOG_LEVEL=INFO
DEEPGRAM_API_KEY=your-key
GOOGLE_API_KEY=your-key