Vyhledávání na webu

Měl jsem Claude, ChatGPT a Gemini, aby každý vytvořil stejné rozšíření pro Chrome, a jen jedno skutečně fungovalo


Vibe coding je dnes všude. Když většina lidí však slyší tento termín, jejich mysl okamžitě přechází k vytváření full-stack CRUD aplikací, vyleštěných webových stránek, které můžete udělat během několika minut, nebo portfoliových stránek, které mají nějakým způsobem všechny stejnou hlavní sekci (a gradientní pozadí). Jako někdo, kdo má vždy desítky nápadů plovoucích v hlavě, dělám nějakou verzi „vibe codingu“ od té doby, co OpenAI veřejně spustila ChatGPT.

To znamená, že úplně první věc, kterou jsem vytvořil pomocí vibračního kódování, nebyla webová stránka, vstupní stránka ani aplikace. Místo toho to bylo rozšíření pro Chrome. Nepamatuji si přesně, co mělo dělat, ale pamatuji si, že fungovalo. Takže jsem se rozhodl vrátit na začátek a podrobit tři největší LLM (Claude, ChatGPT a Gemini) stejné zkoušce: vytvořte mi rozšíření pro Chrome od nuly.

Rozšíření Chrome jsou nejjednodušší testovací zátěž pro kódování podle nálady

Nabij ji, klikni na ni, modli se

Když používáte LLM k rychlému kódování plnohodnotné aplikace nebo webu, je pravděpodobné, že nakonec dosáhnete fáze, kdy budete muset řešit hosting, nasazení, proměnné prostředí, databáze a tucet dalších infrastrukturních problémů. Abych byl spravedlivý, záleží to na tom, jaký nástroj používáte, protože nástroje jako Replit a Lovable vám umožňují nasazení přímo z jejich platformy jedním kliknutím. Ale i tak stále testujete platformu stejně jako model. Na druhou stranu, rozšíření pro Chrome tohle všechno nevyžadují. Neexistuje žádné backendové řešení, hosting ani databáze, o které byste se opravdu museli starat. Stačí nahrát složku do sekce Extensions ve vašem prohlížeči a buď to funguje, nebo ne.

Rozšíření Chrome se skládají jen z několika souborů: manifest.json, který Chrome přesně řekne, co rozšíření dělá, a pak soubory HTML, JavaScript a CSS. To jsou tři jazyky, s nimiž si LLM obvykle docela dobře poradí. Protože jsou rozšíření Chrome navržena k řešení jednoho konkrétního problému, představují ideální malé testy, protože existuje jasný cíl. Když dělám tento druh testů, raději si vyberu nápad, který jsem opravdu chtěl sám vytvořit. Nejenže mi to poskytuje dokonalou výmluvu, abych skutečně začal s jeho tvorbou, ale zároveň to představuje extrémně spravedlivý test.

Upřímné varování, rozšíření, které mám na mysli, může znít trochu... hloupě a nekonvenčně, tak mě prosím vydržte. Chtěl jsem rozšíření, které by mi umožnilo vyhledávat mezi diváky mého Instagram příběhu. Nejsem si jistý, proč to ještě není nativní funkcí, ale pokud jste někdy měli stovky (a někdy i tisíce) lidí, kteří shlédli váš Instagram příběh, a pokusili se najít konkrétní osobu v tom seznamu, už znáte tu bolest. Teoreticky jsem věděl, že Chrome rozšíření by mělo fungovat, takže to je to, co jsem se rozhodl zkusit na všech třech modelech, abych zjistil, kdo to skutečně zvládne. Použil jsem velmi vágní podnět — prostě jsem každému modelu řekl, co chci, a neposkytl jsem mnoho podrobností. Opět, cílem zde je zjistit, jak dobře každý model dokáže vzít jednoduchý nápad a přijít na zbytek sám.

ChatGPT vytvořil slušné rozšíření

