Files
idriz/idriz/config.py
idriz 6839464161 Igra: brzi mini model (gpt-4.1-mini) umjesto gpt-5.5
Presuda je predugo trajala sa gpt-5.5. game_model default je sada gpt-4.1-mini
(brz ~1-2s, bez reasoning overheada), kvalitet prepoznavanja i presude i dalje
dobar (testirano: Kuromi, La Linea, Goku). Promjenjivo preko IDRIZ_GAME_MODEL.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
2026-09-04 20:37:31 +02:00

40 lines
2.1 KiB
Python

"""Konfiguracija iz okoline (~/.config/idriz/env se učitava preko systemd EnvironmentFile)."""
import os
from dataclasses import dataclass, field
from pathlib import Path
def _env(name: str, default: str) -> str:
return os.environ.get(name, default)
@dataclass
class Config:
openai_api_key: str = field(default_factory=lambda: _env("OPENAI_API_KEY", ""))
realtime_model: str = field(default_factory=lambda: _env("IDRIZ_REALTIME_MODEL", "gpt-realtime-2.1"))
text_model: str = field(default_factory=lambda: _env("IDRIZ_TEXT_MODEL", "gpt-5.5"))
game_model: str = field(default_factory=lambda: _env("IDRIZ_GAME_MODEL", "gpt-4.1-mini"))
image_model: str = field(default_factory=lambda: _env("IDRIZ_IMAGE_MODEL", "gpt-image-2"))
transcription_model: str = field(default_factory=lambda: _env("IDRIZ_TRANSCRIPTION_MODEL", "gpt-4o-mini-transcribe"))
voice: str = field(default_factory=lambda: _env("IDRIZ_VOICE", "cedar"))
printer: str = field(default_factory=lambda: _env("IDRIZ_PRINTER", "idriz-printer"))
mic_device: str = field(default_factory=lambda: _env("IDRIZ_MIC_DEVICE", ""))
speaker_device: str = field(default_factory=lambda: _env("IDRIZ_SPEAKER_DEVICE", ""))
out_dir: Path = field(default_factory=lambda: Path(_env("IDRIZ_OUT_DIR", str(Path.home() / ".local/share/idriz/out"))))
max_pages: int = field(default_factory=lambda: int(_env("IDRIZ_MAX_PAGES", "2")))
dry_run: bool = field(default_factory=lambda: _env("IDRIZ_DRY_RUN", "0") == "1")
vad_silence_ms: int = field(default_factory=lambda: int(_env("IDRIZ_VAD_SILENCE_MS", "900")))
mic_gain: float = field(default_factory=lambda: float(_env("IDRIZ_MIC_GAIN", "3.0")))
vad_threshold: float = field(default_factory=lambda: float(_env("IDRIZ_VAD_THRESHOLD", "0.5")))
def __post_init__(self) -> None:
self.out_dir.mkdir(parents=True, exist_ok=True)
# igra koristi brzi mini model (gpt-4.1-mini) da presuda ne traje dugo;
# promjenjivo preko IDRIZ_GAME_MODEL
if not self.game_model:
self.game_model = "gpt-4.1-mini"
def load() -> Config:
return Config()