added files with prompts
This commit is contained in:
79
docs/prompts/step14.md
Normal file
79
docs/prompts/step14.md
Normal file
@ -0,0 +1,79 @@
|
||||
# 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
|
||||
1. Vytvorenie skriptu `src/Services/LLMpool.php` (alebo CLI skriptu):
|
||||
- Vyhľadanie úloh v stave `queued` v `data/llm/`.
|
||||
- Uzamknutie úlohy (zmena stavu na `generating`).
|
||||
- Volanie `ContentPrompt` na vygenerovanie zadania.
|
||||
- Volanie `DAIClient` na 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>.json` pod kľúč `content.generated`).
|
||||
- Zmena stavu projektu na `content_ready`.
|
||||
- Vymazanie alebo archivácia úlohy z `data/llm/`.
|
||||
- Pri chybe:
|
||||
- Inkrementácia `attempt_count`.
|
||||
- Ak prekročený limit (3), stav projektu `failed`.
|
||||
- Uloženie chyby do projektu.
|
||||
|
||||
## 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`:
|
||||
```json
|
||||
{
|
||||
"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
|
||||
1. Vlož manuálne úlohu do `data/llm/`.
|
||||
2. Spusti `php src/Services/LLMpool.php`.
|
||||
3. Sleduj logy a over, či sa projekt v `data/projects/` aktualizoval o vygenerovaný obsah.
|
||||
4. 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 `generateWebsite` requestu 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
|
||||
Reference in New Issue
Block a user