Fungovalo to, ale nemyslím si, že bych to použil






Než půjdu dál, nepoužil jsem Claude Code, Codex ani Antigravity (agentní IDE od Google, které funguje s Gemini) k vytvoření tohoto. Místo toho jsem použil standardní chatovací rozhraní pro každý z nich s jejich nejnovějšími modely a placenými předplatnými. Pro tento případ jsem použil GPT-5.5 Thinking a nastavil úroveň myšlenkového úsilí na Rozšířená. Začal jsem se základním promptem a během méně než dvou minut sestavil rozšíření Manifest V3. Rozšíření se jmenuje IG Story Viewer Search a přímo mi poskytlo ZIP soubor, který jsem mohl stáhnout a načíst přímo do Chrome. Zatím vše vypadá dobře. Podle popisu mělo rozšíření přidat plovoucí vyhledávací pole, když je otevřen můj seznam diváků Instagram příběhu.

Jakmile jsem načetl rozšíření, nemohl jsem na něj ani kliknout! GPT-5.5 si pak uvědomil, že první verze, kterou vytvořil, neměla žádné vyskakovací okno na panelu nástrojů, což je důvod, proč na rozšíření kliknutí nic nedělalo. Opravil to a dal mi nový ZIP soubor. Když jsem jej testoval, uvědomil jsem si, že rozšíření funguje, ale fungovalo by pouze s několika diváky najednou. LLM vysvětlil, že se to stalo, protože Instagram „lazy-loaduje“ seznam diváků. Poté GPT-5.5 rozšíření správně přepracoval pro dlouhé seznamy diváků. S touto novou verzí ChatGPT tvrdil, že přidal nové tlačítko „Indexovat všechny diváky“, které automaticky posouvá seznam diváků příběhu a vytvoří místní vyhledávatelný index. Po testování rozšíření opět nefungovalo tak, jak jsem chtěl, a fungovalo jen s diváky zobrazenými na obrazovce.

Po 2 minutách a 11 sekundách přemýšlení mi dal verzi 1.4, která přidala dva nové režimy, jak obejít otravné chování seznamu diváků na Instagramu. První byl Automatické indexování všech, který měl automaticky rolovat seznam diváků a sbírat jména, jak je Instagram načítal. Ale GPT-5.5 také přiznalo, že Instagram může blokovat nebo přerušovat programátorské rolování, takže tento režim může být stále nespolehlivý. Druhý, důležitější režim byl Spustit živý záznam. Místo toho, aby se snažil přinutit Instagram načíst všechny automaticky, tento režim sleduje seznam diváků v reálném čase a zachycuje uživatelská jména, která se objeví, zatímco já manuálně roloval od shora dolů. Testoval jsem to na příběhu, který měl kolem 400 zhlédnutí, a jak GPT předpověděl, tlačítko Auto-index vše nefungovalo. Zkoušel jsem tlačítko živého zachycení a pak pomalu procházel celým seznamem diváků sám. To fungovalo lépe, ale pořád to nebyl ten bezproblémový zážitek „okamžitě vyhledat kohokoli“, který jsem původně měl na mysli.

V podstatě to proměnilo rozšíření na nástroj pro zachycování při posouvání. Rozšíření si mohlo pamatovat diváky poté, co se objevili na obrazovce, ale stále nedokázalo magicky přistoupit k celé seznamu diváků dříve, než jej načetl Instagram. Divně, některé uživatele uvádělo jako samostatné položky a celkový počet zobrazení se zobrazil jako 700+ uživatelů. Některé uživatele fungovaly dobře, zatímco jiné byly rozděleny do samostatných položek v závislosti na jejich jménu. To znamená, že hledání tentokrát fungovalo, ale bylo jasně stále jen hrubým prototypem spíše než dokonalým nástrojem. Řešilo to původní problém v nejvolnějším smyslu: pokud jsem nejprve ručně posunul seznam, mohl jsem pak hledat lidi, kteří byli zachyceni. Ale indexování bylo chaotické, duplikovalo některé položky, nesprávně četlo části zobrazovaných jmen jako samostatné uživatele a nafukovalo počet diváků daleko nad skutečný počet zhlédnutí příběhu.

