idriz c3706e67e5 Igra v2: auto-presuda + filler, pamćenje dvoboja sa razlogom (reuse bez LLM)
Problem: potvrda zadnjeg heroja se čula tek nakon "sad ću odlučiti" jer je
model grupisao potvrdu i poziv presudi. Rješenje: presuda runde je sada
AUTOMATSKA (uklonjen alat superheroji_presudi). Kad zadnji igrač izabere,
Python pokrene resolve_round u pozadini; model prvo brzo potvrdi ime i kaže
da razmišlja, rezultat stigne preko notify_model. Ako traje >8s -> filler.

Pamćenje dvoboja: pored Ela sada se u heroes.json (matchups) bilježe konkretni
ishodi sa razlogom, po cijelom skupu likova i po parovima. Kad se isti dvoboj
ponovi -> čita se iz baze BEZ poziva LLM-u (dosljedno + brzo). Admin tab
prikazuje "Zabilježene dvoboje"; reset briše i njih.

Sekvenciranje odgovora (_wait_idle) da se izbjegne
conversation_already_has_active_response.

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

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").
Description
No description provided
Readme 983 KiB
Languages
Python 85.4%
HTML 14.3%
Shell 0.3%