Files
idriz/README.md
idriz db0a9b88fd Dodaj igru Superheroji (glasovna) + admin tab
Igra: 1-5 igrača, nekoliko rundi (konfigurabilno). Svaku rundu svaki igrač
kaže izmišljenog lika (širok pojam — bilo koji medij), Idriz presudi ko bi
pobijedio i zašto. Pobjednik runde se banuje do kraja partije. Redoslijed se
rotira svaku rundu (zadnji ima prednost). Najviše pobjeda runda = pobjednik partije.

- idriz/gamestore.py: trajno skladište (heroji, Elo rejting, broj rundi), bez
  vanjskih zavisnosti (i admin ga uvozi). clear_favorite() drži borbe dosljedne
  kroz partije (jači heroj ne gubi od znatno slabijeg).
- idriz/game.py: resolve_hero (najjači LLM gpt-5.5 + web search fallback samo kad
  ne zna lika), adjudicate (presuda + obrazloženje na bosanskom), Match (tok partije).
- assistant.py: 4 realtime alata (nova_partija, izbor, presudi, kraj) + upute;
  igra ide odmah nazad modelu, ne kroz pozadinski posao.
- config.py: game_model (default = text_model).
- admin: tab "Superheroji" (broj rundi + rang-lista + reset pamćenja).

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

2.8 KiB
Raw Permalink Blame History

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").