# Idriz Glasovni pomoćnik za djecu, alternativa ekranu. Sluša preko mikrofona, govori na zvučnik, a rezultate štampa na printer. Radi samo na mašini `idriz` (Debian 13); ovaj repozitorij služi za sigurnosne kopije koda. ## Šta zna (v0.2) - **Razgovor:** odgovara na pitanja glasom, kratko. Dijete kroz razgovor traži "naprednije" ili "pojednostavi" i Idriz drži taj nivo do kraja razgovora. - **Sažetak sa Wikipedije:** nađe članak na engleskoj Wikipediji, prevede ga i sažme na bosanski, prilagodi uzrastu i odštampa najviše 2 stranice. - **Bojanka:** generiše crno-bijelu sliku sa konturama preko cijele A4 stranice i odštampa je. Razgovor ide preko OpenAI Realtime API-ja (govor u govor). Tišina znači kraj komande. Idriz prije štampanja uvijek pita za potvrdu. ## Struktura - `idriz/assistant.py` glavna petlja (Realtime sesija, alati, half-duplex audio) - `idriz/audio.py` mikrofon i zvučnik preko `pacat` (PipeWire), PCM16 24 kHz - `idriz/wiki.py` pretraga i preuzimanje članka - `idriz/textgen.py` prevod i sažetak (chat model, JSON) - `idriz/render.py` HTML → PDF (WeasyPrint), automatsko uklapanje u 2 stranice - `idriz/coloring.py` generisanje slike i pretvaranje u čiste konture, A4 PDF - `idriz/printer.py` `lp` na CUPS printer `idriz-printer` - `systemd/idriz.service` korisnički servis ## Instalacija ``` scripts/install.sh # upiši OPENAI_API_KEY u ~/.config/idriz/env systemctl --user start idriz journalctl --user -u idriz -f ``` ## Konfiguracija (okolina) `OPENAI_API_KEY`, `IDRIZ_REALTIME_MODEL` (gpt-realtime-2.1), `IDRIZ_TEXT_MODEL` (gpt-5.5), `IDRIZ_IMAGE_MODEL` (gpt-image-2), `IDRIZ_VOICE` (cedar), `IDRIZ_PRINTER` (idriz-printer), `IDRIZ_DRY_RUN=1` (ne štampa), `IDRIZ_MAX_PAGES` (2), `IDRIZ_VAD_SILENCE_MS` (900), `IDRIZ_MIC_DEVICE`, `IDRIZ_SPEAKER_DEVICE`. Odštampani PDF-ovi ostaju u `~/.local/share/idriz/out/`. ## Test bez štampanja ``` IDRIZ_DRY_RUN=1 .venv/bin/python scripts/test_summary.py "Volcano" "8 godina" ``` ## Igra "Superheroji" Glasovna igra (bez štampanja). Tok: Idriz pita koliko igrača (1–5) i imena, pa se igra nekoliko rundi. Svaku rundu svaki igrač kaže jednog izmišljenog lika (bilo koji medij — Supermen, Mario, La Linea, Mad Max...), a Idriz presudi ko bi pobijedio i zašto. Pobjednik runde se više ne može birati do kraja partije. Sistem pamti relativne jačine likova (Elo) u `~/.local/share/idriz/heroes.json` da borbe budu dosljedne kroz partije. Za prepoznavanje likova koristi se najjači tekstualni model (`game_model`, default `gpt-5.5`) i njegovo znanje; web search (Responses API) samo kad model ne zna lika. - `idriz/gamestore.py` — trajno skladište (heroji, Elo, broj rundi), bez vanjskih zavisnosti. - `idriz/game.py` — prepoznavanje likova, presuđivanje, tok partije (`Match`). - Broj rundi i rang-lista heroja se podešavaju u admin panelu (tab "Superheroji").