Takže i když GPT-5.5 nakonec zprovoznil základní funkce, vyžadovalo to několik kol ladění a nakonec to skončilo docela nepraktickým obejitím.

Prvním instinktem Gemini bylo podat mi výzvu

Rozšíření nikdy nefungovalo

Už nějakou dobu jsem velkým fanouškem AI snah Googlu, ale neustále nacházím nové důvody ke zklamání. Poté, co jsem dokončil testování rozšíření GPT-5.5, bylo čas postavit na zkoušku Gemini, a to, co produkovalo, bylo prostě... trapné. Hned na začátku ani nenapsalo rozšíření. Místo toho mi poskytlo kompletní architektonický rozbor, přednášku o průchodu DOM a... počkejte na to... hlavní prompt, který jsem měl vložit do agentního IDE. Gemini, proč bych k tobě vůbec přišel, kdybych chtěl vložit prompt do jiného nástroje?

Pak jsem se zeptal, jestli by pro mě skutečně mohl vytvořit rozšíření, a pustil se do práce. Na rozdíl od GPT nebo Claude mi nepředal ZIP soubor, který bych mohl rozbalit a přímo načíst do Chromu. Místo toho mi dal každý soubor zvlášť (manifest.json, content.js a styles.css) a řekl mi, abych si vytvořil složku a uložil je sám. Udělal jsem to, a rozšíření vůbec nefungovalo. Geminiho verze zvolila úplně jiný přístup než GPT.

Místo vyskakovacího panelu nástrojů se pokusil vložit vyhledávací lištu přímo do uživatelského rozhraní Instagramu, přímo uvnitř modálního okna prohlížeče. Vyhledávací lišta se nikdy neobjevila. Řekl jsem to Geminimu a následovalo šest kol čím dál sebevědomějších oprav, které všechny selhaly různými způsoby. Na konci čtvrtého kola se vyhledávací lišta konečně objevila, ale nenašla ani jednoho uživatele. Měl jsem ještě pár dalších jednání a nakonec jsem konverzaci prostě vzdal.

Claude potřeboval tři zprávy, aby to zvládl správně

Ten, který skutečně byl dodán

Po rozšířeních, která vytvořily GPT a Gemini, mé očekávání výrazně poklesla. Nyní ani první verze Clauda nefungovala. Claude se pak podíval na aktuální strukturu DOM Instagramu a přestavěl rozšíření tak, že místo toho použil interní API endpointy Instagramu (které, jak vysvětlil, jsou mnohem spolehlivější, protože už jsem přihlášený ke svému účtu). A voilà, konečně to fungovalo.

Když jsem klikl na ikonu, byl tam funkční vyhledávací panel a úplný seznam diváků načtený přímo z API Instagramu. Jediným problémem bylo, že všechny moje diváky příběhů seskupoval do jednoho velkého seznamu, místo aby mi umožnil vyhledávat diváky pro každý jednotlivý příběh. Řekl jsem to Claudeovi a během jedné další zprávy mi poskytl v3. Tato verze přidala nahoře vizuální pruh příběhů s miniaturami, časovými razítky a počty zhlédnutí. Mohl jsem klepnout na jakýkoli příběh a načíst jen diváky toho příběhu a pak v něm hledat. A tím to končilo. Fungovalo to a nepotřebovalo to žádné další následné zprávy. Konečně!

Příště začnu s Claudem

Claude postavil rozšíření nejrychleji, s nejmenším počtem potřebných zpráv, a je to jediný nástroj, který se podařilo do konce postavit něco plně funkčního. ChatGPT postavil něco použitelného a Gemini prostě ne.

Související články