improved documentation after review
This commit is contained in:
@ -44,7 +44,8 @@ Systém funguje na princípe **Single-Page Application (SPA)** komunikujúcej s
|
||||
/
|
||||
├── data/ # NEPRÍSTUPNÉ Z WEBU (.htaccess deny all)
|
||||
│ ├── users/ # <user_id>.json
|
||||
│ └── projects/ # <project_id>.json
|
||||
│ ├── projects/ # <project_id>.json
|
||||
│ └── llm/ # Fronta úloh pre AI (prikazy.json)
|
||||
├── sites/ # PRÍSTUPNÉ Z WEBU (Vygenerované weby)
|
||||
│ └── a8f7c3d1/ # Konkrétny vygenerovaný web
|
||||
│ ├── index.html
|
||||
@ -53,7 +54,8 @@ Systém funguje na princípe **Single-Page Application (SPA)** komunikujúcej s
|
||||
│ └── config.json # Kópia konfigurácie pre daný export
|
||||
├── src/ # PHP Logika
|
||||
│ ├── Actions/ # Triedy pre jednotlivé AJAX akcie
|
||||
│ ├── Services/ # AI Engine (DAIAPI Wrapper), FileStorage, Renderer
|
||||
│ ├── Services/ # AI Engine (LLMpool.php), FileStorage, Renderer
|
||||
│ ├── Prompts/ # Externé prompty (.txt, .md)
|
||||
│ └── Utils/ # Helpery
|
||||
├── public/ # Root webservera
|
||||
│ ├── index.html # Hlavná aplikácia (Wizard)
|
||||
@ -143,29 +145,37 @@ Všetky požiadavky smerujú na `public/ajax.php`.
|
||||
|
||||
---
|
||||
|
||||
## 7. Generovanie a publikovanie
|
||||
## 7. Generovanie a publikovanie (Asynchrónny proces)
|
||||
|
||||
Kvôli eliminácii timeoutov a stabilite generovania využíva systém **LLM Pool**.
|
||||
|
||||
### Workflow:
|
||||
1. **Spracovanie dát:** PHP vezme `wizard_data` z JSON súboru.
|
||||
2. **AI Prompt:** Service vytvorí systémový prompt a pošle ho do DAIAPI cez HTTP POST.
|
||||
3. **Parsing:** DAIAPI vráti vygenerovaný obsah (text/JSON).
|
||||
4. **Templating:**
|
||||
* PHP prečíta základnú HTML šablónu (v `/src/Templates/`).
|
||||
* Nahradí placeholdery (napr. `{{BUSINESS_NAME}}`) vygenerovaným obsahom.
|
||||
5. **Súborový systém:**
|
||||
* Vytvorí priečinok `/sites/<project_id>/`.
|
||||
* Nakopíruje statické assety (CSS, JS).
|
||||
* Zapíše `index.html`.
|
||||
6. **Relatívne URL:** Všetky cesty v šablóne sú `/assets/style.css` -> v kóde menené na `assets/style.css` (relatívne k index.html).
|
||||
1. **Vytvorenie úlohy:** AJAX akcia `generateWebsite` nezavolá AI hneď. Zapíše JSON súbor do `/data/llm/<task_id>.json`, ktorý obsahuje vstupné dáta z wizardu a cieľové cesty.
|
||||
2. **Spracovanie (LLMpool.php):**
|
||||
* Skript spúšťaný cez **Cron** (napr. každú minútu) prechádza zložku `/data/llm/`.
|
||||
* Pre každú úlohu načíta príslušný **Prompt** zo zložky `/src/Prompts/`.
|
||||
* Nahradí premenné v prompte (napr. `[BUSINESS_TYPE]`) reálnymi dátami.
|
||||
* Pošle požiadavku do DAIAPI.
|
||||
3. **Dynamické generovanie:**
|
||||
* Systém nepoužíva fixné HTML šablóny.
|
||||
* AI inštruujeme, aby vygenerovalo kompletný kód (HTML/CSS) na mieru.
|
||||
4. **Zápis a Cleanup:**
|
||||
* Po úspešnom vygenerovaní skript vytvorí súbory v `/sites/<project_id>/`.
|
||||
* Až po úspešnom zápise sa úloha z `/data/llm/` odstráni.
|
||||
* **Retry mechanizmus:** Ak DAIAPI zlyhá, súbor s úlohou ostáva v zložke a skript sa ho pokúsi spracovať v ďalšom behu.
|
||||
|
||||
---
|
||||
|
||||
## 8. Bezpečnosť (MVP)
|
||||
## 8. Správa dát a Limity (Storage Management)
|
||||
|
||||
1. **Ochrana dát:** `.htaccess` v priečinku `/data/` s obsahom `Deny from all`.
|
||||
2. **Sanitizácia:** PHP `htmlspecialchars()` pri renderovaní vygenerovaného obsahu (prevencia XSS).
|
||||
3. **Path Traversal:** Validácia `user_id` a `project_id` (iba alfanumerické znaky), aby sa predišlo prístupu k súborom mimo určených priečinkov.
|
||||
4. **Rate Limiting:** Jednoduchá kontrola počtu požiadaviek na IP adresu v `ajax.php`.
|
||||
2. **Uploady:**
|
||||
* Limit na veľkosť súboru (napr. max 2MB pre logo).
|
||||
* Kontrola povolených prípon (jpg, png, svg) a overenie MIME typu na strane PHP.
|
||||
3. **Storage Cleanup:**
|
||||
* Ak celkový objem dát v `/sites/` presiahne stanovenú kvótu, systém automaticky premaže najstaršie projekty (FIFO - First In, First Out).
|
||||
4. **Sanitizácia:** PHP `htmlspecialchars()` pri renderovaní, ak je to potrebné, a validácia vstupov proti Path Traversal.
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Tento dokument nadväzuje na pôvodnú špecifikáciu a detailnejšie rozpracov
|
||||
WebWizard je navrhnutý ako **AI Website Concierge**, ktorý premieňa štruktúrované dáta od používateľa na funkčný web.
|
||||
|
||||
### 1.1 Komponenty
|
||||
* **Frontend (Wizard UI):** Jednostránková aplikácia (React/Next.js) s dôrazom na UX, ktorá sprevádza používateľa procesom.
|
||||
* **Frontend (Wizard UI):** Jednostránková aplikácia (Vanilla JS) s dôrazom na UX, ktorá sprevádza používateľa procesom.
|
||||
* **Backend (API Layer):** Node.js (Express) alebo Python (FastAPI). Spracováva odpovede, spravuje session a komunikuje s AI.
|
||||
* **AI Engine:** Integrácia s LLM (napr. GPT-4o) cez API. Používa špecifické system prompty pre rôzne segmenty biznisu.
|
||||
* **Generator Service:** Modul, ktorý transformuje AI výstup (JSON/Markdown) na finálny kód (HTML/CSS/JS).
|
||||
|
||||
Reference in New Issue
Block a user