# Krok 13 - Architektúra promptov a DAIAPI klient ## Kontext projektu Systém využíva lokálne DAIAPI na generovanie textového obsahu (JSON content layer). AI nesmie generovať HTML, ale štruktúrované dáta podľa dodaného promptu. ## Pred implementáciou si preštuduj - `docs/mvp.md` - Sekcia 7 (AI workflow). - `docs/architecture.md` - Sekcia 10 (AI workflow). ## Cieľ Implementovať klienta pre DAIAPI a vytvoriť generátor promptov, ktorý na základe `wizard_data` pripraví zadanie pre AI. ## Požadované zmeny 1. Vytvorenie triedy `App\Services\DAIClient` v `src/Services/DAIClient.php`: - Metóda `sendRequest(string $prompt): ?string` (použitie `curl` alebo `file_get_contents` pre POST na lokalne API). - Spracovanie odpovede a ošetrenie timeoutov. 2. Vytvorenie triedy `App\Prompts\ContentPrompt` v `src/Prompts/ContentPrompt.php`: - Metóda `generate(array $wizardData): string`. - Prompt musí obsahovať: - Kontext projektu. - Inštrukcie pre "Content Layer" (SEO, Hero, Služby, atď.). - Striktný zákaz HTML výstupu. - Príklad požadovaného JSON formátu. - Vstupné fakty z `wizard_data`. ## Implementačné pravidlá - Prompt musí byť v slovenskom jazyku (alebo podľa `wizard_data.language`). - Klient musí logovať chyby komunikácie s API. - Použi systémovú premennú alebo konfiguračný súbor pre URL DAIAPI. ## Súbory ktoré je potrebné vytvoriť - `src/Services/DAIClient.php` - `src/Prompts/ContentPrompt.php` ## Súbory ktoré je potrebné upraviť Žiadne. ## API a dátové štruktúry DAIAPI typicky očakáva: - URL: `http://localhost:port/v1/chat/completions` (podľa lokálneho nastavenia). - Formát: JSON (messages, temperature, atď.). ## Frontend požiadavky Nerelevantné. ## Backend požiadavky - Povolené rozšírenie `curl` v PHP. ## Testovací scenár 1. Vytvor testovací skript, ktorý vygeneruje prompt pre mock `wizard_data`. 2. Over, či prompt obsahuje všetky kľúčové informácie (názov firmy, služby). 3. Skús (ak máš prístup k API) poslať testovací dopyt a over, či vráti validný JSON bez HTML. ## Definition of Done - Klient pre AI je funkčný. - Prompt je správne navrhnutý a generuje štruktúrované zadanie. - Systém je pripravený na integráciu s workerom. ## Obmedzenia - AI nesmie v žiadnom prípade generovať tagy ako `
`, `

` a pod. v rámci content layer. ## Výstup - zoznam vytvorených súborov - zoznam upravených súborov - stručné zhrnutie vykonaných zmien - prípadné otvorené problémy