6 slov
Klient: Hobby projekt
Sociálna platforma, kde otázka dostane AI obraz a komunita odpovedá v presne 6 slovách. Kľúčová inovácia: technika Prompt-on-Prompt, kde AI najprv preloží abstraktný dopyt na precízny vizuálny deskriptor a až ten vstupuje do difúzneho modelu. Plne asynchrónna pipeline cez Symfony Messenger, kredity, automatická kategorizácia, typo-tolerantné vyhľadávanie a vlastný systém automoderovania.
Koncept
Jednoduchá myšlienka s hlbokým technologickým jadrom: používateľ napíše otázku o presne šiestich slovách, platforma vygeneruje AI obrázok ako cover a komunita musí odpovedať v presne 6 slovách. Nie 5, nie 7 — presne 6. Limit núti k premýšľaniu a výsledky sú prekvapivo vtipné, múdre aj poetické.
Platforma funguje v slovensko-českej komunite a k augustu 2026 eviduje 203 otázok, 1 274 odpovedí a 39 registrovaných používateľov. Otázky pokrývajú kategórie ako Vzťahy, Zdravie, Osobný rozvoj, Kulinárstvo, Financie či Sebareflexia — každú z nich AI nielen pomenúva, ale aj vizuálne stvárnuje.
Prompt-on-Prompt Pipeline
Najväčší problém generatívnej grafiky je nepresnosť priameho zadania. Abstraktná otázka „Čo je to láska?" produkuje generické výstupy. Implementoval som dvojfázový postup:
- Fáza 1 — Prompt Enhancer: GPT-4 dostane otázku a systémový pokyn, aby ju dekonstruoval na precízny vizuálny deskriptor — popis scény, farebnosť, kompozícia, nálada.
- Fáza 2 — Image Generation: Optimalizovaný prompt vstupuje do DALL-E 3 v rozlíšení 1792×1024px.
Výsledky sú výrazne konzistentnejšie a vizuálne silnejšie ako pri priamom zadaní.
Asynchrónna AI pipeline
Každá udalosť v systéme spúšťa samostatný Messenger handler, čo zaručuje bleskovú odozvu UI aj pri náročných AI operáciách:
AiImageGenerateHandler— Prompt-on-Prompt + DALL-E 3 generovanie coveru otázkyAiAnswerGenerateHandler— GPT generuje prvé odpovede pre každú novú otázku (seed obsah)AiCategoryGenerateHandler— GPT priradí otázku do existujúcej alebo novej kategórieAiCategoryImageGenerateHandler— DALL-E 3 vygeneruje cover pre novú kategóriuAiNicknameGenerateHandler— GPT vygeneruje pool unikátnych prezývok pre nových používateľovSendDailyUserUpdatesHandler— denný email digest o nových odpovediach a lajkochSpecialDayNotificationHandler— špeciálne udalostné emaily s interaktívnymi tlačidlami
Systém kreditov a Scheduler
Pridanie otázky stojí kredity. Kredity sa doplňujú automaticky cez Symfony Scheduler s dvoma recurring jobs:
AddFreeCoinsProvider— každú minútu dopĺňa kredity podľa pravidiel (cron:* * * * *)- Denné reporty — cron v náhodnom čase medzi 8:00–20:00, dynamicky generuje zoznam používateľov s novými aktivitami
Scheduler beží bez externého cron démona — čisto cez Symfony Messenger worker.
Full-text vyhľadávanie a auto-moderovanie
Loupe — typo-tolerantný full-text search engine v čistom PHP — indexuje všetky otázky pre slovenský jazyk. Minimálna dĺžka prefixu 3 znaky, fuzzy matching, nulová závislosť na externom serveri.
AutoModerationService implementuje Weighted Report Score (WRS): každý report má váhu podľa závažnosti (1–4), dôveryhodnosti reportéra (reporterTrust: 0.5–1.5) a časovej degradácie. Systém navrhuje akciu: visible / soft_hidden / hard_hidden / quarantine. Reportérova dôveryhodnosť sa mení na základe histórie jeho reportov.
HeroGenerator — kompozitný image engine
Vlastný HeroGeneratorService na báze Imagick generuje hero pozadie pre profily a špeciálne stránky. Algoritmus:
- Načíta AI obrázky kategórií ako dlaždice (600×400px)
- Rozloží ich do mriežky s brick pattern (každý druhý riadok posunutý o polovicu dlaždice)
- Medzi dlaždicami aplikuje sigmoid gradient blend mask pre plynulé prelínanie
- Celý canvas otočí o −15°
- Výsledok oreze na 2560×1440px, zvýši saturáciu a exportuje ako JPEG 80%
Výsledok vyzerá ako generatívne AI pozadie, no je to deterministická kompozícia z existujúcich obrázkov.
Integrácia symfony-ai
Projekt je jedným z prvých produkčných nasadení balíka symfony/ai (Symfony AI). Jednotlivé AI agenty sú definované ako Symfony services s atribútom #[Autowire(service: ...)]:
ai.agent.image_prompt— Prompt Enhancer pre DALL-Eai.agent.answers— generátor seed odpovedíai.agent.category— klasifikátor otázok do kategóriíai.agent.nickname— generátor prezývokai.agent.optimize_categories— optimalizátor kategórií
DALL-E 3 je volaný priamo cez PlatformInterface s custom ImageUrl response formatom.
Prompt-on-Prompt Pipeline
Dvojfázová AI transformácia: GPT-4 najprv preloží abstraktnú otázku na precízny vizuálny deskriptor, DALL-E 3 generuje cover v rozlíšení 1792×1024.
Plne asynchrónna AI pipeline
7 špecializovaných Symfony Messenger handlerob — obrázky, odpovede, kategórie, prezývky, emaily. UI nikdy nečaká na AI.
Symfony Scheduler bez démona
Kredity, denné digesty a špeciálne udalosti riadi čisto cez Symfony Messenger worker. Žiadny externý cron.
Auto-moderovanie s WRS
Weighted Report Score systém s časovou degradáciou, závažnosťou reportu a dynamickým reporterTrust skóre každého používateľa.
Loupe full-text search
Typo-tolerantné vyhľadávanie v slovenčine bez externej závislosti — čisté PHP, indexovanie priamo do lokálneho adresára.
HeroGenerator — Imagick engine
Generatívne hero pozadie z AI category obrázkov — brick grid, sigmoid blend masky, rotácia, crop na 2560×1440px.
Technické funkcie
- OpenAI GPT-4o + DALL-E 3
- Asynchrónny Symfony Messenger + Scheduler
- Prompt-on-Prompt (dvojfázové generovanie obrazu)
- Loupe — typo-tolerantný full-text search (PHP-native)
- Weighted Report Score s dynamickým reporterTrust
- Custom Imagick composite engine (brick grid + sigmoid blend)
- 203 otázok · 1 274 odpovedí · 39 používateľov (aug 2026)