Config¶
Управление конфигурацией приложения через Pydantic Settings.
Возможности¶
- Автоматическая загрузка из
.envфайлов - Валидация типов
- Значения по умолчанию
- Вложенные конфигурации
Использование¶
Базовая конфигурация¶
from kit.core.config import Settings
settings = Settings()
# Автоматически загружает из .env
print(settings.openai_api_key)
print(settings.database_url)
print(settings.debug)
Файл .env¶
# .env
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DATABASE_URL=postgresql://localhost/mydb
DEBUG=true
LOG_LEVEL=INFO
Кастомные настройки¶
from kit.core.config import BaseSettings
from pydantic import Field
class MySettings(BaseSettings):
app_name: str = "MyApp"
max_workers: int = Field(default=4, ge=1, le=32)
api_timeout: float = 30.0
class Config:
env_file = ".env"
env_file_encoding = "utf-8"
settings = MySettings()
Вложенные конфигурации¶
from kit.core.config import BaseSettings
from pydantic import BaseModel
class DatabaseConfig(BaseModel):
host: str = "localhost"
port: int = 5432
name: str = "app"
class AppSettings(BaseSettings):
database: DatabaseConfig = DatabaseConfig()
redis_url: str = "redis://localhost"
API Reference¶
Settings¶
class Settings(BaseSettings):
openai_api_key: str = ""
anthropic_api_key: str = ""
database_url: str = "sqlite:///./data.db"
debug: bool = False
log_level: str = "INFO"
class Config:
env_file = ".env"
Примеры из production¶
Autoshorts¶
class AutoshortsSettings(BaseSettings):
# Video generation
kling_access_key: str
kling_secret_key: str
# TTS
edge_tts_voice: str = "ru-RU-DmitryNeural"
# Storage
output_dir: str = "./output"
temp_dir: str = "./temp"
# Limits
max_video_duration: int = 60
max_concurrent_jobs: int = 3