Zpět na blog
Pro vývojáře

AI generování popisů produktů pro e-shop: Perplexity, Gemini, DeepL a automatizace v praxi

Máte e-shop s tisíci produkty a každý potřebuje unikátní SEO popisek, stručný souhrn pro Google a kvalitní obrázky? A to celé ve třech jazycích? Ručně nemožné, s AI reálné. Ukážeme si architekturu reálného e-shopového projektu, kde tři AI služby spolupracují na plně automatizovaném pipeline: Perplexity generuje texty a hledá obrázky, Gemini tvoří SEO souhrny a DeepL překládá vše do dalších jazyků.

Problém: tisíce produktů, nula popisků

Typický e-shop s elektronikou nebo spotřebním zbožím má v katalogu 5 000–50 000 produktů. Většina z nich přichází od dodavatelů s minimálním popisem — název, cena, pár parametrů a jeden obrázek. Jenže Google vyžaduje unikátní, obsahově hodnotné texty pro SEO. Zákazníci chtějí srozumitelné popisy s obrázky. A pokud prodáváte do více zemí, potřebujete to celé v několika jazycích.

Ručně napsat 10 000 popisků je práce na měsíce. S AI pipeline, kterou si ukážeme, zvládnete tisíce produktů za hodiny — s kvalitou, která obstojí v SEO i před zákazníky.

3

AI služby spolupracují v jednom pipeline — Perplexity, Gemini a DeepL

Architektura: tři AI, tři úlohy

Celý systém má tři nezávislé komponenty, z nichž každá řeší jednu konkrétní úlohu:

Komponenta AI služba Úloha
Generátor popisků Perplexity API (sonar) Dlouhý SEO text s HTML strukturou
Generátor souhrnů Google Gemini API Krátký meta description pro Google
Vyhledávač obrázků Perplexity API (sonar) Nalezení oficiální URL produktu → stažení obrázků

Po vygenerování se vše přeloží přes DeepL API do dalších jazyků. Celý proces je spouštěn z admin rozhraní jedním kliknutím na produkt — nebo hromadně přes batch operaci.

Pipeline

Produkt (název + kategorie + parametry)
  → Perplexity: dlouhý SEO text (HTML)
  → Perplexity: nalezení URL s obrázky → stažení obrázků
  → Vložení obrázků do HTML textu
  → Gemini: krátký SEO souhrn
  → DeepL: překlad do dalších jazyků
  → Uložení do databáze

Krok 1: Generování dlouhého SEO textu (Perplexity)

Pro generování hlavních produktových popisků používáme Perplexity API s modelem sonar. Proč Perplexity a ne ChatGPT nebo Gemini? Perplexity má přístup k aktuálním informacím z webu — zná reálné specifikace produktů, recenze a aktuální ceny. To dramaticky snižuje halucinace oproti modelům, které pracují pouze z trénovacích dat.

Konfigurovatelné prompty v databázi

Klíčový architektonický princip: prompty nejsou hardcoded v kódu, ale uložené v databázi. Tabulka ai_longtext_config obsahuje prompt pro každý jazyk. To umožňuje:

  • Úpravu promptů bez nasazování nového kódu
  • Různé prompty pro různé jazyky (ne jen překlad, ale jiný styl)
  • A/B testování různých variant promptu
  • Rychlou iteraci — produktový manažer si prompt upraví sám v admin rozhraní

Příklad promptu (česky)

Napiš podrobný popis produktu %title z kategorie %catalog.
Text musí být v HTML formátu s nadpisy (h2, h3), odstavci (p) a seznamy (ul/li).
Zaměř se na: klíčové vlastnosti, technické parametry, výhody pro uživatele, typické použití a srovnání s konkurencí.
Text musí být SEO optimalizovaný, unikátní a minimálně 800 slov.
Piš přirozenou češtinou bez gramatických chyb.

