Files
WebWizard/docs/prompts/step12.md
2026-06-12 12:54:10 +02:00

2.8 KiB

Krok 12 - Generovanie fronty úloh (AI Queue)

Kontext projektu

Po dokončení wizardu sa spustí proces generovania obsahu pomocou AI. Tento proces je asynchrónny a prebieha cez frontu úloh v data/llm/.

Pred implementáciou si preštuduj

  • docs/architecture.md - Sekcia 10 (AI workflow).
  • docs/prompts/step04.md - Správa projektov.

Cieľ

Implementovať API akciu generateWebsite, ktorá vytvorí AI úlohu a prepne stav projektu.

Požadované zmeny

  1. Na backende (ajax.php alebo TaskActions.php):
    • Implementácia akcie generateWebsite.
    • Overenie, či projekt existuje a má všetky potrebné dáta (najmä GDPR súhlas).
    • Zmena stavu projektu na queued.
    • Vytvorenie JSON súboru úlohy v data/llm/ s unikátnym task_id.
    • Súbor úlohy obsahuje project_id, wizard_data a metadáta (pokusy, čas vytvorenia).
  2. Na frontende (wizard.js):
    • Volanie generateWebsite po poslednom kroku wizardu.
    • Implementácia "polling" mechanizmu (volanie getProjectStatus každých pár sekúnd) na sledovanie progresu.
    • Zobrazenie loaderu s aktuálnym stavom (queued, generating, rendering).

Implementačné pravidlá

  • Úloha vo fronte musí obsahovať snapshot wizard_data v čase vytvorenia.
  • Stav projektu queued blokuje ďalšie zmeny v wizard_data.

Súbory ktoré je potrebné vytvoriť

  • src/Actions/TaskActions.php (voliteľné, pre čistotu kódu)

Súbory ktoré je potrebné upraviť

  • public/ajax.php (pridanie akcie generateWebsite)
  • public/js/wizard.js (logika pre spustenie generovania a polling)

API a dátové štruktúry

Štruktúra úlohy (data/llm/t_<id>.json):

{
  "task_id": "t_...",
  "project_id": "p_...",
  "status": "queued",
  "attempt_count": 0,
  "max_attempts": 3,
  "created_at": "...",
  "wizard_data": { ... }
}

Frontend požiadavky

  • Animovaný spinner alebo progress bar.
  • Informovanie používateľa, že generovanie môže trvať niekoľko desiatok sekúnd.

Backend požiadavky

  • Zabezpečenie, aby nevznikali duplicitné úlohy pre ten istý projekt, ak už jedna prebieha.

Testovací scenár

  1. Prejdi celým wizardom a na konci klikni na "Generovať web".
  2. Over, či sa v data/llm/ vytvoril súbor úlohy.
  3. Over, či sa stav projektu v data/projects/ zmenil na queued.
  4. Sleduj v konzole prehliadača, či polling (getProjectStatus) prebieha správne.

Definition of Done

  • Systém úspešne zaraďuje projekty do AI fronty.
  • Frontend korektne sleduje stav generovania.
  • Dáta pre AI sú správne pripravené.

Obmedzenia

  • V tomto kroku sa ešte nevykonáva samotné volanie AI (len zaradenie do fronty).

Výstup

  • zoznam vytvorených súborov
  • zoznam upravených súborov
  • stručné zhrnutie vykonaných zmien
  • prípadné otvorené problémy