2.8 KiB
2.8 KiB
Krok 14 - Služba LLMpool a Validácia AI výstupu
Kontext projektu
LLMpool.php je "worker", ktorý konzumuje frontu úloh, komunikuje s AI a ukladá výsledný obsah do projektu.
Pred implementáciou si preštuduj
docs/architecture.md- Sekcia 10 (AI workflow).docs/prompts/step13.md- DAIClient a Prompt.
Cieľ
Implementovať logiku pre spracovanie AI fronty, validáciu JSON výstupu a aktualizáciu stavu projektu.
Požadované zmeny
- Vytvorenie skriptu
src/Services/LLMpool.php(alebo CLI skriptu):- Vyhľadanie úloh v stave
queuedvdata/llm/. - Uzamknutie úlohy (zmena stavu na
generating). - Volanie
ContentPromptna vygenerovanie zadania. - Volanie
DAIClientna získanie odpovede od AI. - Validácia odpovede:
- Musí to byť validný JSON.
- Nesmie obsahovať HTML tagy.
- Musí obsahovať povinné sekcie (napr.
seo,hero,sections).
- Pri úspechu:
- Uloženie obsahu do projektu (
data/projects/<id>.jsonpod kľúčcontent.generated). - Zmena stavu projektu na
content_ready. - Vymazanie alebo archivácia úlohy z
data/llm/.
- Uloženie obsahu do projektu (
- Pri chybe:
- Inkrementácia
attempt_count. - Ak prekročený limit (3), stav projektu
failed. - Uloženie chyby do projektu.
- Inkrementácia
- Vyhľadanie úloh v stave
Implementačné pravidlá
- Zabezpeč ochranu proti súbežnému spusteniu viacerých workerov na tej istej úlohe (atomic file operations).
- Loguj všetky dôležité udalosti (začiatok, koniec, chybu AI).
Súbory ktoré je potrebné vytvoriť
src/Services/LLMpool.php
Súbory ktoré je potrebné upraviť
public/ajax.php(môže spúšťať LLMpool synchrónne pre MVP ak nie je cron).
API a dátové štruktúry
Štruktúra content.generated:
{
"seo": { "title": "...", "description": "..." },
"hero": { "headline": "...", "subheadline": "..." },
"sections": {
"about": { "title": "...", "text": "..." },
"services": [ { "title": "...", "description": "..." } ]
}
}
Frontend požiadavky
Nerelevantné (worker beží na pozadí).
Backend požiadavky
- PHP 8.2.
Testovací scenár
- Vlož manuálne úlohu do
data/llm/. - Spusti
php src/Services/LLMpool.php. - Sleduj logy a over, či sa projekt v
data/projects/aktualizoval o vygenerovaný obsah. - Skús simulovať neplatný JSON od AI a over, či worker správne inkrementuje pokusy.
Definition of Done
- Worker spoľahlivo spracováva AI frontu.
- Výstup od AI je zvalidovaný a bezpečne uložený.
- Stavy projektu sa menia podľa priebehu generovania.
Obmedzenia
- Worker sa v MVP môže volať aj na konci
generateWebsiterequestu pre jednoduchosť, ak je DAIAPI rýchle.
Výstup
- zoznam vytvorených súborov
- zoznam upravených súborov
- stručné zhrnutie vykonaných zmien
- prípadné otvorené problémy