Use in-process Llama cleanup

This commit is contained in:
Thales Maciel 2026-02-24 12:46:11 -03:00
parent 548be49112
commit a83a843e1a
No known key found for this signature in database
GPG key ID: 33112E6833C34679
7 changed files with 235 additions and 116 deletions

View file

@ -9,13 +9,6 @@ class Config:
recording: dict = field(default_factory=lambda: {"input": ""})
stt: dict = field(default_factory=lambda: {"model": "base", "device": "cpu"})
injection: dict = field(default_factory=lambda: {"backend": "clipboard"})
ai_cleanup: dict = field(
default_factory=lambda: {
"model": "llama3.2:3b",
"base_url": "http://localhost:11434",
"api_key": "",
}
)
def default_path() -> Path:
@ -27,7 +20,7 @@ def load(path: str | None) -> Config:
p = Path(path) if path else default_path()
if p.exists():
data = json.loads(p.read_text(encoding="utf-8"))
if any(k in data for k in ("daemon", "recording", "stt", "injection", "ai_cleanup")):
if any(k in data for k in ("daemon", "recording", "stt", "injection")):
for k, v in data.items():
if hasattr(cfg, k):
setattr(cfg, k, v)
@ -37,9 +30,6 @@ def load(path: str | None) -> Config:
cfg.stt["model"] = data.get("whisper_model", cfg.stt["model"])
cfg.stt["device"] = data.get("whisper_device", cfg.stt["device"])
cfg.injection["backend"] = data.get("injection_backend", cfg.injection["backend"])
cfg.ai_cleanup["model"] = data.get("ai_model", cfg.ai_cleanup["model"])
cfg.ai_cleanup["base_url"] = data.get("ai_base_url", cfg.ai_cleanup["base_url"])
cfg.ai_cleanup["api_key"] = data.get("ai_api_key", cfg.ai_cleanup["api_key"])
if not isinstance(cfg.daemon, dict):
cfg.daemon = {"hotkey": "Cmd+m"}
@ -49,22 +39,12 @@ def load(path: str | None) -> Config:
cfg.stt = {"model": "base", "device": "cpu"}
if not isinstance(cfg.injection, dict):
cfg.injection = {"backend": "clipboard"}
if not isinstance(cfg.ai_cleanup, dict):
cfg.ai_cleanup = {
"model": "llama3.2:3b",
"base_url": "http://localhost:11434",
"api_key": "",
}
validate(cfg)
return cfg
def redacted_dict(cfg: Config) -> dict:
d = cfg.__dict__.copy()
if isinstance(d.get("ai_cleanup"), dict):
d["ai_cleanup"] = d["ai_cleanup"].copy()
d["ai_cleanup"]["api_key"] = ""
return d
return cfg.__dict__.copy()
def validate(cfg: Config) -> None: