2.8 KiB
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
- Na backende (
ajax.phpaleboTaskActions.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átnymtask_id. - Súbor úlohy obsahuje
project_id,wizard_dataa metadáta (pokusy, čas vytvorenia).
- Implementácia akcie
- Na frontende (
wizard.js):- Volanie
generateWebsitepo poslednom kroku wizardu. - Implementácia "polling" mechanizmu (volanie
getProjectStatuskaždých pár sekúnd) na sledovanie progresu. - Zobrazenie loaderu s aktuálnym stavom (
queued,generating,rendering).
- Volanie
Implementačné pravidlá
- Úloha vo fronte musí obsahovať snapshot
wizard_datav čase vytvorenia. - Stav projektu
queuedblokuje ďalšie zmeny vwizard_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 akciegenerateWebsite)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
- Prejdi celým wizardom a na konci klikni na "Generovať web".
- Over, či sa v
data/llm/vytvoril súbor úlohy. - Over, či sa stav projektu v
data/projects/zmenil naqueued. - 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