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.

AI Prompt Engineering Symfony Messenger PHP 8.5 DALL-E 3 GPT-4 Symfony AI EasyAdmin Imagick
6 slov

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:

  1. 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.
  2. 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ázky
  • AiAnswerGenerateHandler — GPT generuje prvé odpovede pre každú novú otázku (seed obsah)
  • AiCategoryGenerateHandler — GPT priradí otázku do existujúcej alebo novej kategórie
  • AiCategoryImageGenerateHandler — DALL-E 3 vygeneruje cover pre novú kategóriu
  • AiNicknameGenerateHandler — GPT vygeneruje pool unikátnych prezývok pre nových používateľov
  • SendDailyUserUpdatesHandler — denný email digest o nových odpovediach a lajkoch
  • SpecialDayNotificationHandler — š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:

  1. Načíta AI obrázky kategórií ako dlaždice (600×400px)
  2. Rozloží ich do mriežky s brick pattern (každý druhý riadok posunutý o polovicu dlaždice)
  3. Medzi dlaždicami aplikuje sigmoid gradient blend mask pre plynulé prelínanie
  4. Celý canvas otočí o −15°
  5. 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-E
  • ai.agent.answers — generátor seed odpovedí
  • ai.agent.category — klasifikátor otázok do kategórií
  • ai.agent.nickname — generátor prezývok
  • ai.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)