Zástupné znaky %title%catalog se nahradí skutečnými hodnotami produktu. Pro některé prompty je k dispozici i %brand (značka). Výstup z Perplexity je HTML, které ještě prochází čistěním — odstraní se markdown artefakty (```html bloky) a výsledek se uloží do databáze.

PHP — volání Perplexity API

$response = Perplexity::chat([
  'model' => 'sonar',
  'messages' => [
    ['role' => 'system', 'content' => $systemPrompt],
    ['role' => 'user', 'content' => $query]
  ]
]);

$html = $response['choices'][0]['message']['content'];
$html = str_replace(['```html', '```'], '', $html);

Krok 2: Vyhledání a stažení obrázků (Perplexity)

Druhá fáze řeší chronický problém e-shopů — nedostatek kvalitních produktových obrázků. Dodavatelské feedy často obsahují jen jeden malý obrázek. My potřebujeme více obrázků pro bohatý popisek.

Řešení je dvoustupňové:

  1. Perplexity najde oficiální URL produktu — ptáme se: „Najdi URL stránky s oficiálními obrázky produktu [název] [značka]." Perplexity díky přístupu k webu vrátí URL reálné produktové stránky (výrobce, autorizovaný prodejce).
  2. Scraper stáhne obrázky z URL — z nalezené stránky extrahujeme produktové obrázky, stáhneme je, zmenšíme na požadované rozlišení a uložíme lokálně.

Flow vyhledání obrázků

1. Perplexity: "Najdi URL stránky s obrázky produktu Sony WH-1000XM5"
2. Odpověď: "https://www.sony.com/headphones/wh-1000xm5"
3. Validace: URL musí začínat "http"
4. Scraping: stažení obrázků ze stránky (max 8 obrázků)
5. Resize: zmenšení na požadované rozlišení
6. Insert: rovnoměrné vložení obrázků do HTML textu

Vkládání obrázků do textu

Obrázky nevkládáme na konec textu, ale rovnoměrně distribuujeme mezi odstavce. Algoritmus najde všechny uzavírací tagy </p></ul> v HTML, spočítá je a vloží obrázky v pravidelných intervalech. Výsledek vypadá jako profesionálně formátovaný článek s ilustracemi, ne jako text s hromadou obrázků na konci.

PHP — distribuce obrázků

// Najít pozice všech </p> a </ul> v HTML
$positions = findClosingTags($html, ['</p>', '</ul>']);
$total = count($positions);
$imageCount = count($images);

// Rovnoměrně distribuovat obrázky
$interval = max(1, floor($total / ($imageCount + 1)));

foreach ($images as $i => $img) {
  $insertAt = $positions[$interval * ($i + 1)] ?? end($positions);
  $html = insertAfter($html, $insertAt,
    "<p><img src=\"$img\" loading=\"lazy\"></p>");
}

Tip

Atribut loading="lazy" je důležitý — obrázky se načtou až když uživatel scrolluje k nim. Bez toho by stránka s 8 obrázky byla výrazně pomalejší, což negativně ovlivňuje SEO i uživatelský zážitek.

Krok 3: SEO souhrn pro Google (Gemini)

Kromě dlouhého textu potřebuje každý produkt krátký souhrn — meta description, který se zobrazuje ve výsledcích Google. Měl by mít 150–160 znaků, obsahovat klíčová slova a motivovat ke kliknutí.

Pro tuto úlohu používáme Google Gemini API — je rychlejší a levnější než Perplexity pro krátké texty a nepotřebuje přístup k webu (vychází z názvu a kategorie produktu).

Příklad promptu pro Gemini

Napiš stručný, přesvědčivý SEO popis produktu %title z kategorie %catalog.
Maximálně 2–3 věty. Zaměř se na hlavní výhody pro zákazníka.
Nepoužívej marketingové fráze jako "revoluční" nebo "úžasný".
Piš přirozenou češtinou.

PHP — volání Gemini API

$client = Gemini::client(GOOGLE_AI_KEY);
$result = $client->generateContent($query);

$text = $result->text();
$html = '<p>' . str_replace("\n\n", '</p><p>', $text) . '</p>';

Gemini vrací čistý text, který zabalíme do HTML odstavců. Konfigurace promptů je opět v databázi (tabulka ai_summary_config), takže je lze měnit per jazyk bez zásahu do kódu.

Krok 4: Překlad do dalších jazyků (DeepL)

Jakmile máme český text a SEO souhrn, přeložíme je do dalších jazyků přes DeepL API. DeepL jsme zvolili kvůli výrazně vyšší kvalitě překladu oproti Google Translate — zejména pro středoevropské jazyky (čeština, slovenština, polština, maďarština).

PHP — překlad přes DeepL

// Přeloží HTML text a zachová HTML tagy
Translate::run(
  $htmlText,      // zdrojový text
  $fromLanguage,  // 'cs'
  $toLanguage,    // 'en', 'de', 'sk', ...
  true            // zachovat HTML formátování
);

Klíčový detail: parametr pro zachování HTML formátování říká DeepL API, že má přeložit pouze textový obsah a nechat HTML tagy beze změny. Bez toho by DeepL mohl rozbít HTML strukturu — například přeložit atributy tagů nebo poškodit entity.

Proč nepřekládáme prompty, ale výstupy

Alternativní přístup by byl generovat texty rovnou v cílovém jazyce (anglický prompt → anglický text). My jsme ale zvolili postup „generovat česky + přeložit", protože:

  • Konzistence — stejný zdrojový text zajistí konzistentní informace napříč jazyky
  • Kvalita překladu — DeepL překládá lépe než většina LLM modelů, zejména u menších jazyků
  • Kontrola — redaktor schválí jeden text a překlady se vygenerují automaticky
  • Cena — jeden LLM call + N překladů je levnější než N LLM callů

Proč různé AI služby pro různé úlohy?

Každá AI služba má svou silnou stránku. Použít jednu na vše by znamenalo kompromisy:

Úloha Zvolená AI Důvod
Dlouhý SEO text Perplexity (sonar) Přístup k aktuálním datům z webu → méně halucinací u specifikací
SEO souhrn Google Gemini Rychlejší a levnější pro krátké texty
Hledání obrázků Perplexity (sonar) Vyhledávání na webu je jeho hlavní síla
Překlad DeepL Nejvyšší kvalita překladu pro střední Evropu

Klíčový princip: nejlepší AI pipeline není ten s jedním nejdražším modelem, ale ten, kde každá úloha běží na optimálním modelu. Perplexity pro web search, Gemini pro rychlé generování, DeepL pro překlady — každý dělá to, v čem je nejlepší.

Další přístupy ke generování produktových popisků

Architektura s Perplexity + Gemini + DeepL je jeden z mnoha možných přístupů. Podívejme se na alternativy a doplňkové techniky.

1. RAG z vlastních dat — nejpřesnější popisky

Pokud máte v databázi detailní parametry produktů (rozměry, hmotnost, výkon, kompatibilita), můžete je předat modelu jako kontext místo spoléhání na webové vyhledávání. Tento přístup (Retrieval-Augmented Generation) zajistí, že popis odpovídá přesně vašim datům.

RAG prompt

Napiš SEO popis produktu na základě těchto parametrů:

Název: Sony WH-1000XM5
Kategorie: Bezdrátová sluchátka
Parametry:
- Hmotnost: 250g
- Výdrž baterie: 30 hodin
- ANC: Ano, adaptivní
- Bluetooth: 5.2, LDAC, AAC, SBC
- Nabíjení: USB-C, 3 min = 3 hodiny poslechu

Použij POUZE uvedené parametry. Nevymýšlej hodnoty, které nejsou v seznamu.

Výhoda: nulové halucinace u technických údajů, protože model čerpá výhradně z vašich dat. Nevýhoda: text může být suší, protože modelu chybí kontext z recenzí a porovnání.

2. Kombinace RAG + web search — nejlepší z obou světů

Ideální přístup kombinuje obojí — parametry z databáze pro přesnost a webový kontext pro bohatost:

Hybridní prompt

Napiš SEO popis produktu Sony WH-1000XM5.

POVINNÉ parametry (musí být v textu přesně takto):
- Výdrž baterie: 30 hodin
- Hmotnost: 250g
- ANC: adaptivní

DOPLŇKOVÉ informace (můžeš vyhledat na webu):
- Uživatelské recenze a zkušenosti
- Srovnání s konkurencí
- Typické scénáře použití

Technické parametry jsou garantovány (pochází z databáze), zatímco marketingová část je obohacena o reálné informace z webu.

3. Šablonový systém s AI doplněním

Pro velké e-shopy s konzistentními kategoriemi (např. 500 notebooků, 300 praček) se osvědčuje šablonový přístup:

  1. Vytvořte HTML šablonu pro každou kategorii — pevná struktura, nadpisy, sekce
  2. AI doplní proměnné části — popisy výhod, srovnání, doporučení
  3. Parametry z databáze vyplníte programově — žádné AI riziko

Příklad šablony

<h2>%title — klíčové vlastnosti</h2>
<p>[AI: napiš 2 věty o hlavních výhodách]</p>

<h3>Technické parametry</h3>
<table>[DATABÁZE: parametry z feedu]</table>

<h3>Pro koho se hodí</h3>
<p>[AI: napiš doporučení cílové skupiny]</p>

<h3>V balení najdete</h3>
<ul>[DATABÁZE: obsah balení z feedu]</ul>

Výhoda: konzistentní struktura napříč tisíci produkty ve stejné kategorii. AI se stará jen o kreativní části, faktické údaje jdou z databáze.

4. A/B testování promptů

Protože jsou prompty uložené v databázi, můžete snadno testovat různé styly popisků a měřit jejich dopad na konverzní poměr:

  • Varianta A: Formální, technický styl — zaměření na parametry a specifikace
  • Varianta B: Konverzační styl — zaměření na příběh a uživatelský zážitek
  • Varianta C: Problém → řešení — „Máte problém s X? Tento produkt řeší Y."

Vygenerujete obě varianty, nasadíte je na různé produkty a po měsíci vyhodnotíte, která varianta má lepší CTR z Google a konverzní poměr na stránce.

5. Post-processing a kvalitní kontrola

AI výstupy by nikdy neměly jít přímo na web bez kontroly. Implementujte alespoň tyto vrstvy:

Automatické kontroly

  • Délka textu — odmítnout příliš krátké výstupy (pod 300 slov)
  • HTML validace — ověřit, že HTML je korektní (nejsou otevřené tagy)
  • Detekce halucinací — zkontrolovat, zda text neobsahuje ceny, skladové dostupnosti nebo specifikace, které neodpovídají databázi
  • Duplicitní obsah — porovnat s existujícími texty, aby dva produkty neměly příliš podobný popis
  • SEO kontrola — ověřit přítomnost klíčových slov z názvu produktu v nadpisech a prvním odstavci

Lidská revize

Pro klíčové produkty (bestsellery, high-margin produkty) doporučujeme lidskou revizi generovaných textů. AI text je výborný základ — redaktor ho jen upraví, doplní firemní tone-of-voice a ověří faktickou správnost. Je to 10× rychlejší než psát od nuly.

6. Batch processing — tisíce produktů najednou

Pro hromadné generování potřebujete:

  • Frontu úloh — produkty se řadí do fronty, zpracovávají se postupně
  • Rate limiting — respektovat limity API (Perplexity: ~50 req/min, Gemini: ~60 req/min)
  • Retry logiku — pokud API vrátí chybu, zkusit znovu s exponenciálním backoffem
  • Průběhový reporting — admin vidí, kolik produktů je hotovo, kolik čeká, kolik selhalo
  • Cachování — pokud už produkt má vygenerovaný text, přeskočit ho (nebo nabídnout re-generaci)

Odhadované náklady na 10 000 produktů

Perplexity (dlouhý text): ~$50–100 (sonar model, ~1000 tokenů vstup, ~2000 výstup)
Perplexity (hledání obrázků): ~$10–20
Gemini (SEO souhrny): ~$5–15 (flash model)
DeepL (překlad do 3 jazyků): ~$30–60 (API Standard plan)

Celkem: ~$100–200 za 10 000 produktů ve 4 jazycích
Srovnání: copywriter by za stejný objem účtoval $50 000–100 000

250–500×

levnější než ruční psaní — AI pipeline za $100–200 vs. copywriter za $50 000+

7. Alternativní AI modely

Perplexity a Gemini nejsou jediné možnosti. Podle vašich požadavků mohou být vhodnější jiné modely:

Model Silná stránka Kdy použít
GPT-4o (OpenAI) Nejlepší poměr kvalita/cena pro generování textu Hlavní generátor, pokud nepotřebujete web search
Claude Sonnet (Anthropic) Nejvyšší kvalita textu, dodržování instrukcí Premium produkty, kde záleží na každém slově
Gemini Flash (Google) Nejlevnější, nejrychlejší Krátké souhrny, meta descriptions, hromadné operace
Perplexity Sonar Přístup k aktuálním webovým datům Produkty, kde potřebujete reálné specifikace a recenze
Llama 3 (Meta, lokální) Žádné API náklady, plná kontrola nad daty Citlivá data, objem 100k+ produktů, offline provoz

Checklist pro implementaci

Pokud chcete implementovat podobný pipeline ve svém e-shopu, projděte tento checklist:

  1. Prompty v databázi, ne v kódu. Umožní iteraci bez deploymentu a různé prompty per jazyk.
  2. Zástupné znaky v promptech. %title, %catalog, %brand, %params — generický prompt, specifický výstup.
  3. Správný model pro správnou úlohu. Nepoužívejte drahý model na vše. Krátké texty = levný model, dlouhé texty = kvalitní model.
  4. Validace výstupu. Délka, HTML korektnost, přítomnost klíčových slov, absence halucinací.
  5. Obrázky z ověřených zdrojů. AI hledá URL, ale obrázky stahujte a hostujte lokálně — nikdy neodkazujte na cizí servery.
  6. DeepL pro překlady, ne LLM. Specializovaný překladač je pro překlad lepší a levnější než generální LLM.
  7. Lazy loading pro obrázky. Atribut loading="lazy" na všech generovaných obrázcích.
  8. Retry a rate limiting. API selhávají — implementujte frontu s opakováním a respektujte rate limity.
  9. Admin rozhraní. Jednoduché tlačítko „vygenerovat popis" na produktové stránce v administraci + hromadná akce pro celé kategorie.
  10. Logování. Ukládejte prompt, model, čas generování a cenu za každý call — pro debugging i optimalizaci nákladů.

AI generování produktových popisků není budoucnost — je to přítomnost. E-shopy, které to dnes nepoužívají, ručně píší texty, které jejich konkurence generuje za zlomek ceny a času. Začněte s jednou kategorií, vylaďte prompty a škálujte postupně.

10 000

produktových popisků ve 4 jazycích — za hodiny místo měsíců, za $200 místo $50 000