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

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

  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:

{
  "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